package javastory.server.handling;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
public enum ClientPacketOpcode implements WritableIntValueHolder {
PONG(false),
LOGIN_PASSWORD(false),
SERVERLIST_REQUEST,
CHARLIST_REQUEST,
SERVERSTATUS_REQUEST,
CHECK_CHAR_NAME,
CREATE_CHAR,
DELETE_CHAR,
STRANGE_DATA,
CHAR_SELECT,
AUTH_SECOND_PASSWORD,
RSA_KEY(false),
PLAYER_LOGGEDIN(false),
CHANGE_MAP,
CHANGE_CHANNEL,
ENTER_CASH_SHOP,
MOVE_PLAYER,
CANCEL_CHAIR,
USE_CHAIR,
CLOSE_RANGE_ATTACK,
RANGED_ATTACK,
MAGIC_ATTACK,
PASSIVE_ENERGY,
TAKE_DAMAGE,
GENERAL_CHAT,
CLOSE_CHALKBOARD,
FACE_EXPRESSION,
USE_ITEMEFFECT,
WHEEL_OF_FORTUNE,
MONSTER_BOOK_COVER,
NPC_TALK,
NPC_TALK_MORE,
NPC_SHOP,
STORAGE,
USE_HIRED_MERCHANT,
MERCH_ITEM_STORE,
DUEY_ACTION,
ITEM_SORT,
ITEM_GATHER,
ITEM_MOVE,
USE_ITEM,
CANCEL_ITEM_EFFECT,
USE_SUMMON_BAG,
PET_FOOD,
USE_MOUNT_FOOD,
USE_SCRIPTED_NPC_ITEM,
USE_CASH_ITEM,
USE_CATCH_ITEM,
USE_SKILL_BOOK,
USE_RETURN_SCROLL,
USE_UPGRADE_SCROLL,
DISTRIBUTE_AP,
AUTO_ASSIGN_AP,
HEAL_OVER_TIME,
DISTRIBUTE_SP,
SPECIAL_MOVE,
CANCEL_BUFF,
SKILL_EFFECT,
MESO_DROP,
GIVE_FAME,
CHAR_INFO_REQUEST,
SPAWN_PET,
CANCEL_DEBUFF,
CHANGE_MAP_SPECIAL,
USE_INNER_PORTAL,
TROCK_ADD_MAP,
QUEST_ACTION,
SKILL_MACRO,
REWARD_ITEM,
ITEM_MAKER,
USE_TREASUER_CHEST,
PARTYCHAT,
WHISPER,
MESSENGER,
PLAYER_INTERACTION,
PARTY_OPERATION,
DENY_PARTY_REQUEST,
GUILD_OPERATION,
DENY_GUILD_REQUEST,
BUDDYLIST_MODIFY,
NOTE_ACTION,
USE_DOOR,
CHANGE_KEYMAP,
ENTER_MTS,
ALLIANCE_OPERATION,
REQUEST_FAMILY,
OPEN_FAMILY,
FAMILY_OPERATION,
DELETE_JUNIOR,
DELETE_SENIOR,
USE_FAMILY,
FAMILY_PRECEPT,
FAMILY_SUMMON,
CYGNUS_SUMMON,
ARAN_COMBO,
BBS_OPERATION,
TRANSFORM_PLAYER,
MOVE_PET,
PET_CHAT,
PET_COMMAND,
PET_LOOT,
PET_AUTO_POT,
MOVE_SUMMON,
SUMMON_ATTACK,
DAMAGE_SUMMON,
MOVE_LIFE,
AUTO_AGGRO,
FRIENDLY_DAMAGE,
MONSTER_BOMB,
HYPNOTIZE_DMG,
NPC_ACTION,
ITEM_PICKUP,
DAMAGE_REACTOR,
SNOWBALL,
LEFT_KNOCK_BACK,
COCONUT,
MONSTER_CARNIVAL,
SHIP_OBJECT,
CS_UPDATE,
BUY_CS_ITEM,
MAPLETV,
MOVE_DRAGON;
private int code = -2;
@Override
public void setValue(final int code) {
this.code = code;
}
@Override
public final int getValue() {
return this.code;
}
private boolean CheckState;
private ClientPacketOpcode() {
this.CheckState = true;
}
private ClientPacketOpcode(final boolean CheckState) {
this.CheckState = CheckState;
}
public final boolean NeedsChecking() {
return this.CheckState;
}
public static Properties getDefaultProperties() throws FileNotFoundException, IOException {
final Properties props = new Properties();
try (FileInputStream fileInputStream = new FileInputStream("clientopcodes.properties")) {
props.load(fileInputStream);
}
return props;
}
static {
reloadValues();
}
public static void reloadValues() {
try {
ExternalCodeTableGetter.populateValues(getDefaultProperties(), values());
} catch (final IOException e) {
throw new RuntimeException("Failed to load client op codes", e);
}
}
}