概要
Pumpkin は Rust で完全に書かれた Minecraft サーバーで、パフォーマンス、互換性、セキュリティを重視しています。Java 版と Bedrock 版の両方をサポートし、マルチスレッドを活用して速度を向上させ、設定オプション、プラグイン、プロキシのサポートを提供しています。このプロジェクトは活発に開発が進められており、高速でカスタマイズ可能なサーバーの代替となることを目指しています。
README プレビュー
\n\n# Pumpkin\n\n\n[](https://discord.gg/wT8XjrjKkf)\n[](https://opensource.org/licenses/gpl-3-0)\n\n\n\n[Pumpkin](https://pumpkinmc.org/) is a Minecraft server built entirely in Rust, offering a fast, efficient,\nand customizable experience. It prioritizes performance and player enjoyment while adhering to the core mechanics of the game.\n\n\n\n\n\n\n## Goals\n\n- **Performance**: Leveraging multi-threading for maximum speed and efficiency.\n- **Compatibility**: Supports the latest Java & Bedrock Minecraft server version while adhering to Vanilla game mechanics.\n- **Security**: Prioritizes security by preventing known security exploits.\n- **Flexibility**: Highly configurable, with the ability to disable unnecessary features.\n- **Extensibility**: Provides a foundation for plugin development.\n\n> [!IMPORTANT]\n> Pumpkin is currently under heavy development.\n>\n> [See what needs to be done before the 1.0.0 Release](https://github.com/Pumpkin-MC/Pumpkin/issues/449)\n\n## Features\n\n- [x] Configuration (toml)\n- [Tracking: Protocol](https://github.com/Pumpkin-MC/Pumpkin/issues/1401)\n - [x] Server Status/Ping\n - [x] Encryption\n - [x] Packet Compression\n - [x] Java Edition\n - [x] Bedrock Edition (W.I.P)\n - ...\n- [Tracking: World](https://github.com/Pumpkin-MC/Pumpkin/issues/1403)\n - [x] Player Tab-list\n - [x] Scoreboard\n - [x] World Loading\n - [x] World Time\n - [x] World Borders\n - [x] World Saving\n - [x] Lighting\n - [x] Entity Spawning\n - [x] Bossbar\n - [x] Chunk Loading (Vanilla, Linear, Pump)\n - [Chunk Generation](https://github.com/Pumpkin-MC/Pumpkin/issues/36)\n - [x] Chunk Saving (Vanilla, Linear, Pump)\n - [Redstone](https://github.com/Pumpkin-MC/Pumpkin/issues/1402)\n - [x] Liquid Physics\n - ...\n- [Tracking: Player](https://github.com/Pumpkin-MC/Pumpkin/issues/1405)\n - [x] Skins\n - [x] Teleport\n - [x] Movement\n - [x] Animation\n - [x] Inventory\n - [Combat](https://github.com/Pumpkin-MC/Pumpkin/issues/1404)\
FAQ (5)
トラブル対応Pumpkin サーバーで、filled map を含むチャンクがリロード後にシードから再生成されてしまう問題を修正するにはどうすればよいですか?
これは Pumpkin 0.2.0+26.3–26.51 における NBT シリアライゼーションのバグが原因です。MapDecorationsImpl はデフォルトの DataComponentImpl::write_data を使用しており、minecraft:map_decorations に対して TAG_Compound (0x0A) ではなく NbtTag::End (0x00) を出力します。この不正な NBT により、再読み込み時にチャンクが読み取り不可能になり、Pumpkin がチャンクを再生成してブロックエンティティを破壊します。
修正方法: map_decorations が compound タグとして書き込まれるようになる fix(data): prevent map decoration NBT corruption の変更を含むビルドに Pumpkin を更新してください。
影響を受けるバージョンでの回避策: ワールドをバックアップし、Pumpkin で提供する前に、すべてのアイテムから minecraft:map_decorations コンポーネントを削除してください。実際の地図画像は data/minecraft/maps/*.dat に残っており、正しくシリアライズされた minecraft:map_id コンポーネントによって参照されているため、失われることはありません。すでに再生成されてしまったチャンクはバックアップから復元する必要があります。上書きされたリージョンファイルからブロックエンティティを回復することはできません。
トラブル対応PterodactylやPelicanで、Minecraftサーバーのコンソールコマンドが1行遅れてしまうのはなぜですか?
Pumpkin では、pumpkin.toml の [commands] セクションに use_tty = false を設定し、サーバーを再起動してください:
[commands]
use_tty = false
これにより、最初のコマンドが実行されず、各コマンドが次のコマンドが送信された後になって初めて実行されるという問題が解決されます。この問題は、依存関係である Rustyline の TTY 処理のバグが原因です。上流での修正はコミット f2bbcc5 に存在しますが、この問題が報告された時点では、まだリリース済みのバージョンには含まれていませんでした。
トラブル対応広範囲の苗木に対して /fill を使用すると、なぜサーバーがコアダンプでクラッシュするのですか?
このクラッシュは、無制限の再帰的な neighbor/shape ブロック更新によって発生します。苗木、感圧板、および同様の自己破壊型ブロックの大規模なグループが、ワーカースタックがオーバーフローするまで再帰的に更新を伝播させます。neighbor 更新を制限付きの反復的ワークスタックで処理する修正を含むビルドにサーバーを更新してください。影響を受けるバージョンでの回避策として、fill を小さなボリュームに分割してください。たとえば 16×16×16 ではなく 16×16×1 のレイヤーに分割します:
/fill ~ ~ ~ ~15 ~ ~15 minecraft:acacia_sapling
/fill ~ ~1 ~ ~15 ~1 ~15 minecraft:acacia_sapling
/fill ~ ~2 ~ ~15 ~2 ~15 minecraft:acacia_sapling
全体のボリュームが埋まるまで Y 座標を増やし続けてください。パッチが適用されるまでは、1 回のコマンドでおおよそ 512〜576 個を超える苗木や感圧板ブロックを設置しないでください。
トラブル対応なぜ腐敗する葉ブロックは、音もなく消えるのではなく、ブロックの破壊音を再生するのですか?
これは、葉の腐朽ロジックが world.break_block(...) を呼び出すことが原因で発生します。この呼び出しにより、ブロック破壊音とパーティクルエフェクトがトリガーされます。腐朽する葉は、バニラの動作と一致するよう、world.set_block_state(...) を使用して静かに削除されるべきです。この修正はコミット 742beaf6f9f84fb99a04402434f6c6feb86667d1 で導入されました。PR fix(block): don't play break effects when leaves decay を含むビルドにサーバーを更新してください。フォークを維持している場合は、葉の腐朽における world.break_block(...) の呼び出しを world.set_block_state(...) に置き換えてください。
トラブル対応Pumpkin Minecraftサーバーで、ネザーポータルを側面から点火したときに部分的に壊れた状態で生成されてしまう問題を修正するにはどうすればよいですか?
これは Pumpkin Java Edition のビルド 0.2.0+26.3 から 26.51 までに影響します。ポータルが側面の黒曜石ブロックから点火された場合、NetherPortal::create はバニラの UPDATE_KNOWN_SHAPE フラグなしでポータルブロックを配置するため、構築途中の近隣ブロック更新によって点火に使われた火と一部のポータルブロックが削除されてしまいます。
修正: issue #3839 を修正する PR fix(portal): write nether portal blocks without neighbour shape updates を含むリリースまたはビルドに Pumpkin を更新し、サーバーを再起動してポータルを再点火してください。
一時的な回避策: 側面や垂直面ではなく、ポータルの底部/床の黒曜石ブロックに対して火打石と打ち金を使用してください。再点火する前に、残っている火や不完全なポータルブロックをすべて取り除いてください。