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); } }