12
0

Merge branch 'dynamic_instanciation' of SteamWar/SpigotCore into master

Dieser Commit ist enthalten in:
Lixfel 2020-01-28 06:29:07 +01:00 committet von Gitea
Commit 87f512bf2f

Datei anzeigen

@ -1,49 +1,16 @@
package de.steamwar.sql; package de.steamwar.sql;
import java.util.HashMap; import de.steamwar.core.Core;
import java.util.Map; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
public enum SchematicType { import java.io.File;
Normal("", Type.NORMAL), import java.util.*;
CAirShip("CAS", Type.CHECK_TYPE),
CWarGear("CWG", Type.CHECK_TYPE),
CWarShip("CWS", Type.CHECK_TYPE),
CMiniWarGear("CMWG", Type.CHECK_TYPE),
AirShip("AS", Type.FIGHT_TYPE, CAirShip),
WarGear("WG", Type.FIGHT_TYPE, CWarGear),
WarShip("WS", Type.FIGHT_TYPE, CWarShip),
MiniWarGear("MWG", Type.FIGHT_TYPE, CMiniWarGear),
CMPPWarGear1_12("CMPPWG", Type.CHECK_TYPE), public class SchematicType {
CSGWarShip("CSGWS", Type.CHECK_TYPE), public static final SchematicType Normal = new SchematicType("Normal", "", Type.NORMAL, null); //Has to stay publicly availible
CWarGear1_10("CWG1.10", Type.CHECK_TYPE),
CWarShip1_9("CWS1.9", Type.CHECK_TYPE),
CWarShip1_8("CWS1.8", Type.CHECK_TYPE),
CWarGear1_7("CWG1.7", Type.CHECK_TYPE),
WarGear1_14("WG1.14", Type.FIGHT_TYPE, null),
MPPWarGear1_12("MPPWG", Type.FIGHT_TYPE, CMPPWarGear1_12),
SGWarShip("SGWS", Type.FIGHT_TYPE, CSGWarShip),
WarGear1_12("WG1.12", Type.FIGHT_TYPE, null),
WarShip1_12("WS1.12", Type.FIGHT_TYPE, null),
MiniWarGear1_12("MWG1.12", Type.FIGHT_TYPE, null),
WarGear1_10("WG1.10", Type.FIGHT_TYPE, CWarGear1_10),
WarShip1_9("WS1.9", Type.FIGHT_TYPE, CWarShip1_9),
WarShip1_8("WS1.8", Type.FIGHT_TYPE, CWarShip1_8),
WarGear1_7("WG1.7", Type.FIGHT_TYPE, CWarGear1_7)
; private static final Map<String, SchematicType> fromDB;
//public static final SchematicType Normal = new SchematicType("Normal", "", Type.NORMAL, null); //Has to stay publicly availible
private static final Map<String, SchematicType> fromDB = new HashMap<>();
static{
for(SchematicType type : values()){
fromDB.put(type.name().toLowerCase(), type);
}
}
/*private static final Map<String, SchematicType> fromDB;
private static final List<SchematicType> types; private static final List<SchematicType> types;
static{ static{
@ -56,30 +23,30 @@ public enum SchematicType {
List<SchematicType> tmpTypes = new LinkedList<>(); List<SchematicType> tmpTypes = new LinkedList<>();
Map<String, SchematicType> tmpFromDB = new HashMap<>(); Map<String, SchematicType> tmpFromDB = new HashMap<>();
tmpTypes.add(Normal);
tmpFromDB.put(Normal.name().toLowerCase(), Normal);
for(String type : config.getKeys(false)){ for(String type : config.getKeys(false)){
ConfigurationSection section = config.getConfigurationSection(type); ConfigurationSection section = config.getConfigurationSection(type);
assert section != null; assert section != null;
String checktype = section.getString("checktype"); String checktype = section.getString("checktype");
SchematicType current = new SchematicType(type, section.getString("kuerzel"), Type.valueOf(section.getString("type")), checktype != null ? fromDB(checktype) : null); SchematicType current = new SchematicType(type, section.getString("kuerzel"), Type.valueOf(section.getString("type")), checktype != null ? tmpFromDB.get(checktype.toLowerCase()) : null);
tmpTypes.add(current); tmpTypes.add(current);
tmpFromDB.put(type.toLowerCase(), current); tmpFromDB.put(type.toLowerCase(), current);
} }
fromDB = Collections.unmodifiableMap(tmpFromDB); fromDB = Collections.unmodifiableMap(tmpFromDB);
types = Collections.unmodifiableList(tmpTypes); types = Collections.unmodifiableList(tmpTypes);
}*/ }
//private final String name; private final String name;
private final String kuerzel; private final String kuerzel;
private final Type type; private final Type type;
private SchematicType checkType; private SchematicType checkType;
private SchematicType(String kuerzel, Type type){ private SchematicType(String name, String kuerzel, Type type, SchematicType checkType){
this(kuerzel, type, null); this.name = name;
}
private SchematicType(String kuerzel, Type type, SchematicType checkType){
//this.name = name;
this.kuerzel = kuerzel; this.kuerzel = kuerzel;
this.type = type; this.type = type;
this.checkType = checkType; this.checkType = checkType;
@ -105,25 +72,25 @@ public enum SchematicType {
return type == Type.NORMAL; return type == Type.NORMAL;
} }
/*public String name(){ public String name(){
return name; return name;
}*/ }
public String getKuerzel() { public String getKuerzel() {
return kuerzel; return kuerzel;
} }
public String toDB(){ public String toDB(){
return name().toLowerCase(); return name.toLowerCase();
} }
public static SchematicType fromDB(String input){ public static SchematicType fromDB(String input){
return fromDB.getOrDefault(input.toLowerCase(), null); return fromDB.getOrDefault(input.toLowerCase(), null);
} }
/*public static List<SchematicType> values(){ public static List<SchematicType> values(){
return types; return types;
}*/ }
enum Type{ enum Type{
NORMAL, NORMAL,