package handling; import constants.ServerConstants; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.Properties; import tools.EncodingDetect; public enum InteractionOpcode implements WritableIntValueHolder { 设置物品, 设置物品_001, 设置物品_002, 设置物品_003, 设置金币, 设置金币_005, 设置金币_006, 设置金币_007, 确认交易, 确认交易_009, 确认交易_00A, 确认交易_00B, 创建, 访问, 房间, 交易邀请, 拒绝邀请, 聊天, 聊天事件, 打开, 退出, 玩家商店_添加道具, 玩家商店_购买道具, 雇佣商店_维护, 添加物品, 添加物品_0020, 添加物品_0021, 添加物品_0022, BUY_ITEM_STORE, 雇佣商店_购买道具, 雇佣商店_购买道具0024, 雇佣商店_购买道具0025, 雇佣商店_购买道具0026, 雇佣商店_求购道具, 移除物品, 雇佣商店_开启, 雇佣商店_整理, 雇佣商店_关闭, 雇佣商店_关闭完成, 管理员修改雇佣商店名称, 雇佣商店_查看访问名单, 雇佣商店_查看黑名单, 雇佣商店_添加黑名单, 雇佣商店_移除黑名单, 雇佣商店_修改商店名称, 雇佣商店_错误提示, 雇佣商店_更新信息, 雇佣商店_维护开启, REQUEST_TIE, ANSWER_TIE, GIVE_UP, REQUEST_REDO, ANSWER_REDO, EXIT_AFTER_GAME, CANCEL_EXIT, READY, UN_READY, EXPEL, START, SKIP, MOVE_OMOK, SELECT_CARD; private byte code = -2; @Override public void setValue(byte code) { this.code = code; } @Override public byte getValue() { return this.code; } public static InteractionOpcode getByAction(int packetId) { for (InteractionOpcode interaction : values()) { if (interaction.getValue() == packetId) { return interaction; } } return null; } public static Properties getDefaultProperties() throws FileNotFoundException, IOException { Properties props = new Properties(); try (FileInputStream fileInputStream = new FileInputStream("Interaction.properties")) { props.load(new BufferedReader(new InputStreamReader(fileInputStream, EncodingDetect.getJavaEncode("Interaction.properties")))); } return props; } public static void reloadValues() { try { if (ServerConstants.loadop) { Properties props = new Properties(); props.load(InteractionOpcode.class.getClassLoader().getResourceAsStream("Interaction.ini")); ExternalCodeTableGetter.populateValues(props, values()); } else { ExternalCodeTableGetter.populateValues(getDefaultProperties(), values()); } } catch (IOException e) { throw new RuntimeException("加载 Interaction.properties 文件出现错误", e); } } static { reloadValues(); } }