Enum refactoring

This commit is contained in:
kuroppoi 2021-04-23 14:33:00 +02:00
parent 78d3705a55
commit 41828dbf9c
9 changed files with 37 additions and 21 deletions

View file

@ -1,6 +1,6 @@
package brainwine.gameserver.entity; package brainwine.gameserver.entity;
import brainwine.gameserver.msgpack.EnumIdentifier; import brainwine.gameserver.msgpack.EnumValue;
import brainwine.gameserver.msgpack.RegisterEnum; import brainwine.gameserver.msgpack.RegisterEnum;
@RegisterEnum @RegisterEnum
@ -11,10 +11,14 @@ public enum EntityType {
TERRAPUS_JUVENLIE(3), TERRAPUS_JUVENLIE(3),
TERRAPUS_ADULT(4); TERRAPUS_ADULT(4);
@EnumIdentifier private final int id;
public final int id;
private EntityType(int id) { private EntityType(int id) {
this.id = id; this.id = id;
} }
@EnumValue
public int getId() {
return id;
}
} }

View file

@ -1,6 +1,6 @@
package brainwine.gameserver.entity; package brainwine.gameserver.entity;
import brainwine.gameserver.msgpack.EnumIdentifier; import brainwine.gameserver.msgpack.EnumValue;
import brainwine.gameserver.msgpack.RegisterEnum; import brainwine.gameserver.msgpack.RegisterEnum;
@RegisterEnum @RegisterEnum
@ -9,10 +9,14 @@ public enum FacingDirection {
WEST(-1), WEST(-1),
EAST(1); EAST(1);
@EnumIdentifier private final int id;
public final int id;
private FacingDirection(int id) { private FacingDirection(int id) {
this.id = id; this.id = id;
} }
@EnumValue
public int getId() {
return id;
}
} }

View file

@ -1,6 +1,6 @@
package brainwine.gameserver.entity.player; package brainwine.gameserver.entity.player;
import brainwine.gameserver.msgpack.EnumIdentifier; import brainwine.gameserver.msgpack.EnumValue;
import brainwine.gameserver.msgpack.RegisterEnum; import brainwine.gameserver.msgpack.RegisterEnum;
@RegisterEnum @RegisterEnum
@ -11,10 +11,14 @@ public enum ChatType {
SPEECH("s"), SPEECH("s"),
THOUGHT("t"); THOUGHT("t");
@EnumIdentifier private final String id;
public String id;
private ChatType(String id) { private ChatType(String id) {
this.id = id; this.id = id;
} }
@EnumValue
public String getId() {
return id;
}
} }

View file

@ -1,6 +1,6 @@
package brainwine.gameserver.entity.player; package brainwine.gameserver.entity.player;
import brainwine.gameserver.msgpack.EnumIdentifier; import brainwine.gameserver.msgpack.EnumValue;
import brainwine.gameserver.msgpack.RegisterEnum; import brainwine.gameserver.msgpack.RegisterEnum;
@RegisterEnum @RegisterEnum
@ -9,10 +9,14 @@ public enum ContainerType {
HOTBAR("h"), HOTBAR("h"),
ACCESSORIES("a"); ACCESSORIES("a");
@EnumIdentifier private final String id;
public final String id;
private ContainerType(String id) { private ContainerType(String id) {
this.id = id; this.id = id;
} }
@EnumValue
public String getId() {
return id;
}
} }

View file

@ -77,7 +77,7 @@ public class Inventory {
int slot = -1; int slot = -1;
if((slot = hotbar.getSlot(item)) != -1) { if((slot = hotbar.getSlot(item)) != -1) {
itemData.add(ContainerType.HOTBAR.id); itemData.add(ContainerType.HOTBAR.getId());
itemData.add(slot); itemData.add(slot);
} }

View file

@ -1,6 +1,6 @@
package brainwine.gameserver.entity.player; package brainwine.gameserver.entity.player;
import brainwine.gameserver.msgpack.EnumIdentifier; import brainwine.gameserver.msgpack.EnumValue;
import brainwine.gameserver.msgpack.RegisterEnum; import brainwine.gameserver.msgpack.RegisterEnum;
@RegisterEnum @RegisterEnum
@ -19,8 +19,8 @@ public enum Skill {
STAMINA, STAMINA,
SURVIVAL; SURVIVAL;
@EnumIdentifier @EnumValue
public String code() { public String getId() {
return toString().toLowerCase(); return toString().toLowerCase();
} }
} }

View file

@ -16,7 +16,7 @@ public enum ItemUseType {
UNKNOWN; UNKNOWN;
@JsonCreator @JsonCreator
public static ItemUseType create(String id) { public static ItemUseType fromId(String id) {
String formatted = id.toUpperCase().replace(" ", "_"); String formatted = id.toUpperCase().replace(" ", "_");
for(ItemUseType value : values()) { for(ItemUseType value : values()) {

View file

@ -11,4 +11,4 @@ import java.lang.annotation.Target;
*/ */
@Target({ElementType.FIELD, ElementType.METHOD}) @Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
public @interface EnumIdentifier {} public @interface EnumValue {}

View file

@ -13,7 +13,7 @@ import org.msgpack.template.AbstractTemplate;
import org.msgpack.type.ValueType; import org.msgpack.type.ValueType;
import org.msgpack.unpacker.Unpacker; import org.msgpack.unpacker.Unpacker;
import brainwine.gameserver.msgpack.EnumIdentifier; import brainwine.gameserver.msgpack.EnumValue;
public class EnumTemplate<T> extends AbstractTemplate<T> { public class EnumTemplate<T> extends AbstractTemplate<T> {
@ -24,7 +24,7 @@ public class EnumTemplate<T> extends AbstractTemplate<T> {
T[] entries = type.getEnumConstants(); T[] entries = type.getEnumConstants();
for(Field field : type.getFields()) { for(Field field : type.getFields()) {
if(field.isAnnotationPresent(EnumIdentifier.class)) { if(field.isAnnotationPresent(EnumValue.class)) {
try { try {
for(T entry : entries) { for(T entry : entries) {
Object id = field.get(entry); Object id = field.get(entry);
@ -40,7 +40,7 @@ public class EnumTemplate<T> extends AbstractTemplate<T> {
} }
for(Method method : type.getMethods()) { for(Method method : type.getMethods()) {
if(method.isAnnotationPresent(EnumIdentifier.class)) { if(method.isAnnotationPresent(EnumValue.class)) {
try { try {
for(T entry : entries) { for(T entry : entries) {
Object id = method.invoke(entry); Object id = method.invoke(entry);