プロキシシステムについて

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

[編集] プロキシシステム

プロキシシステムはデザインパターンにおけるproxyパターン(または, wrapperパターン)をシステムとして実装したものである。
SidedProxyにおいては、サーバー側とクライアント側とで異なる処理を共通のインタフェースで行うといった用途に用いる。
この機構によって、クライアント・サーバーに存在しないクラスを読み込んでクラッシュすると言った事態をかんたんに回避できる。

[編集] @SidedProxyアノテーション

この例ではClientProxyをclientパッケージ下、ServerProxyをserverパッケージ下においている。

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

@SidedProxyを付与したフィールドは起動時(具体的には各ModのFMLConstructionEvent前)に、対応したプロキシで初期化される。
保持するフィールドを@Modの付与されたクラスに置かない場合は、modidの記述も必須である。

[編集] 参考

ForgeDoc

チュートリアル
個人用ツール