提供: Minecraft Modding Wiki
ModderKina (トーク | 投稿記録) (こーしん。Server側は実際使わないしForgeのJavadocにもないけど解説なので書いとく。) |
ModderKina (トーク | 投稿記録) 細 |
||
37行目: | 37行目: | ||
保持するフィールドを@Modの付与されたクラスに置かない場合は、modidの記述も必須である。 | 保持するフィールドを@Modの付与されたクラスに置かない場合は、modidの記述も必須である。 | ||
− | == | + | == 参考 == |
− | + | [http://mcforge.readthedocs.io/en/latest/concepts/sides/ ForgeDoc] |
2017年3月3日 (金) 21:04時点における版
プロキシシステム
プロキシシステムはデザインパターンにおける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の記述も必須である。