提供: Minecraft Modding Wiki
2012年10月21日 (日) 17:34時点におけるReginn666 (トーク | 投稿記録)による版 (ページの作成:「{{前提MOD|reqmod="Minecraft Forge4.3x"}} ==プロキシシステム== プロキシシステムはデザインパターンにおけるproxyパターン(または, wra...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

この記事は"Minecraft Forge4.3x"を前提MODとしています。

プロキシシステム

プロキシシステムはデザインパターンにおけるproxyパターン(または, wrapperパターン)をシステムとして実装したものである. 具体的には, 以下の一文で示される

  • サーバー側, クライアント側で異なる処理を, 共通のインタフェースで行う

基本的にはクライアント側でのみ必要な処理を共通のインタフェースで行うが, サーバー側とクライアント側で異なる処理を共通のインタフェースで行いたい場合も利用する.

@SidedProxyアノテーション

@SidedProxy(clientSide = "パッケージ名.client.ClientProxy", serverSide = "パッケージ名.CommonProxy")
public static CommonProxy proxy;
  • CommonProxy
public class CommonProxy
{
}
  • ClientProxy
@SideOnly(Side.CLIENT)
public class ClientProxy extends CommonProxy
{
}

@SidedProxyアノテーションは実行される側によって生成するインスタンスを変えるアノテーションである. clientSideがクライアント側, serverSideがサーバー側である. 余談だが, bukkitSideが存在し, 将来的にbukkitにまでコードの統一化が行われることが示唆されている.

上記の例はクライアント側のみ, パッケージに階層clientを追加している. これはあくまで明示的にクライアントのみの処理はパッケージの階層を追加しているだけで, 実際はclientパッケージを作る必要性はない. ただし, チュートリアルで作成するModは明示的に階層を分けているので注意すること.