2025年7月最新情報
出典: Sponge Documentation
マイクラサーバーで「MODとプラグインを同時に使いたい」という願望を叶えてくれるのがSpongeです。しかし、BukkitやSpigotとは異なる独特のシステムに戸惑う方も多いでしょう。この記事では、SpongeForgeの導入からMixins更新、permission流用まで、2025年最新の情報で完全解説します!
1. Spongeの基礎知識とエコシステム
Spongeとは何か?
Sponge の特徴:
- Minecraft Java版用のサーバーAPI
- MODとプラグインの同時利用が可能
- 強力な権限管理システム
- 高度なイベントシステム
- クロスプラットフォーム対応
Sponge vs Bukkit/Spigot の違い
項目 | Sponge | Bukkit/Spigot |
---|---|---|
MOD対応 | ✅ 完全対応 | ❌ 非対応 |
プラグイン | SpongeAPI | Bukkit API |
権限システム | 高度な階層構造 | 基本的なnode |
イベント | 型安全 | Reflection依存 |
プラグイン互換 | ❌ 独自API | ✅ 広範囲対応 |
学習コスト | 高 | 低 |
Spongeエコシステム
主要コンポーネント:
SpongeForge: Forge + Sponge (MODとプラグイン)
SpongeVanilla: Vanilla + Sponge (プラグインのみ)
SpongeAPI: プラグイン開発用API
Ore: 公式プラグインリポジトリ
2. SpongeForge vs SpongeVanilla 比較
出典: Sparked Host
SpongeForge(推奨構成)
利点:
- ForgeのMODが使用可能
- 工業系・魔術系MODをサポート
- より豊富なコンテンツ
- 既存MODパックとの互換性
欠点:
- 重い(メモリ8GB以上推奨)
- 設定が複雑
- 起動時間が長い
推奨用途:
- 大規模MODパック + 管理プラグイン
- 工業サーバー
- RPGサーバー
SpongeVanilla(軽量構成)
利点:
- 軽量(メモリ4GB程度で動作)
- 設定が簡単
- 高速起動
- 安定性が高い
欠点:
- MODが使用不可
- コンテンツが限定的
- 拡張性に制限
推奨用途:
- 管理重視サーバー
- 軽量サーバー
- プラグイン中心の構成
3. SpongeForge導入と初期設定
事前準備
必要なもの:
- Minecraft Forge(対応バージョン)
- Java 17以上
- 最低8GBのメモリ
- SpongeForge(最新版)
ステップ1:Forgeサーバーの準備
Forge Server のダウンロード:
Copy# 1.20.1の場合の例
cd /opt/minecraft
wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.20.1-47.2.0/forge-1.20.1-47.2.0-installer.jar
# Forgeサーバーのインストール
java -jar forge-1.20.1-47.2.0-installer.jar --installServer
ステップ2:SpongeForgeのインストール
SpongeForge のダウンロード:
Copy# modsフォルダに配置
cd mods
wget https://repo.spongepowered.org/repository/maven-public/org/spongepowered/spongeforge/1.20.1-11.0.0/spongeforge-1.20.1-11.0.0.jar
ステップ3:初期設定
server.properties の調整:
Copy# Sponge用設定
enable-command-block=true
broadcast-console-to-ops=false
function-permission-level=4
op-permission-level=4
# パフォーマンス設定
view-distance=8
max-tick-time=60000
use-native-transport=true
起動スクリプトの作成:
Copy#!/bin/bash
# start_sponge.sh
java -Xms8G -Xmx8G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:G1NewSizePercent=20 \
-XX:G1ReservePercent=20 \
-XX:MaxGCPauseMillis=50 \
-XX:G1HeapRegionSize=32M \
-jar forge-1.20.1-47.2.0.jar nogui
ステップ4:初回起動と確認
サーバー起動:
Copychmod +x start_sponge.sh
./start_sponge.sh
Sponge確認コマンド:
/sponge version
/sponge plugins
4. Mixins更新とPlugin-Loader設定
Mixinsシステムの理解
Mixins とは:
- バイトコードレベルでのクラス変更
- 実行時にMinecraftのクラスを改変
- 高度な機能実装に必要
- プラグインの内部処理で使用
Mixins設定ファイル
config/sponge/mixins.conf:
mixins {
# Mixinsの有効化
enabled = true
# 環境設定
environment = "SERVER"
# デバッグ設定
debug {
verbose = false
export = false
}
# プラグインMixins
plugins {
# プラグイン別設定
"my-plugin" {
enabled = true
mixins = [
"com.example.mixins.PlayerMixin",
"com.example.mixins.WorldMixin"
]
}
}
}
Plugin-Loader設定
config/sponge/plugin-loader.conf:
plugin-loader {
# プラグインディレクトリ
plugin-directories = [
"plugins",
"mods"
]
# 読み込み順序
load-order {
# 優先プラグイン
first = [
"luckperms",
"nucleus-core"
]
# 後読み込み
last = [
"holographic-displays"
]
}
# 依存関係設定
dependencies {
auto-resolve = true
strict-validation = false
}
}
5. Permission システムの理解と設定
出典: Sponge Documentation
Sponge Permission システム
Subject とは:
- 権限を持つエンティティ(プレイヤー、コンソールなど)
- 階層的な権限構造
- コンテキスト依存の権限
Permission Node の構造:
plugin.category.action.target
例:
- myserver.teleport.home.use
- worldguard.region.create.own
- nucleus.kit.kit-name.give.base
LuckPerms との連携
LuckPerms インストール:
Copycd plugins
wget https://download.luckperms.net/1515/bukkit/loader/LuckPerms-Bukkit-5.4.102.jar
基本的な権限設定:
Copy# グループ作成
/lp creategroup member
/lp creategroup moderator
/lp creategroup admin
# 権限付与
/lp group member permission set sponge.command.help true
/lp group member permission set nucleus.home.base true
/lp group member permission set nucleus.warp.base true
# プレイヤーをグループに追加
/lp user <player> parent set member
高度な権限設定
コンテキスト依存権限:
Copy# ワールド別権限
/lp group builder permission set worldedit.selection.* true world=creative
# 時間制限権限
/lp group vip permission set nucleus.fly.base true server=main time=day
# 地域別権限
/lp group resident permission set nucleus.home.set.base true region=residential
6. 主要Spongeプラグイン紹介
必須プラグイン
Nucleus(総合管理):
# nucleus.conf
core {
enable-doc-gen = true
print-on-startup = true
warmup-canceling {
on-command = false
on-move = true
}
}
modules {
# 有効化するモジュール
home = true
warp = true
spawn = true
teleport = true
chat = true
nickname = true
}
LuckPerms(権限管理):
Copy# config.yml
server: "sponge-server"
storage-method: "h2"
messaging-service: "none"
# 権限計算設定
permission-calculation {
apply-wildcards: true
apply-regex: true
}
GriefPrevention(土地保護):
# griefprevention.conf
general {
claim-expiration-days = 0
automatic-new-player-claims = true
claims-world-modes {
"world" = 2 # Claimsモード
"world_nether" = 0 # Disabledモード
}
}
便利なプラグイン
EconomyLite(経済):
# economylite.conf
economy {
currency {
default = "Dollar"
symbol = "$"
plural = "Dollars"
}
starting-balance = 100.0
enable-detailed-logging = true
}
HuskHomes(テレポート):
Copy# config.yml
database:
type: "sqlite"
teleportation:
teleport-warmup-time: 5
teleport-cooldown-time: 10
7. 開発者向けSpongeAPI ガイド
基本的なプラグイン構造
メインクラス例:
Copy@Plugin(
id = "example-plugin",
name = "Example Plugin",
version = "1.0.0",
description = "Example Sponge plugin",
authors = {"Author"}
)
public class ExamplePlugin {
@Inject
private Logger logger;
@Inject
private PluginContainer container;
@Listener
public void onServerStart(StartedEngineEvent<Server> event) {
logger.info("Example Plugin started!");
}
@Listener
public void onPlayerJoin(ServerSideConnectionEvent.Join event) {
ServerPlayer player = event.player();
player.sendMessage(Component.text("Welcome to the server!"));
}
}
Permission API の使用
権限チェック例:
Copy@Command("example")
public class ExampleCommand implements CommandExecutor {
@Override
public CommandResult execute(CommandContext context) {
CommandSource source = context.getSource();
// 権限チェック
if (!source.hasPermission("example.command.use")) {
source.sendMessage(Component.text("You don't have permission!"));
return CommandResult.error(Component.text("No permission"));
}
// コマンド実行
source.sendMessage(Component.text("Command executed!"));
return CommandResult.success();
}
}
イベントハンドリング
高度なイベント処理:
Copy@Listener(order = Order.FIRST)
public void onBlockBreak(ChangeBlockEvent.All event, @First Player player) {
// ブロック破壊前処理
for (Transaction<BlockSnapshot> transaction : event.getTransactions()) {
BlockSnapshot original = transaction.getOriginal();
// 特定ブロックの破壊を防ぐ
if (original.getState().getType() == BlockTypes.DIAMOND_ORE) {
if (!player.hasPermission("mine.diamond")) {
transaction.setValid(false);
player.sendMessage(Component.text("You cannot mine diamond ore!"));
}
}
}
}
8. おすすめサーバー構成
MOD + プラグイン構成(大規模)
🏆 高性能重視:エックスサーバー VPS for Game
推奨理由:
- 高性能CPU(6コア)でMOD + プラグインも快適
- 大容量メモリ(最大32GB)で重い構成に対応
- NVMe SSDで高速読み込み
- 専用サポートでトラブル時も安心
SpongeForge推奨プラン:
- 16GBプラン:月額9,750円(中規模MODパック)
- 32GBプラン:月額22,100円(大規模MODパック)
特徴:
- 99.99%稼働率保証
- 自動バックアップ機能
- 24時間監視サービス
プラグイン中心構成(中規模)
🎯 バランス重視:ConoHa for GAME
推奨理由:
- 時間課金制で効率的な運用
- 高速SSDでSponge起動が快適
- 豊富なテンプレート
- 初期費用無料
SpongeVanilla推奨プラン:
- 8GBプラン:月額4,066円(軽量構成)
- 16GBプラン:月額9,834円(中規模構成)
特徴:
- 柔軟な料金体系
- 簡単セットアップ
- 充実したAPIサポート
小規模・テスト環境
💰 コスパ重視:カゴヤ CLOUD VPS
推奨理由:
- 最安級価格でコスト効率重視
- 安定した性能
- 国内企業の信頼性
- 長期利用に最適
料金プラン:
- 8GBプラン:月額7,700円(SpongeVanilla)
- 16GBプラン:月額15,400円(軽量SpongeForge)
特徴:
- 高いコストパフォーマンス
- 長期契約割引
- 充実したサポート
最適化設定例
SpongeForge用JVM引数:
Copyjava -Xms12G -Xmx12G \
-XX:+UseG1GC \
-XX:G1HeapRegionSize=4M \
-XX:+ParallelRefProcEnabled \
-XX:+AlwaysPreTouch \
-XX:MaxGCPauseMillis=200 \
-XX:+DisableExplicitGC \
-XX:G1NewSizePercent=20 \
-XX:G1ReservePercent=20 \
-XX:InitiatingHeapOccupancyPercent=15 \
-jar spongeforge.jar nogui
config/sponge/global.conf 最適化:
sponge {
general {
disable-warnings = false
chunk-gc-tick-interval = 600
chunk-gc-load-threshold = 0
}
world {
# ワールド最適化
world-generation-modifiers = true
leaf-decay = true
auto-player-save-interval = 900
}
entity {
# エンティティ最適化
entity-painting-respawn-delay = 2
entity-collision-warn-size = 200
max-bounding-box-size = 1000
}
}
まとめ
Spongeは学習コストが高い分、MODとプラグインの同時利用という強力な機能を提供します。特にSpongeForgeを使用することで、工業MODによる複雑な機械と、管理プラグインによる秩序ある運営を両立できます。
Sponge成功のポイント:
- 適切な構成選択: SpongeForge vs SpongeVanilla
- 十分なリソース: メモリ8GB以上の確保
- 権限設計: LuckPermsとの適切な連携
- プラグイン選定: Sponge専用プラグインの活用
- 継続的な学習: SpongeAPI の理解深化
特にエックスサーバー VPS for Game、ConoHa for GAME、カゴヤ CLOUD VPSは、それぞれ異なる規模のSpongeサーバーに最適化されたサービスです。
2025年のマイクラサーバー運用では、SpongeによるMOD + プラグインの融合が新たなスタンダードになりつつあります。この記事を参考に、次世代のマイクラサーバーを構築してください!
※本記事は2025年7月時点の情報に基づいて執筆されています。SpongeとSpongeForgeのバージョンは頻繁に更新されるため、最新情報は公式サイトをご確認ください。
参考リンク:
免責事項: SpongeとSpongeForgeの設定は複雑で、サーバー環境によって動作が異なる場合があります。重要なデータは必ずバックアップを取り、テスト環境で十分検証してから本番環境に導入してください。