diff --git a/CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java b/CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java index c7e9ecf8..af6c395d 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java +++ b/CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java @@ -35,11 +35,19 @@ import java.util.stream.Collectors; public final class GameModeConfig { public static final Function ToString = Function.identity(); - public static final Function ToStaticWarGear = __ -> "WarGear"; - public static final Function ToInternalName = file -> file != null ? file.getName().replace(".yml", "") : "WarGear"; + public static final Function ToStaticWarGear = GameModeConfig::constWarGear; + public static final Function ToInternalName = GameModeConfig::internalName; public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy HH:mm"); private static final Random random = new Random(); + private static String constWarGear(File f) { + return "WarGear"; + } + + private static String internalName(File f) { + return f.getName().replace(".yml", ""); + } + private static final Map> byFileName; private static final Map> byGameName; private static final Map> bySchematicType; diff --git a/CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt b/CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt index a953e90a..1d69976d 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt +++ b/CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt @@ -33,14 +33,14 @@ import kotlin.jvm.optionals.getOrNull object NodeMemberTable : CompositeIdTable("NodeMember") { val node = reference("NodeId", SchematicNodeTable) - val nodeOwner = reference("NodeOwner", SteamwarUserTable) - val parentNode = optReference("ParentNodeId", SchematicNodeTable) + val userId = reference("UserId", SteamwarUserTable) + val parentNode = optReference("ParentId", SchematicNodeTable) - override val primaryKey = PrimaryKey(node, nodeOwner) + override val primaryKey = PrimaryKey(node, userId) init { addIdColumn(node) - addIdColumn(nodeOwner) + addIdColumn(userId) } } @@ -50,7 +50,7 @@ class NodeMember(id: EntityID) : CompositeEntity(id) { fun createNodeMember(node: Int, member: Int): NodeMember = useDb { NodeMemberTable.insertIgnore { it[this.node] = EntityID(node, SchematicNodeTable) - it[this.nodeOwner] = EntityID(member, SteamwarUserTable) + it[this.userId] = EntityID(member, SteamwarUserTable) } getNodeMember(node, member) ?: throw IllegalStateException("NodeMember not created") } @@ -60,7 +60,7 @@ class NodeMember(id: EntityID) : CompositeEntity(id) { @JvmStatic fun getNodeMember(node: Int, member: Int) = useDb { - find { (NodeMemberTable.node eq node) and (NodeMemberTable.nodeOwner eq member) }.firstOrNull() + find { (NodeMemberTable.node eq node) and (NodeMemberTable.userId eq member) }.firstOrNull() } @JvmStatic @@ -70,14 +70,14 @@ class NodeMember(id: EntityID) : CompositeEntity(id) { fun getNodeMembers(node: Int) = useDb { find { NodeMemberTable.node eq node }.toSet() } @JvmStatic - fun getSchematics(member: Int) = useDb { find { NodeMemberTable.nodeOwner eq member }.toSet() } + fun getSchematics(member: Int) = useDb { find { NodeMemberTable.userId eq member }.toSet() } @JvmStatic fun init() = Unit } val node by NodeMemberTable.node.transform({ EntityID(it, SchematicNodeTable) }, { it.value }) - val member by NodeMemberTable.nodeOwner.transform({ EntityID(it, SteamwarUserTable) }, { it.value }) + val member by NodeMemberTable.userId.transform({ EntityID(it, SteamwarUserTable) }, { it.value }) var parent by NodeMemberTable.parentNode.transform( { it.map { EntityID(it, SchematicNodeTable) }.getOrNull() }, { Optional.ofNullable(it?.value) }) diff --git a/CommonCore/SQL/src/de/steamwar/sql/SchematicNode.kt b/CommonCore/SQL/src/de/steamwar/sql/SchematicNode.kt index 6ea079f5..c3e01d01 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/SchematicNode.kt +++ b/CommonCore/SQL/src/de/steamwar/sql/SchematicNode.kt @@ -206,7 +206,7 @@ class SchematicNode(id: EntityID) : IntEntity(id) { @JvmStatic fun getAllAccessibleSchematicsOfType(user: Int, type: String) = - accessibleByUserType(SteamwarUser.byId(user)!!, SchematicType.fromDB(type)) + accessibleByUserType(SteamwarUser.byId(user)!!, SchematicType.fromDB(type)!!) @JvmStatic fun getAllSchematicsAccessibleByUser(user: Int) = getAll(SteamwarUser.byId(user)!!) @@ -328,7 +328,7 @@ class SchematicNode(id: EntityID) : IntEntity(id) { } private var nodeType by SchematicNodeTable.type var schemtype: SchematicType - get() = checkDir { SchematicType.fromDB(nodeType!!) } + get() = checkDir { SchematicType.fromDB(nodeType!!)!! } set(value) = checkDir { useDb { nodeType = value.toDB() } } var config by SchematicNodeTable.config diff --git a/CommonCore/SQL/src/de/steamwar/sql/SchematicType.kt b/CommonCore/SQL/src/de/steamwar/sql/SchematicType.kt index 50b0311e..ea34a1ba 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/SchematicType.kt +++ b/CommonCore/SQL/src/de/steamwar/sql/SchematicType.kt @@ -46,7 +46,7 @@ data class SchematicType( val Normal = SchematicType("Normal", "", Type.NORMAL, null, "STONE_BUTTON", false) private val types: List - private val fromDB: Map + private val fromDB: Map? init { val tmpTypes = mutableListOf() @@ -85,8 +85,7 @@ data class SchematicType( fun values() = types @JvmStatic - fun fromDB(value: String) = - fromDB[value.lowercase()] ?: throw IllegalArgumentException("Unknown SchematicType: $value") + fun fromDB(value: String) = fromDB?.let { it[value] } } fun name() = name