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

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

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
1行目: 1行目:
 +
{{前提MOD|reqmod="Minecraft Forge4.3x"}}
 +
 
==プロキシシステム==
 
==プロキシシステム==
プロキシシステムはデザインパターンにおけるproxyパターン(またはwrapperパターン)をシステムとして実装したものである。<br>
+
プロキシシステムはデザインパターンにおけるproxyパターン(または, wrapperパターン)をシステムとして実装したものである. 具体的には, 以下の一文で示される
SidedProxyは、サーバー側とクライアント側とで異なる処理を共通のインタフェースで行うといった用途に用いる。<br>
+
*サーバー側, クライアント側で異なる処理を, 共通のインタフェースで行う
この機構によって、クライアント・サーバーに存在しないクラスを読み込んでクラッシュすると言った事態を簡単に回避できる。
+
 
 +
基本的には'''クライアント側でのみ必要な処理'''を共通のインタフェースで行うが, サーバー側とクライアント側で異なる処理を共通のインタフェースで行いたい場合も利用する.
  
 
===@SidedProxyアノテーション===
 
===@SidedProxyアノテーション===
この例ではClientProxyをclientパッケージ下、ServerProxyをserverパッケージ下においている。
 
 
<source lang = "java">
 
<source lang = "java">
@SidedProxy(clientSide = "パッケージ名.client.ClientProxy", serverSide = "パッケージ名.server.ServerProxy")
+
@SidedProxy(clientSide = "パッケージ名.client.ClientProxy", serverSide = "パッケージ名.CommonProxy")
 
public static CommonProxy proxy;
 
public static CommonProxy proxy;
 
</source>
 
</source>
26行目: 28行目:
 
</source>
 
</source>
  
*ServerProxy
+
@SidedProxyアノテーションは実行される側によって生成するインスタンスを変えるアノテーションである. clientSideがクライアント側, serverSideがサーバー側である. 余談だが, bukkitSideが存在し, 将来的にbukkitにまでコードの統一化が行われることが示唆されている.
<source lang = "java">
 
@SideOnly(Side.SERVER)
 
public class ServerProxy extends CommonProxy
 
{
 
}
 
</source>
 
 
 
@SidedProxyを付与したフィールドは起動時(具体的には各ModのFMLConstructionEvent前)に、対応したプロキシで初期化される。<br>
 
保持するフィールドを@Modの付与されたクラスに置かない場合は、modidの記述も必須である。
 
  
== 参考 ==
+
==諸注意==
[http://mcforge.readthedocs.io/en/latest/concepts/sides/ ForgeDoc]
+
上記の例はクライアント側のみ, パッケージに階層clientを追加している. これはあくまで'''明示的に'''クライアントのみの処理はパッケージの階層を追加しているだけで, 実際はclientパッケージを作る必要性はない. ただし, チュートリアルで作成するModは'''明示的に階層を分けている'''ので注意すること.

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

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

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