PHPを使用してMinecraftをmod:斬新なアプローチ
この記事では、PHPを使用してMinecraft Modを作成するためのユニークな方法を調査し、Javaへの従来の依存をバイパスします。 非同期PHPライブラリとイベントループを活用するこの手法は、リソース集約型のビジーループの必要性を回避し、効率的なMOD開発を可能にします。
Minecraft ModdingのJavaを学ぶという課題は、この革新的なアプローチによって対処されています。 このチュートリアルでは、PHPでMODを構築する方法を示し、典型的な言語の壁を克服します。
(今後の投稿では、合理化された青写真の作成のための3D JavaScript Minecraftエディターの詳細を説明します。
(このチュートリアルのコードの大部分はGitHubで入手できます。テストは最新のChromeバージョンとPHP 7.0を使用して実施されました。 。)
ステージの設定
PHPとMinecraftサーバー間の通信が重要です。従来のブロッキングの代わりにループ:
非同期PHPライブラリであるAMPHPを使用して、イベントループやHTTPクライアントなどの機能を提供します。最初に、必要なライブラリをインストールします:while
while (true) { // listen for player requests // make changes to the game sleep(1); }
この非ブロッキングアプローチにより、潜在的にブロックするタスクを待っている間、同時操作が可能になります。
composer require amphp/amp composer require amphp/file
require __DIR__ . "/vendor/autoload.php"; Amp\run(function() { Amp\repeat(function() { // listen for player requests // make changes to the game }, 1000); });
この関数は、メインスレッドをブロックせずに非同期ファイル操作を効率的に処理します。
サーバーログの監視
modは、プレーヤーコマンドを検出するためにサーバーログにリッスンします。 これにより、コマンドの重複実行が防止されます
(サーバーのログファイルパスにuse Amp\File\Driver; function getContents(Driver $files, $path, $previous) { $next = yield $files->mtime($path); if ($previous !== $next) { return yield $files->get($path); } return null; }
<
コードは、変更のログファイルを監視し、新しい行を処理し、それに応じてコマンドを実行します。
ブループリントの生成とブロック配置
define("LOG_PATH", "/path/to/logs/latest.log"); $files = Amp\File\filesystem(); // ... (rest of the code remains largely the same)
3D JavaScript Builder(別の投稿で詳細)は、ブロック座標の配列を生成します。 この配列は、Minecraft内の構造を構築するためにPHPスクリプトによって使用されます。
関数はビルドコマンドを処理し、生成された座標に基づいてブロックを配置します。
RCON executeCommand
Minecraft ServerのRCON(リモートコンソール)により、PHPスクリプトとの通信が可能になります。 RCONクライアントライブラリは、サーバーにコマンドを送信するために使用されます。
(注:ライブラリには、テスト目的でMinecraftサーバーが含まれています。
サーバーのwhile (true) { // listen for player requests // make changes to the game sleep(1); }
theory/builder
関数はRCONクライアントを使用してコマンドを送信してブロックを配置します。
server.properties
composer require amphp/amp composer require amphp/file
executeCommand
/setblock
このアプローチは、高度なMOD機能への扉を開きます。 将来の改善には、設計の提出のためのJSON APIと、より複雑なブロック配置が含まれる場合があります。 付随するJavaScript投稿には、3Dビルダーの詳細が記載されています。 可能性は膨大です!
よくある質問(FAQ)
PHPでMinecraftの改造を開始するにはどうすればよいですか? ...
php-minecraft-queryとは何ですか?
... Minecraft JavaとBedrock版の違いは何ですか?
php?
にminecraftサーバーを実装できますか?windowsでminecraftをプレイできますか
php-minecraft/minecraft-queryパッケージは何ですか?
PHPを使用してMinecraftに建物を作成するにはどうすればよいですか?
......
PHP Minecraft modsを他の人と共有できますか?
以上がPHPを使用したMinecraftの改造 - コードからの建物!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。