diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/BlockId.java b/src/main/java/de/bixilon/minosoft/data/mappings/BlockId.java
index 560a5b9bf..1c6de83b3 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/BlockId.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/BlockId.java
@@ -13,17 +13,13 @@
package de.bixilon.minosoft.data.mappings;
-public record BlockId(String mod, String identifier) {
- public String getMod() {
- return mod;
+public class BlockId extends ModIdentifier {
+
+ public BlockId(String mod, String identifier) {
+ super(mod, identifier);
}
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String toString() {
- return String.format("%s:%s", getMod(), getIdentifier());
+ public BlockId(String fullIdentifier) {
+ super(fullIdentifier);
}
}
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/Dimension.java b/src/main/java/de/bixilon/minosoft/data/mappings/Dimension.java
index 21a9398f8..f861f4b89 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/Dimension.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/Dimension.java
@@ -13,39 +13,18 @@
package de.bixilon.minosoft.data.mappings;
-public class Dimension {
- final String mod;
- final String identifier;
+public class Dimension extends ModIdentifier {
final boolean hasSkyLight;
public Dimension(String mod, String identifier, boolean hasSkyLight) {
- this.mod = mod;
- this.identifier = identifier;
+ super(mod, identifier);
this.hasSkyLight = hasSkyLight;
}
- public String getMod() {
- return mod;
- }
-
- public String getIdentifier() {
- return identifier;
- }
-
public boolean hasSkyLight() {
return hasSkyLight;
}
- @Override
- public String toString() {
- return String.format("%s:%s", getMod(), getIdentifier());
- }
-
- @Override
- public int hashCode() {
- return mod.hashCode() * identifier.hashCode();
- }
-
@Override
public boolean equals(Object obj) {
if (super.equals(obj)) {
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/Enchantment.java b/src/main/java/de/bixilon/minosoft/data/mappings/Enchantment.java
index aea9eb09f..fa6277123 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/Enchantment.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/Enchantment.java
@@ -13,17 +13,13 @@
package de.bixilon.minosoft.data.mappings;
-public record Enchantment(String mod, String identifier) {
- public String getMod() {
- return mod;
+public class Enchantment extends ModIdentifier {
+
+ public Enchantment(String mod, String identifier) {
+ super(mod, identifier);
}
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String toString() {
- return String.format("%s:%s", mod, identifier);
+ public Enchantment(String fullIdentifier) {
+ super(fullIdentifier);
}
}
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/Item.java b/src/main/java/de/bixilon/minosoft/data/mappings/Item.java
index 2cafac1a1..2f33fc1b8 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/Item.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/Item.java
@@ -13,48 +13,13 @@
package de.bixilon.minosoft.data.mappings;
-public class Item {
- final String mod;
- final String identifier;
+public class Item extends ModIdentifier {
public Item(String fullIdentifier) {
- String[] split = fullIdentifier.split(":");
- this.mod = split[0];
- this.identifier = split[1];
+ super(fullIdentifier);
}
public Item(String mod, String identifier) {
- this.mod = mod;
- this.identifier = identifier;
- }
-
- public String getMod() {
- return mod;
- }
-
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String toString() {
- return String.format("%s:%s", getMod(), getIdentifier());
- }
-
- @Override
- public int hashCode() {
- return mod.hashCode() * identifier.hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (super.equals(obj)) {
- return true;
- }
- if (hashCode() != obj.hashCode()) {
- return false;
- }
- Item their = (Item) obj;
- return getIdentifier().equals(their.getIdentifier()) && getMod().equals(their.getMod());
+ super(mod, identifier);
}
}
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/MobEffect.java b/src/main/java/de/bixilon/minosoft/data/mappings/MobEffect.java
index cef85b16b..a70ca38ad 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/MobEffect.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/MobEffect.java
@@ -13,17 +13,13 @@
package de.bixilon.minosoft.data.mappings;
-public record MobEffect(String mod, String identifier) {
- public String getMod() {
- return mod;
+public class MobEffect extends ModIdentifier {
+
+ public MobEffect(String mod, String identifier) {
+ super(mod, identifier);
}
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String toString() {
- return String.format("%s:%s", getMod(), getIdentifier());
+ public MobEffect(String fullIdentifier) {
+ super(fullIdentifier);
}
}
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/ModIdentifier.java b/src/main/java/de/bixilon/minosoft/data/mappings/ModIdentifier.java
new file mode 100644
index 000000000..4c8b7c90a
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/ModIdentifier.java
@@ -0,0 +1,66 @@
+/*
+ * Minosoft
+ * Copyright (C) 2020 Moritz Zwerger
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program.If not, see .
+ *
+ * This software is not affiliated with Mojang AB, the original developer of Minecraft.
+ */
+
+package de.bixilon.minosoft.data.mappings;
+
+public class ModIdentifier {
+ public static final String DEFAULT_MOD = "minecraft";
+ protected final String mod;
+ protected final String identifier;
+
+ public ModIdentifier(String mod, String identifier) {
+ this.mod = mod;
+ this.identifier = identifier;
+ }
+
+ public ModIdentifier(String fullIdentifier) {
+ String[] split = fullIdentifier.split(":");
+ if (split.length == 1) {
+ this.mod = DEFAULT_MOD;
+ this.identifier = fullIdentifier;
+ return;
+ }
+ this.mod = split[0];
+ this.identifier = split[1];
+ }
+
+ public String getMod() {
+ return mod;
+ }
+
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("%s:%s", mod, identifier);
+ }
+
+ @Override
+ public int hashCode() {
+ return mod.hashCode() * identifier.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (super.equals(obj)) {
+ return true;
+ }
+ if (hashCode() != obj.hashCode()) {
+ return false;
+ }
+ Item their = (Item) obj;
+ return getIdentifier().equals(their.getIdentifier()) && getMod().equals(their.getMod());
+ }
+}
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/Motive.java b/src/main/java/de/bixilon/minosoft/data/mappings/Motive.java
index d387caea5..84915efe7 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/Motive.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/Motive.java
@@ -13,17 +13,13 @@
package de.bixilon.minosoft.data.mappings;
-public record Motive(String mod, String identifier) {
- public String getMod() {
- return mod;
+public class Motive extends ModIdentifier {
+
+ public Motive(String mod, String identifier) {
+ super(mod, identifier);
}
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String toString() {
- return String.format("%s:%s", getMod(), getIdentifier());
+ public Motive(String fullIdentifier) {
+ super(fullIdentifier);
}
}
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/Block.java b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/Block.java
index 3e756077e..f183f03a3 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/Block.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/Block.java
@@ -13,50 +13,38 @@
package de.bixilon.minosoft.data.mappings.blocks;
+import de.bixilon.minosoft.data.mappings.ModIdentifier;
+
import java.util.HashSet;
-public class Block {
- final String mod;
- final String identifier;
+public class Block extends ModIdentifier {
final BlockRotations rotation;
final HashSet properties;
public Block(String mod, String identifier, HashSet properties, BlockRotations rotation) {
- this.mod = mod;
- this.identifier = identifier;
+ super(mod, identifier);
this.properties = properties;
this.rotation = rotation;
}
public Block(String mod, String identifier, HashSet properties) {
- this.mod = mod;
- this.identifier = identifier;
+ super(mod, identifier);
this.properties = properties;
this.rotation = BlockRotations.NONE;
}
public Block(String mod, String identifier, BlockRotations rotation) {
- this.mod = mod;
- this.identifier = identifier;
+ super(mod, identifier);
this.properties = new HashSet<>();
this.rotation = rotation;
}
public Block(String mod, String identifier) {
- this.mod = mod;
- this.identifier = identifier;
+ super(mod, identifier);
this.properties = new HashSet<>();
this.rotation = BlockRotations.NONE;
}
- public String getMod() {
- return mod;
- }
-
- public String getIdentifier() {
- return identifier;
- }
-
public BlockRotations getRotation() {
return rotation;
}
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/particle/Particle.java b/src/main/java/de/bixilon/minosoft/data/mappings/particle/Particle.java
index 0c8add7da..2e52e47a4 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/particle/Particle.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/particle/Particle.java
@@ -13,17 +13,15 @@
package de.bixilon.minosoft.data.mappings.particle;
-public record Particle(String mod, String identifier) {
- public String getMod() {
- return mod;
+import de.bixilon.minosoft.data.mappings.ModIdentifier;
+
+public class Particle extends ModIdentifier {
+
+ public Particle(String mod, String identifier) {
+ super(mod, identifier);
}
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String toString() {
- return String.format("%s:%s", mod, identifier);
+ public Particle(String fullIdentifier) {
+ super(fullIdentifier);
}
}
diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/statistics/Statistic.java b/src/main/java/de/bixilon/minosoft/data/mappings/statistics/Statistic.java
index 8ae2c19cd..a48411ae8 100644
--- a/src/main/java/de/bixilon/minosoft/data/mappings/statistics/Statistic.java
+++ b/src/main/java/de/bixilon/minosoft/data/mappings/statistics/Statistic.java
@@ -13,17 +13,15 @@
package de.bixilon.minosoft.data.mappings.statistics;
-public record Statistic(String mod, String identifier) {
- public String getMod() {
- return mod;
+import de.bixilon.minosoft.data.mappings.ModIdentifier;
+
+public class Statistic extends ModIdentifier {
+
+ public Statistic(String mod, String identifier) {
+ super(mod, identifier);
}
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String toString() {
- return String.format("%s:%s", mod, identifier);
+ public Statistic(String fullIdentifier) {
+ super(fullIdentifier);
}
}