From fe890677e4d7541ab3aeaf9d987b04f790d61fc1 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Fri, 20 Nov 2020 14:42:23 +0100 Subject: [PATCH] Replace all "minecraft" references and store the string in a constant --- doc/MinecraftVersions.md | 2 +- .../minosoft/data/ChangeableIdentifier.java | 2 +- .../minosoft/data/EntityClassMappings.java | 222 +++++++++--------- .../data/entities/EntityMetaDataFields.java | 2 +- .../entities/decoration/Painting.java | 2 +- .../entities/projectile/LargeFireball.java | 2 +- .../entities/projectile/SmallFireball.java | 2 +- .../entities/projectile/ThrownEgg.java | 2 +- .../entities/projectile/ThrownEnderPearl.java | 2 +- .../projectile/ThrownExperienceBottle.java | 2 +- .../entities/projectile/ThrownEyeOfEnder.java | 2 +- .../entities/projectile/ThrownSnowball.java | 2 +- .../bixilon/minosoft/data/inventory/Slot.java | 3 +- .../minosoft/data/mappings/ModIdentifier.java | 5 +- .../minosoft/data/mappings/blocks/Block.java | 12 +- .../minosoft/data/mappings/blocks/Blocks.java | 2 +- .../data/mappings/recipes/Ingredient.java | 11 - .../data/mappings/versions/Versions.java | 2 +- .../clientbound/play/PacketJoinGame.java | 5 +- .../protocol/protocol/ProtocolDefinition.java | 2 + 20 files changed, 144 insertions(+), 142 deletions(-) diff --git a/doc/MinecraftVersions.md b/doc/MinecraftVersions.md index e57321d50..8632432bc 100644 --- a/doc/MinecraftVersions.md +++ b/doc/MinecraftVersions.md @@ -35,4 +35,4 @@ you need to provide the full packet mapping. The id depends on the order. --- -Note: Do not check for protocolIds (especially in EntityMetaData or Packets), this data is not reliable! Use version Ids. \ No newline at end of file +Note: Do not check for protocolIds (especially in EntityMetaData or Packets), this data is not reliable (because snapshot ids are that much higher)! Use version Ids. diff --git a/src/main/java/de/bixilon/minosoft/data/ChangeableIdentifier.java b/src/main/java/de/bixilon/minosoft/data/ChangeableIdentifier.java index 2e74bd6fc..4dc567f14 100644 --- a/src/main/java/de/bixilon/minosoft/data/ChangeableIdentifier.java +++ b/src/main/java/de/bixilon/minosoft/data/ChangeableIdentifier.java @@ -19,7 +19,7 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition; import java.util.TreeMap; public class ChangeableIdentifier extends VersionValueMap { - String mod = "minecraft"; + String mod = ProtocolDefinition.DEFAULT_MOD; public ChangeableIdentifier(String legacy, String water) { values.put(Versions.LOWEST_VERSION_SUPPORTED.getVersionId(), legacy); diff --git a/src/main/java/de/bixilon/minosoft/data/EntityClassMappings.java b/src/main/java/de/bixilon/minosoft/data/EntityClassMappings.java index 844f5d133..5dd3578d2 100644 --- a/src/main/java/de/bixilon/minosoft/data/EntityClassMappings.java +++ b/src/main/java/de/bixilon/minosoft/data/EntityClassMappings.java @@ -43,124 +43,124 @@ import de.bixilon.minosoft.data.entities.entities.npc.WanderingTrader; import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity; import de.bixilon.minosoft.data.entities.entities.projectile.*; import de.bixilon.minosoft.data.entities.entities.vehicle.*; -import javafx.util.Pair; +import de.bixilon.minosoft.data.mappings.ModIdentifier; public final class EntityClassMappings { - public static final HashBiMap, Pair> ENTITY_CLASS_MAPPINGS = HashBiMap.create(); + public static final HashBiMap, ModIdentifier> ENTITY_CLASS_MAPPINGS = HashBiMap.create(); static { - ENTITY_CLASS_MAPPINGS.put(AreaEffectCloud.class, new Pair<>("minecraft", "area_effect_cloud")); - ENTITY_CLASS_MAPPINGS.put(ArmorStand.class, new Pair<>("minecraft", "armor_stand")); - ENTITY_CLASS_MAPPINGS.put(Arrow.class, new Pair<>("minecraft", "arrow")); - ENTITY_CLASS_MAPPINGS.put(Bat.class, new Pair<>("minecraft", "bat")); - ENTITY_CLASS_MAPPINGS.put(Bee.class, new Pair<>("minecraft", "bee")); - ENTITY_CLASS_MAPPINGS.put(Blaze.class, new Pair<>("minecraft", "blaze")); - ENTITY_CLASS_MAPPINGS.put(Boat.class, new Pair<>("minecraft", "boat")); - ENTITY_CLASS_MAPPINGS.put(Cat.class, new Pair<>("minecraft", "cat")); - ENTITY_CLASS_MAPPINGS.put(CaveSpider.class, new Pair<>("minecraft", "cave_spider")); - ENTITY_CLASS_MAPPINGS.put(Chicken.class, new Pair<>("minecraft", "chicken")); - ENTITY_CLASS_MAPPINGS.put(Cod.class, new Pair<>("minecraft", "cod")); - ENTITY_CLASS_MAPPINGS.put(Cow.class, new Pair<>("minecraft", "cow")); - ENTITY_CLASS_MAPPINGS.put(Creeper.class, new Pair<>("minecraft", "creeper")); - ENTITY_CLASS_MAPPINGS.put(Dolphin.class, new Pair<>("minecraft", "dolphin")); - ENTITY_CLASS_MAPPINGS.put(Donkey.class, new Pair<>("minecraft", "donkey")); - ENTITY_CLASS_MAPPINGS.put(DragonFireball.class, new Pair<>("minecraft", "dragon_fireball")); - ENTITY_CLASS_MAPPINGS.put(Drowned.class, new Pair<>("minecraft", "drowned")); - ENTITY_CLASS_MAPPINGS.put(ElderGuardian.class, new Pair<>("minecraft", "elder_guardian")); - ENTITY_CLASS_MAPPINGS.put(EndCrystal.class, new Pair<>("minecraft", "end_crystal")); - ENTITY_CLASS_MAPPINGS.put(EnderDragon.class, new Pair<>("minecraft", "ender_dragon")); - ENTITY_CLASS_MAPPINGS.put(Enderman.class, new Pair<>("minecraft", "enderman")); - ENTITY_CLASS_MAPPINGS.put(Endermite.class, new Pair<>("minecraft", "endermite")); - ENTITY_CLASS_MAPPINGS.put(Evoker.class, new Pair<>("minecraft", "evoker")); - ENTITY_CLASS_MAPPINGS.put(EvokerFangs.class, new Pair<>("minecraft", "evoker_fangs")); - ENTITY_CLASS_MAPPINGS.put(ExperienceOrb.class, new Pair<>("minecraft", "experience_orb")); - ENTITY_CLASS_MAPPINGS.put(ThrownEyeOfEnder.class, new Pair<>("minecraft", "eye_of_ender")); - ENTITY_CLASS_MAPPINGS.put(FallingBlock.class, new Pair<>("minecraft", "falling_block")); - ENTITY_CLASS_MAPPINGS.put(FireworkRocketEntity.class, new Pair<>("minecraft", "firework_rocket")); - ENTITY_CLASS_MAPPINGS.put(Fox.class, new Pair<>("minecraft", "fox")); - ENTITY_CLASS_MAPPINGS.put(Ghast.class, new Pair<>("minecraft", "ghast")); - ENTITY_CLASS_MAPPINGS.put(Giant.class, new Pair<>("minecraft", "giant")); - ENTITY_CLASS_MAPPINGS.put(Guardian.class, new Pair<>("minecraft", "guardian")); - ENTITY_CLASS_MAPPINGS.put(Hoglin.class, new Pair<>("minecraft", "hoglin")); - ENTITY_CLASS_MAPPINGS.put(Horse.class, new Pair<>("minecraft", "horse")); - ENTITY_CLASS_MAPPINGS.put(Husk.class, new Pair<>("minecraft", "husk")); - ENTITY_CLASS_MAPPINGS.put(Illusioner.class, new Pair<>("minecraft", "illusioner")); - ENTITY_CLASS_MAPPINGS.put(IronGolem.class, new Pair<>("minecraft", "iron_golem")); - ENTITY_CLASS_MAPPINGS.put(ItemEntity.class, new Pair<>("minecraft", "item")); - ENTITY_CLASS_MAPPINGS.put(ItemFrame.class, new Pair<>("minecraft", "item_frame")); - ENTITY_CLASS_MAPPINGS.put(LargeFireball.class, new Pair<>("minecraft", "fireball")); - ENTITY_CLASS_MAPPINGS.put(LeashFenceKnotEntity.class, new Pair<>("minecraft", "leash_knot")); - ENTITY_CLASS_MAPPINGS.put(LightningBolt.class, new Pair<>("minecraft", "lightning_bolt")); - ENTITY_CLASS_MAPPINGS.put(Llama.class, new Pair<>("minecraft", "llama")); - ENTITY_CLASS_MAPPINGS.put(LlamaSpit.class, new Pair<>("minecraft", "llama_spit")); - ENTITY_CLASS_MAPPINGS.put(MagmaCube.class, new Pair<>("minecraft", "magma_cube")); - ENTITY_CLASS_MAPPINGS.put(Minecart.class, new Pair<>("minecraft", "minecart")); - ENTITY_CLASS_MAPPINGS.put(MinecartChest.class, new Pair<>("minecraft", "chest_minecart")); - ENTITY_CLASS_MAPPINGS.put(MinecartCommandBlock.class, new Pair<>("minecraft", "command_block_minecart")); - ENTITY_CLASS_MAPPINGS.put(MinecartFurnace.class, new Pair<>("minecraft", "furnace_minecart")); - ENTITY_CLASS_MAPPINGS.put(MinecartHopper.class, new Pair<>("minecraft", "hopper_minecart")); - ENTITY_CLASS_MAPPINGS.put(MinecartSpawner.class, new Pair<>("minecraft", "spawner_minecart")); - ENTITY_CLASS_MAPPINGS.put(MinecartTNT.class, new Pair<>("minecraft", "tnt_minecart")); - ENTITY_CLASS_MAPPINGS.put(Mule.class, new Pair<>("minecraft", "mule")); - ENTITY_CLASS_MAPPINGS.put(Mooshroom.class, new Pair<>("minecraft", "mooshroom")); - ENTITY_CLASS_MAPPINGS.put(Ocelot.class, new Pair<>("minecraft", "ocelot")); - ENTITY_CLASS_MAPPINGS.put(Painting.class, new Pair<>("minecraft", "painting")); - ENTITY_CLASS_MAPPINGS.put(Panda.class, new Pair<>("minecraft", "panda")); - ENTITY_CLASS_MAPPINGS.put(Parrot.class, new Pair<>("minecraft", "parrot")); - ENTITY_CLASS_MAPPINGS.put(Phantom.class, new Pair<>("minecraft", "phantom")); - ENTITY_CLASS_MAPPINGS.put(Pig.class, new Pair<>("minecraft", "pig")); - ENTITY_CLASS_MAPPINGS.put(Piglin.class, new Pair<>("minecraft", "piglin")); - ENTITY_CLASS_MAPPINGS.put(PiglinBrute.class, new Pair<>("minecraft", "piglin_brute")); - ENTITY_CLASS_MAPPINGS.put(Pillager.class, new Pair<>("minecraft", "pillager")); - ENTITY_CLASS_MAPPINGS.put(PolarBear.class, new Pair<>("minecraft", "polar_bear")); - ENTITY_CLASS_MAPPINGS.put(PrimedTNT.class, new Pair<>("minecraft", "tnt")); - ENTITY_CLASS_MAPPINGS.put(PufferFish.class, new Pair<>("minecraft", "pufferfish")); - ENTITY_CLASS_MAPPINGS.put(Rabbit.class, new Pair<>("minecraft", "rabbit")); - ENTITY_CLASS_MAPPINGS.put(Ravenger.class, new Pair<>("minecraft", "ravager")); - ENTITY_CLASS_MAPPINGS.put(Salmon.class, new Pair<>("minecraft", "salmon")); - ENTITY_CLASS_MAPPINGS.put(Sheep.class, new Pair<>("minecraft", "sheep")); - ENTITY_CLASS_MAPPINGS.put(Shulker.class, new Pair<>("minecraft", "shulker")); - ENTITY_CLASS_MAPPINGS.put(ShulkerBullet.class, new Pair<>("minecraft", "shulker_bullet")); - ENTITY_CLASS_MAPPINGS.put(Silverfish.class, new Pair<>("minecraft", "silverfish")); - ENTITY_CLASS_MAPPINGS.put(Skeleton.class, new Pair<>("minecraft", "skeleton")); - ENTITY_CLASS_MAPPINGS.put(SkeletonHorse.class, new Pair<>("minecraft", "skeleton_horse")); - ENTITY_CLASS_MAPPINGS.put(Slime.class, new Pair<>("minecraft", "slime")); - ENTITY_CLASS_MAPPINGS.put(SmallFireball.class, new Pair<>("minecraft", "small_fireball")); - ENTITY_CLASS_MAPPINGS.put(SnowGolem.class, new Pair<>("minecraft", "snow_golem")); - ENTITY_CLASS_MAPPINGS.put(ThrownSnowball.class, new Pair<>("minecraft", "snowball")); - ENTITY_CLASS_MAPPINGS.put(SpectralArrow.class, new Pair<>("minecraft", "spectral_arrow")); - ENTITY_CLASS_MAPPINGS.put(Spider.class, new Pair<>("minecraft", "spider")); - ENTITY_CLASS_MAPPINGS.put(Squid.class, new Pair<>("minecraft", "squid")); - ENTITY_CLASS_MAPPINGS.put(Stray.class, new Pair<>("minecraft", "stray")); - ENTITY_CLASS_MAPPINGS.put(Strider.class, new Pair<>("minecraft", "strider")); - ENTITY_CLASS_MAPPINGS.put(ThrownEgg.class, new Pair<>("minecraft", "egg")); - ENTITY_CLASS_MAPPINGS.put(ThrownEnderPearl.class, new Pair<>("minecraft", "ender_pearl")); - ENTITY_CLASS_MAPPINGS.put(ThrownExperienceBottle.class, new Pair<>("minecraft", "experience_bottle")); - ENTITY_CLASS_MAPPINGS.put(ThrownPotion.class, new Pair<>("minecraft", "potion")); - ENTITY_CLASS_MAPPINGS.put(ThrownTrident.class, new Pair<>("minecraft", "trident")); - ENTITY_CLASS_MAPPINGS.put(TraderLlama.class, new Pair<>("minecraft", "trader_llama")); - ENTITY_CLASS_MAPPINGS.put(TropicalFish.class, new Pair<>("minecraft", "tropical_fish")); - ENTITY_CLASS_MAPPINGS.put(Turtle.class, new Pair<>("minecraft", "turtle")); - ENTITY_CLASS_MAPPINGS.put(Vex.class, new Pair<>("minecraft", "vex")); - ENTITY_CLASS_MAPPINGS.put(Villager.class, new Pair<>("minecraft", "villager")); - ENTITY_CLASS_MAPPINGS.put(Vindicator.class, new Pair<>("minecraft", "vindicator")); - ENTITY_CLASS_MAPPINGS.put(WanderingTrader.class, new Pair<>("minecraft", "wandering_trader")); - ENTITY_CLASS_MAPPINGS.put(Witch.class, new Pair<>("minecraft", "witch")); - ENTITY_CLASS_MAPPINGS.put(WitherBoss.class, new Pair<>("minecraft", "wither")); - ENTITY_CLASS_MAPPINGS.put(WitherSkeleton.class, new Pair<>("minecraft", "wither_skeleton")); - ENTITY_CLASS_MAPPINGS.put(WitherSkull.class, new Pair<>("minecraft", "wither_skull")); - ENTITY_CLASS_MAPPINGS.put(Wolf.class, new Pair<>("minecraft", "wolf")); - ENTITY_CLASS_MAPPINGS.put(Zoglin.class, new Pair<>("minecraft", "zoglin")); - ENTITY_CLASS_MAPPINGS.put(Zombie.class, new Pair<>("minecraft", "zombie")); - ENTITY_CLASS_MAPPINGS.put(ZombieHorse.class, new Pair<>("minecraft", "zombie_horse")); - ENTITY_CLASS_MAPPINGS.put(ZombieVillager.class, new Pair<>("minecraft", "zombie_villager")); - ENTITY_CLASS_MAPPINGS.put(ZombifiedPiglin.class, new Pair<>("minecraft", "zombified_piglin")); - ENTITY_CLASS_MAPPINGS.put(PlayerEntity.class, new Pair<>("minecraft", "player")); - ENTITY_CLASS_MAPPINGS.put(FishingHook.class, new Pair<>("minecraft", "fishing_bobber")); + ENTITY_CLASS_MAPPINGS.put(AreaEffectCloud.class, new ModIdentifier("area_effect_cloud")); + ENTITY_CLASS_MAPPINGS.put(ArmorStand.class, new ModIdentifier("armor_stand")); + ENTITY_CLASS_MAPPINGS.put(Arrow.class, new ModIdentifier("arrow")); + ENTITY_CLASS_MAPPINGS.put(Bat.class, new ModIdentifier("bat")); + ENTITY_CLASS_MAPPINGS.put(Bee.class, new ModIdentifier("bee")); + ENTITY_CLASS_MAPPINGS.put(Blaze.class, new ModIdentifier("blaze")); + ENTITY_CLASS_MAPPINGS.put(Boat.class, new ModIdentifier("boat")); + ENTITY_CLASS_MAPPINGS.put(Cat.class, new ModIdentifier("cat")); + ENTITY_CLASS_MAPPINGS.put(CaveSpider.class, new ModIdentifier("cave_spider")); + ENTITY_CLASS_MAPPINGS.put(Chicken.class, new ModIdentifier("chicken")); + ENTITY_CLASS_MAPPINGS.put(Cod.class, new ModIdentifier("cod")); + ENTITY_CLASS_MAPPINGS.put(Cow.class, new ModIdentifier("cow")); + ENTITY_CLASS_MAPPINGS.put(Creeper.class, new ModIdentifier("creeper")); + ENTITY_CLASS_MAPPINGS.put(Dolphin.class, new ModIdentifier("dolphin")); + ENTITY_CLASS_MAPPINGS.put(Donkey.class, new ModIdentifier("donkey")); + ENTITY_CLASS_MAPPINGS.put(DragonFireball.class, new ModIdentifier("dragon_fireball")); + ENTITY_CLASS_MAPPINGS.put(Drowned.class, new ModIdentifier("drowned")); + ENTITY_CLASS_MAPPINGS.put(ElderGuardian.class, new ModIdentifier("elder_guardian")); + ENTITY_CLASS_MAPPINGS.put(EndCrystal.class, new ModIdentifier("end_crystal")); + ENTITY_CLASS_MAPPINGS.put(EnderDragon.class, new ModIdentifier("ender_dragon")); + ENTITY_CLASS_MAPPINGS.put(Enderman.class, new ModIdentifier("enderman")); + ENTITY_CLASS_MAPPINGS.put(Endermite.class, new ModIdentifier("endermite")); + ENTITY_CLASS_MAPPINGS.put(Evoker.class, new ModIdentifier("evoker")); + ENTITY_CLASS_MAPPINGS.put(EvokerFangs.class, new ModIdentifier("evoker_fangs")); + ENTITY_CLASS_MAPPINGS.put(ExperienceOrb.class, new ModIdentifier("experience_orb")); + ENTITY_CLASS_MAPPINGS.put(ThrownEyeOfEnder.class, new ModIdentifier("eye_of_ender")); + ENTITY_CLASS_MAPPINGS.put(FallingBlock.class, new ModIdentifier("falling_block")); + ENTITY_CLASS_MAPPINGS.put(FireworkRocketEntity.class, new ModIdentifier("firework_rocket")); + ENTITY_CLASS_MAPPINGS.put(Fox.class, new ModIdentifier("fox")); + ENTITY_CLASS_MAPPINGS.put(Ghast.class, new ModIdentifier("ghast")); + ENTITY_CLASS_MAPPINGS.put(Giant.class, new ModIdentifier("giant")); + ENTITY_CLASS_MAPPINGS.put(Guardian.class, new ModIdentifier("guardian")); + ENTITY_CLASS_MAPPINGS.put(Hoglin.class, new ModIdentifier("hoglin")); + ENTITY_CLASS_MAPPINGS.put(Horse.class, new ModIdentifier("horse")); + ENTITY_CLASS_MAPPINGS.put(Husk.class, new ModIdentifier("husk")); + ENTITY_CLASS_MAPPINGS.put(Illusioner.class, new ModIdentifier("illusioner")); + ENTITY_CLASS_MAPPINGS.put(IronGolem.class, new ModIdentifier("iron_golem")); + ENTITY_CLASS_MAPPINGS.put(ItemEntity.class, new ModIdentifier("item")); + ENTITY_CLASS_MAPPINGS.put(ItemFrame.class, new ModIdentifier("item_frame")); + ENTITY_CLASS_MAPPINGS.put(LargeFireball.class, new ModIdentifier("fireball")); + ENTITY_CLASS_MAPPINGS.put(LeashFenceKnotEntity.class, new ModIdentifier("leash_knot")); + ENTITY_CLASS_MAPPINGS.put(LightningBolt.class, new ModIdentifier("lightning_bolt")); + ENTITY_CLASS_MAPPINGS.put(Llama.class, new ModIdentifier("llama")); + ENTITY_CLASS_MAPPINGS.put(LlamaSpit.class, new ModIdentifier("llama_spit")); + ENTITY_CLASS_MAPPINGS.put(MagmaCube.class, new ModIdentifier("magma_cube")); + ENTITY_CLASS_MAPPINGS.put(Minecart.class, new ModIdentifier("minecart")); + ENTITY_CLASS_MAPPINGS.put(MinecartChest.class, new ModIdentifier("chest_minecart")); + ENTITY_CLASS_MAPPINGS.put(MinecartCommandBlock.class, new ModIdentifier("command_block_minecart")); + ENTITY_CLASS_MAPPINGS.put(MinecartFurnace.class, new ModIdentifier("furnace_minecart")); + ENTITY_CLASS_MAPPINGS.put(MinecartHopper.class, new ModIdentifier("hopper_minecart")); + ENTITY_CLASS_MAPPINGS.put(MinecartSpawner.class, new ModIdentifier("spawner_minecart")); + ENTITY_CLASS_MAPPINGS.put(MinecartTNT.class, new ModIdentifier("tnt_minecart")); + ENTITY_CLASS_MAPPINGS.put(Mule.class, new ModIdentifier("mule")); + ENTITY_CLASS_MAPPINGS.put(Mooshroom.class, new ModIdentifier("mooshroom")); + ENTITY_CLASS_MAPPINGS.put(Ocelot.class, new ModIdentifier("ocelot")); + ENTITY_CLASS_MAPPINGS.put(Painting.class, new ModIdentifier("painting")); + ENTITY_CLASS_MAPPINGS.put(Panda.class, new ModIdentifier("panda")); + ENTITY_CLASS_MAPPINGS.put(Parrot.class, new ModIdentifier("parrot")); + ENTITY_CLASS_MAPPINGS.put(Phantom.class, new ModIdentifier("phantom")); + ENTITY_CLASS_MAPPINGS.put(Pig.class, new ModIdentifier("pig")); + ENTITY_CLASS_MAPPINGS.put(Piglin.class, new ModIdentifier("piglin")); + ENTITY_CLASS_MAPPINGS.put(PiglinBrute.class, new ModIdentifier("piglin_brute")); + ENTITY_CLASS_MAPPINGS.put(Pillager.class, new ModIdentifier("pillager")); + ENTITY_CLASS_MAPPINGS.put(PolarBear.class, new ModIdentifier("polar_bear")); + ENTITY_CLASS_MAPPINGS.put(PrimedTNT.class, new ModIdentifier("tnt")); + ENTITY_CLASS_MAPPINGS.put(PufferFish.class, new ModIdentifier("pufferfish")); + ENTITY_CLASS_MAPPINGS.put(Rabbit.class, new ModIdentifier("rabbit")); + ENTITY_CLASS_MAPPINGS.put(Ravenger.class, new ModIdentifier("ravager")); + ENTITY_CLASS_MAPPINGS.put(Salmon.class, new ModIdentifier("salmon")); + ENTITY_CLASS_MAPPINGS.put(Sheep.class, new ModIdentifier("sheep")); + ENTITY_CLASS_MAPPINGS.put(Shulker.class, new ModIdentifier("shulker")); + ENTITY_CLASS_MAPPINGS.put(ShulkerBullet.class, new ModIdentifier("shulker_bullet")); + ENTITY_CLASS_MAPPINGS.put(Silverfish.class, new ModIdentifier("silverfish")); + ENTITY_CLASS_MAPPINGS.put(Skeleton.class, new ModIdentifier("skeleton")); + ENTITY_CLASS_MAPPINGS.put(SkeletonHorse.class, new ModIdentifier("skeleton_horse")); + ENTITY_CLASS_MAPPINGS.put(Slime.class, new ModIdentifier("slime")); + ENTITY_CLASS_MAPPINGS.put(SmallFireball.class, new ModIdentifier("small_fireball")); + ENTITY_CLASS_MAPPINGS.put(SnowGolem.class, new ModIdentifier("snow_golem")); + ENTITY_CLASS_MAPPINGS.put(ThrownSnowball.class, new ModIdentifier("snowball")); + ENTITY_CLASS_MAPPINGS.put(SpectralArrow.class, new ModIdentifier("spectral_arrow")); + ENTITY_CLASS_MAPPINGS.put(Spider.class, new ModIdentifier("spider")); + ENTITY_CLASS_MAPPINGS.put(Squid.class, new ModIdentifier("squid")); + ENTITY_CLASS_MAPPINGS.put(Stray.class, new ModIdentifier("stray")); + ENTITY_CLASS_MAPPINGS.put(Strider.class, new ModIdentifier("strider")); + ENTITY_CLASS_MAPPINGS.put(ThrownEgg.class, new ModIdentifier("egg")); + ENTITY_CLASS_MAPPINGS.put(ThrownEnderPearl.class, new ModIdentifier("ender_pearl")); + ENTITY_CLASS_MAPPINGS.put(ThrownExperienceBottle.class, new ModIdentifier("experience_bottle")); + ENTITY_CLASS_MAPPINGS.put(ThrownPotion.class, new ModIdentifier("potion")); + ENTITY_CLASS_MAPPINGS.put(ThrownTrident.class, new ModIdentifier("trident")); + ENTITY_CLASS_MAPPINGS.put(TraderLlama.class, new ModIdentifier("trader_llama")); + ENTITY_CLASS_MAPPINGS.put(TropicalFish.class, new ModIdentifier("tropical_fish")); + ENTITY_CLASS_MAPPINGS.put(Turtle.class, new ModIdentifier("turtle")); + ENTITY_CLASS_MAPPINGS.put(Vex.class, new ModIdentifier("vex")); + ENTITY_CLASS_MAPPINGS.put(Villager.class, new ModIdentifier("villager")); + ENTITY_CLASS_MAPPINGS.put(Vindicator.class, new ModIdentifier("vindicator")); + ENTITY_CLASS_MAPPINGS.put(WanderingTrader.class, new ModIdentifier("wandering_trader")); + ENTITY_CLASS_MAPPINGS.put(Witch.class, new ModIdentifier("witch")); + ENTITY_CLASS_MAPPINGS.put(WitherBoss.class, new ModIdentifier("wither")); + ENTITY_CLASS_MAPPINGS.put(WitherSkeleton.class, new ModIdentifier("wither_skeleton")); + ENTITY_CLASS_MAPPINGS.put(WitherSkull.class, new ModIdentifier("wither_skull")); + ENTITY_CLASS_MAPPINGS.put(Wolf.class, new ModIdentifier("wolf")); + ENTITY_CLASS_MAPPINGS.put(Zoglin.class, new ModIdentifier("zoglin")); + ENTITY_CLASS_MAPPINGS.put(Zombie.class, new ModIdentifier("zombie")); + ENTITY_CLASS_MAPPINGS.put(ZombieHorse.class, new ModIdentifier("zombie_horse")); + ENTITY_CLASS_MAPPINGS.put(ZombieVillager.class, new ModIdentifier("zombie_villager")); + ENTITY_CLASS_MAPPINGS.put(ZombifiedPiglin.class, new ModIdentifier("zombified_piglin")); + ENTITY_CLASS_MAPPINGS.put(PlayerEntity.class, new ModIdentifier("player")); + ENTITY_CLASS_MAPPINGS.put(FishingHook.class, new ModIdentifier("fishing_bobber")); } public static Class getByIdentifier(String mod, String identifier) { - return ENTITY_CLASS_MAPPINGS.inverse().get(new Pair<>(mod, identifier)); + return ENTITY_CLASS_MAPPINGS.inverse().get(new ModIdentifier(mod, identifier)); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/EntityMetaDataFields.java b/src/main/java/de/bixilon/minosoft/data/entities/EntityMetaDataFields.java index a3c6aeb14..fb3e55658 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/EntityMetaDataFields.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/EntityMetaDataFields.java @@ -52,7 +52,7 @@ public enum EntityMetaDataFields { AREA_EFFECT_CLOUD_RADIUS(0.5f), AREA_EFFECT_CLOUD_COLOR(0), AREA_EFFECT_CLOUD_WAITING(false), - AREA_EFFECT_CLOUD_PARTICLE(new ParticleData(new Particle("minecraft", "effect"))), + AREA_EFFECT_CLOUD_PARTICLE(new ParticleData(new Particle("effect"))), ABSTRACT_ARROW_FLAGS((byte) 0), ABSTRACT_ARROW_PIERCE_LEVEL((byte) 0), diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/Painting.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/Painting.java index 14197504a..1dc0e54cc 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/Painting.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/Painting.java @@ -31,7 +31,7 @@ public class Painting extends Entity { public Painting(Connection connection, int entityId, UUID uuid, Location location, EntityRotation rotation) { super(connection, entityId, uuid, location, rotation); direction = Directions.NORTH; - motive = new Motive("minecraft", "kebab"); + motive = new Motive("kebab"); } public Painting(Connection connection, int entityId, UUID uuid, BlockPosition position, Directions direction, Motive motive) { diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/LargeFireball.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/LargeFireball.java index c378eb0f6..16826d6ac 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/LargeFireball.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/LargeFireball.java @@ -22,7 +22,7 @@ import de.bixilon.minosoft.protocol.network.Connection; import java.util.UUID; public class LargeFireball extends Fireball { - private static final Slot DEFAULT_ITEM = new Slot(new Item("minecraft", "fire_charge")); + private static final Slot DEFAULT_ITEM = new Slot(new Item("fire_charge")); public LargeFireball(Connection connection, int entityId, UUID uuid, Location location, EntityRotation rotation) { super(connection, entityId, uuid, location, rotation); diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/SmallFireball.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/SmallFireball.java index e8a036b99..daba1255e 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/SmallFireball.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/SmallFireball.java @@ -22,7 +22,7 @@ import de.bixilon.minosoft.protocol.network.Connection; import java.util.UUID; public class SmallFireball extends Fireball { - private static final Slot DEFAULT_ITEM = new Slot(new Item("minecraft", "fire_charge")); + private static final Slot DEFAULT_ITEM = new Slot(new Item("fire_charge")); public SmallFireball(Connection connection, int entityId, UUID uuid, Location location, EntityRotation rotation) { super(connection, entityId, uuid, location, rotation); diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEgg.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEgg.java index a41847073..18dd993d9 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEgg.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEgg.java @@ -22,7 +22,7 @@ import de.bixilon.minosoft.protocol.network.Connection; import java.util.UUID; public class ThrownEgg extends ThrowableItemProjectile { - private static final Slot DEFAULT_ITEM = new Slot(new Item("minecraft", "egg")); + private static final Slot DEFAULT_ITEM = new Slot(new Item("egg")); public ThrownEgg(Connection connection, int entityId, UUID uuid, Location location, EntityRotation rotation) { super(connection, entityId, uuid, location, rotation); diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEnderPearl.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEnderPearl.java index e8f132fb1..9425359b9 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEnderPearl.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEnderPearl.java @@ -22,7 +22,7 @@ import de.bixilon.minosoft.protocol.network.Connection; import java.util.UUID; public class ThrownEnderPearl extends ThrowableItemProjectile { - private static final Slot DEFAULT_ITEM = new Slot(new Item("minecraft", "ender_pearl")); + private static final Slot DEFAULT_ITEM = new Slot(new Item("ender_pearl")); public ThrownEnderPearl(Connection connection, int entityId, UUID uuid, Location location, EntityRotation rotation) { super(connection, entityId, uuid, location, rotation); diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownExperienceBottle.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownExperienceBottle.java index d6e66833e..8da8e3c00 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownExperienceBottle.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownExperienceBottle.java @@ -22,7 +22,7 @@ import de.bixilon.minosoft.protocol.network.Connection; import java.util.UUID; public class ThrownExperienceBottle extends ThrowableItemProjectile { - private static final Slot DEFAULT_ITEM = new Slot(new Item("minecraft", "experience_bottle")); + private static final Slot DEFAULT_ITEM = new Slot(new Item("experience_bottle")); public ThrownExperienceBottle(Connection connection, int entityId, UUID uuid, Location location, EntityRotation rotation) { super(connection, entityId, uuid, location, rotation); diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEyeOfEnder.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEyeOfEnder.java index 7b579d60d..78165c020 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEyeOfEnder.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEyeOfEnder.java @@ -25,7 +25,7 @@ import de.bixilon.minosoft.protocol.network.Connection; import java.util.UUID; public class ThrownEyeOfEnder extends Entity { - private static final Slot DEFAULT_ITEM = new Slot(new Item("minecraft", "ender_eye")); + private static final Slot DEFAULT_ITEM = new Slot(new Item("ender_eye")); public ThrownEyeOfEnder(Connection connection, int entityId, UUID uuid, Location location, EntityRotation rotation) { super(connection, entityId, uuid, location, rotation); diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownSnowball.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownSnowball.java index 6a8542e25..ffd69b85a 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownSnowball.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownSnowball.java @@ -22,7 +22,7 @@ import de.bixilon.minosoft.protocol.network.Connection; import java.util.UUID; public class ThrownSnowball extends ThrowableItemProjectile { - private static final Slot DEFAULT_ITEM = new Slot(new Item("minecraft", "snowball")); + private static final Slot DEFAULT_ITEM = new Slot(new Item("snowball")); public ThrownSnowball(Connection connection, int entityId, UUID uuid, Location location, EntityRotation rotation) { super(connection, entityId, uuid, location, rotation); diff --git a/src/main/java/de/bixilon/minosoft/data/inventory/Slot.java b/src/main/java/de/bixilon/minosoft/data/inventory/Slot.java index 480d3d6d5..ec3badbc2 100644 --- a/src/main/java/de/bixilon/minosoft/data/inventory/Slot.java +++ b/src/main/java/de/bixilon/minosoft/data/inventory/Slot.java @@ -17,6 +17,7 @@ import de.bixilon.minosoft.data.mappings.Enchantment; import de.bixilon.minosoft.data.mappings.Item; import de.bixilon.minosoft.data.mappings.versions.VersionMapping; import de.bixilon.minosoft.data.text.ChatComponent; +import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition; import de.bixilon.minosoft.util.BitByte; import de.bixilon.minosoft.util.nbt.tag.*; @@ -261,7 +262,7 @@ public class Slot { } public String getSkullOwner() { - if (!item.getMod().equals("minecraft") || !item.getIdentifier().equals("skull")) { + if (!item.getMod().equals(ProtocolDefinition.DEFAULT_MOD) || !item.getIdentifier().equals("skull")) { throw new IllegalArgumentException("Item is not a skull!"); } return skullOwner; diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/ModIdentifier.java b/src/main/java/de/bixilon/minosoft/data/mappings/ModIdentifier.java index 4c8b7c90a..b942888b9 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/ModIdentifier.java +++ b/src/main/java/de/bixilon/minosoft/data/mappings/ModIdentifier.java @@ -13,8 +13,9 @@ package de.bixilon.minosoft.data.mappings; +import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition; + public class ModIdentifier { - public static final String DEFAULT_MOD = "minecraft"; protected final String mod; protected final String identifier; @@ -26,7 +27,7 @@ public class ModIdentifier { public ModIdentifier(String fullIdentifier) { String[] split = fullIdentifier.split(":"); if (split.length == 1) { - this.mod = DEFAULT_MOD; + this.mod = ProtocolDefinition.DEFAULT_MOD; this.identifier = fullIdentifier; return; } 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 f183f03a3..8a2bd1cde 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 @@ -45,6 +45,12 @@ public class Block extends ModIdentifier { this.rotation = BlockRotations.NONE; } + public Block(String fullIdentifier) { + super(fullIdentifier); + this.properties = new HashSet<>(); + this.rotation = BlockRotations.NONE; + } + public BlockRotations getRotation() { return rotation; } @@ -87,13 +93,15 @@ public class Block extends ModIdentifier { @Override public boolean equals(Object obj) { - if (super.equals(obj)) { + if (this == obj) { return true; } if (hashCode() != obj.hashCode()) { return false; } - Block their = (Block) obj; + if (!(obj instanceof Block their)) { + return false; + } return getIdentifier().equals(their.getIdentifier()) && getRotation() == their.getRotation() && getProperties().equals(their.getProperties()) && getMod().equals(their.getMod()); } } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/Blocks.java b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/Blocks.java index b57055883..14c42ce10 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/Blocks.java +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/Blocks.java @@ -20,7 +20,7 @@ import com.google.gson.JsonObject; import java.util.HashSet; public class Blocks { - public static final Block nullBlock = new Block("minecraft", "air"); + public static final Block nullBlock = new Block("air"); public static HashBiMap load(String mod, JsonObject json, boolean metaData) { HashBiMap versionMapping = HashBiMap.create(); diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/recipes/Ingredient.java b/src/main/java/de/bixilon/minosoft/data/mappings/recipes/Ingredient.java index 916ba9942..dd7410fc4 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/recipes/Ingredient.java +++ b/src/main/java/de/bixilon/minosoft/data/mappings/recipes/Ingredient.java @@ -15,18 +15,7 @@ package de.bixilon.minosoft.data.mappings.recipes; import de.bixilon.minosoft.data.inventory.Slot; -import java.util.Arrays; -import java.util.HashSet; - public record Ingredient(Slot[] slot) { - public static boolean slotEquals(Slot[] one, Slot[] two) { - if (one.length != two.length) { - return false; - } - HashSet first = new HashSet<>(Arrays.asList(one)); - HashSet second = new HashSet<>(Arrays.asList(two)); - return first.equals(second); - } public Slot[] getSlot() { return slot; diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/versions/Versions.java b/src/main/java/de/bixilon/minosoft/data/mappings/versions/Versions.java index 629dab14b..667fa956c 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/versions/Versions.java +++ b/src/main/java/de/bixilon/minosoft/data/mappings/versions/Versions.java @@ -136,7 +136,7 @@ public class Versions { data = files.get(mapping.getFilename() + ".json"); } if (data == null) { - loadVersionMappings(mapping, "minecraft", data, version); + loadVersionMappings(mapping, ProtocolDefinition.DEFAULT_MOD, data, version); continue; } for (String mod : data.keySet()) { diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketJoinGame.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketJoinGame.java index d49a6a999..40e2eac5b 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketJoinGame.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketJoinGame.java @@ -22,6 +22,7 @@ import de.bixilon.minosoft.logging.Log; import de.bixilon.minosoft.protocol.packets.ClientboundPacket; import de.bixilon.minosoft.protocol.protocol.InByteBuffer; import de.bixilon.minosoft.protocol.protocol.PacketHandler; +import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition; import de.bixilon.minosoft.util.BitByte; import de.bixilon.minosoft.util.nbt.tag.CompoundTag; import de.bixilon.minosoft.util.nbt.tag.ListTag; @@ -98,9 +99,9 @@ public class PacketJoinGame implements ClientboundPacket { } else { CompoundTag tag = (CompoundTag) buffer.readNBT(); if (tag.getByteTag("has_skylight").getValue() == 0x01) { //ToDo: this is just for not messing up the skylight - dimension = dimensions.get("minecraft").get("overworld"); + dimension = dimensions.get(ProtocolDefinition.DEFAULT_MOD).get("overworld"); } else { - dimension = dimensions.get("minecraft").get("the_nether"); + dimension = dimensions.get(ProtocolDefinition.DEFAULT_MOD).get("the_nether"); } } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/ProtocolDefinition.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/ProtocolDefinition.java index caa427b44..7840aee85 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/ProtocolDefinition.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/ProtocolDefinition.java @@ -35,6 +35,8 @@ public final class ProtocolDefinition { public static final InetAddress LAN_SERVER_BROADCAST_ADDRESS; public static final int LAN_SERVER_MAXIMUM_SERVERS = 100; // maximum number of lan servers, set because otherwise dos attacks would be easy + public static final String DEFAULT_MOD = "minecraft"; + static { try { LAN_SERVER_BROADCAST_ADDRESS = InetAddress.getByName("224.0.2.60");