package emu.grasscutter.game.props; import java.util.HashMap; import java.util.Map; import java.util.stream.Stream; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; public enum EnterReason { None(0), Login(1), DungeonReplay(11), DungeonReviveOnWaypoint(12), DungeonEnter(13), DungeonQuit(14), Gm(21), QuestRollback(31), Revival(32), PersonalScene(41), TransPoint(42), ClientTransmit(43), ForceDragBack(44), TeamKick(51), TeamJoin(52), TeamBack(53), Muip(54), DungeonInviteAccept(55), Lua(56), ActivityLoadTerrain(57), HostFromSingleToMp(58), MpPlay(59), AnchorPoint(60), LuaSkipUi(61), ReloadTerrain(62), DraftTransfer(63), EnterHome(64), ExitHome(65), ChangeHomeModule(66), Gallery(67), HomeSceneJump(68), HideAndSeek(69); private final int value; private static final Int2ObjectMap map = new Int2ObjectOpenHashMap<>(); private static final Map stringMap = new HashMap<>(); static { Stream.of(values()).forEach(e -> { map.put(e.getValue(), e); stringMap.put(e.name(), e); }); } private EnterReason(int value) { this.value = value; } public int getValue() { return value; } public static EnterReason getTypeByValue(int value) { return map.getOrDefault(value, None); } public static EnterReason getTypeByName(String name) { return stringMap.getOrDefault(name, None); } }