提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
25行目: 25行目:
 
ですので、サーバ側ワールドへの変更を、直接modからやってしまうとマルチスレッドでの不具合が発生します。<br />
 
ですので、サーバ側ワールドへの変更を、直接modからやってしまうとマルチスレッドでの不具合が発生します。<br />
 
ではどうするのか、以下次章。
 
ではどうするのか、以下次章。
 
==サーバ側スレッド、もしくはサーバプロセスで動くために==
 
 
mod はクライアントスレッドで動いています。サーバスレッド、もしくはサーバプロセスで動くためには何かしらきっかけ、イベント、メッセージが必要です。<br />
 
以前、パケットクラスを継承してそれを投げれば、と書いたのですがそれはシングルプレイのみで有効な方法でした。<br />
 
パケットクラスは厳重に管理されており、本体を直接改造する以外で新たなパケットを正当に登録することは至難の業です。<br />
 
SMP も視野に入れる、本来の正当な形のパケットメッセージを投げるには、Packet250CustomPayload クラスを使います。<br />
 
Packet250CustomPayload はビルトインのパケットクラスで、クライアント側からもサーバ側からも投げることができます。<br />
 
ModLoader はこれを扱う方法を用意しています。それが ModLoader.registerPacketChannel メソッドです。<br />
 
mod のインスタンスをチャネル名(15文字以下)とともに登録することで、そのチャネル名を持つ Packet250CustomPayload クラスのインスタンスが届いた時に<br />
 
mod インスタンスの clientCustomPayload, serverCustomPayload メソッドを呼んでくれます。<br />
 
サーバ側からクライアントへ投げた場合は前者が、クライアントから接続先サーバへ投げた場合は後者のメソッドが呼ばれます。<br />
 
Packet250CustomPayload はチャネル名の他に 32kb までのバイト配列をもたせられますので、必要な情報をここに乗せて投げれば目的を達成できます。<br />
 
 
 
  
 
==シングルプレイ用modを作るときは==
 
==シングルプレイ用modを作るときは==
 
この章は無視してください!Packet250CustomPayload クラスを使いましょう!<br />
 
  
 
前章でも記述したとおり、ModLoaderで動作するmodはクライアント側ワールド担当のスレッドで動きます。<br />
 
前章でも記述したとおり、ModLoaderで動作するmodはクライアント側ワールド担当のスレッドで動きます。<br />

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)