この記事で説明すること ネットワークレイヤーで見るアイテムの振舞いについて pmmp5上での表現・対応 アイテムのネットワーク上での表現 ここではpmmp/Bedrockでの表現を利用してネットワーク上での表現について説明します。 1.19.21現在、アイテムに関する仕様は以下のようになっています。 StartGamePacket ItemTypeEntryの配列を送信して、アイテムの文字ID(minecraft:bow...
初めましての方は初めまして。 Minecraft: BedrockEditionのサーバーソフト、PocketMine-MPでプラグイン開発をしている冬月ゆこと申します。 今回はプラグイン開発講座ということで、そのための環境構築から解説していきます。 タイトル通り、初心者向けの記事になりますので知っている方は適度に読み飛ばして下さい。 また、筆者の環境上、Windows向けの記事となります。MacOSの方は質問があればこのスレッドに返信などいただければ知りうる限りの情報を教えます。...
こんにちは。 今回は実際にコードに触れながら、"どのように"コーディングしていくのかを勉強していきましょう。 環境の確認 サーバーが一度でも起動していれば、前回作ったフォルダの中身は以下のスクリーンショットのようになると思います。 このような状態であれば起動ができていると思います。 DevToolsの導入 DevTools.pharはプラグインです。そのため、pluginsフォルダ内に入れないと動作しません。...
:mc_296-0: はじめに 覚え書き。 カウントダウンとか実装するときダラダラ書いちゃうから簡潔に書けるようにした。 :mc_340-0: さんぷる :mc_341-0: さいごに 共有できるもんはしとこうね
:mc_e_98: はじめに アイテムのクールダウンをPocketMineのAPIからうまく実装できたので覚え書き程度に残す! 実行時のバージョンは PocketMine-MP 4.2.6 だよ。デバッグは 2022/4/22 にやった。 上の画像は 記事の最初の画像は、直接リンクされていても、添付されていても、表紙画像として使用されます って書いてあったからテキトウにスクショした :mc_e_93: 使ったPocketMineのメソッド...
独自アイテムクラスを作るときにItemFactoryに登録が必要な理由 端的にいうとBedrockクライアントから送信されるアイテムスタックをPocketMine-MPのアイテムに変換できなくなるためです。 これによりアイテムを移動させる際にアイテムが純粋なItemクラスのオブジェクトに変換されてしまいます。 解決法 アイテムファクトリに登録しましょう! use pocketmine\item\ItemFactory; /** @var ItemFactory $factory */...
前回の続きから始めます。 イベントを使うプラグインを読む Playerクラスのteleportメソッドはどのような内容か? 同じことの繰り返しとなるのでPlayerクラスの内容を抜粋して表記します。 public function teleport(Vector3 $pos, ?float $yaw = null, ?float $pitch = null) : bool{ if(parent::teleport($pos, $yaw, $pitch)){...
この記事ではプラグインを作るうえではほぼ必須となる、PocketMine-MPのソースコードを読む方法を解説します。 想定読者 プラグインのソースコードを理解したい人 サンプル以外のコードを書きたい人 イベントを使うプラグインを読む 今回は AlwaysSpawn というプラグインを例にします。 <?php namespace philipshilling\alwaysspawn; use pocketmine\event\Listener; use...
Commando CortexPEにより開発されているコマンド作成補助virionです。 お手軽に入力補完やサブコマンドを実装することができます。 ソースコード: https://github.com/CortexPE/Commando コードを引用・本文の訳 poggit: https://poggit.pmmp.io/ci/CortexPE/Commando/~ サンプルコード: https://github.com/OiranCage/ItemUtils...
きっかけ・目的 今回はGeneratorについて初めて触ってみて、いろいろと詰まったりわからなかったりした点が多かったので備忘録のような形で解説・記録していきます。 追記形式です。 用語 数学・アルゴリズム系統 Random シードから算出される乱数を作るためのクラス。同一のシードから毎回同じ乱数が得られるためにこれが利用される。 Noise ノイズ生成に用いるクラス。後述のSimplexの親クラスであり、ノイズ生成用のメソッドを保有する。 Simplex...
:mc_2-0: はじめに :mc_2-0: コマンドをTab補完できるようにする機能について。 説明はしません。覚え書きです。 私なりの解釈で自由にメモ程度に置いておくだけです。 参考にならないかもしれませんが悪しからず。 :mc_166-0: 免責事項 :mc_166-0: 基本的に解説は Kotlin をもちいておこなっています。 IDEによっては Kotlin とJavaのコンバートを行えることがあると思うので、利用の際は変換してからご利用ください。 ...
PocketMine-MP (以降PMMP) でもNukkitでもそうですが、なぜMetadataを使えるようにしていないのか意味が分からない。 使えるように実装します。PHPでは書きません。ご自身で頑張ってください笑 よって以下はNukkitにおける実装例です。 :mc_166-0: 免責事項 :mc_166-0: 基本的に解説は Kotlin をもちいておこなっています。 IDEによっては Kotlin...
このサイトは記事も投稿できるみたいなので試しに書いてみました この記事はPocketmine-Mpのプラグイン開発の参考記事です 【対象】 Joinメッセージなどの簡単なプラグインを書ける段階の人 ProgateのPHP#1をクリアできるレベルの人 【目標】 プレイヤーがサーバーに入ったときに、エメラルドを渡すプラグインを作る 【早速書いてみよう】 まずはいつも通りメインクラスから... <?php namespace name\plugin_name; use...
これはPocketMine-MPに関わらずMinecraft: BedrockEditionで発生している問題ですが、Minecraftでの外部サーバーの motdが度重なるアップデートの末に縮小してしまい、現在はたった10文字しか表示することができません。 これではmotdの意味がありません! 1.0時代のMinecraft: PocketEditionの外部サーバー画像 1.16.201現在のMinecraft: BedrockEditionの外部サーバー画像...
パケットとは 小包みのこと。通信を行うときにデータを分割して、これを作ってデータを送/受信する。 Minecraft: BedrockEditionでのパケット Minecraft: BedrockEditionはJavaEditionのTCPとは違い、UDPで通信を行っています。 UDPについては省略しますが、「User Datagram Protocol」の名の通り、Datagramというデータの塊を投げつけて通信を行います。...