From 841d3263387ec378c34a99e14807aaaa4eaf4f35 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 29 Jan 2019 14:13:06 +0200 Subject: [PATCH] Human race is no longer a user settable race. You should only get it if some madman were to blacklist every race (which can be done by adding HUMAN alone to the whitelist). --- .../java/com/minelittlepony/unicopia/Race.java | 12 ++++++++++-- .../com/minelittlepony/unicopia/UConfig.java | 4 ++-- .../com/minelittlepony/unicopia/Unicopia.java | 1 - .../unicopia/command/CommandRacelist.java | 2 +- .../unicopia/command/CommandSpecies.java | 18 ++++++++++-------- .../unicopia/player/ItemCapabilities.java | 2 +- .../unicopia/player/PlayerCapabilities.java | 10 +++++++--- .../resources/assets/unicopia/lang/en_US.lang | 5 +++-- 8 files changed, 34 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/Race.java b/src/main/java/com/minelittlepony/unicopia/Race.java index 947edae7..d17c57a4 100644 --- a/src/main/java/com/minelittlepony/unicopia/Race.java +++ b/src/main/java/com/minelittlepony/unicopia/Race.java @@ -11,6 +11,10 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public enum Race { + /** + * The default, unset race. + * This is used if there are no other races. + */ HUMAN(false, false, false), EARTH(false, false, true), UNICORN(true, false, false), @@ -103,12 +107,16 @@ public enum Race { case UNICORN: return UNICORN; default: - return HUMAN; + return EARTH; } } + public static Race fromName(String name) { + return fromName(name, EARTH); + } + public static Race fromId(int id) { - return raceIdMap.getOrDefault(id, HUMAN); + return raceIdMap.getOrDefault(id, EARTH); } } diff --git a/src/main/java/com/minelittlepony/unicopia/UConfig.java b/src/main/java/com/minelittlepony/unicopia/UConfig.java index bde46af5..053d12cd 100644 --- a/src/main/java/com/minelittlepony/unicopia/UConfig.java +++ b/src/main/java/com/minelittlepony/unicopia/UConfig.java @@ -65,7 +65,7 @@ public class UConfig { "This is the race a client requests when first joining a game. " + "It is the default used both when Mine Little Pony is not installed and when they respond with a human race."; @Expose - private Race preferredRace = Race.HUMAN; + private Race preferredRace = Race.EARTH; @Expose(deserialize = false) private final String ignoreMineLPComment = @@ -98,7 +98,7 @@ public class UConfig { public Race getPrefferedRace() { if (preferredRace == null) { - setPreferredRace(Race.HUMAN); + setPreferredRace(Race.EARTH); } return preferredRace; diff --git a/src/main/java/com/minelittlepony/unicopia/Unicopia.java b/src/main/java/com/minelittlepony/unicopia/Unicopia.java index 9f208ace..4ac70efc 100644 --- a/src/main/java/com/minelittlepony/unicopia/Unicopia.java +++ b/src/main/java/com/minelittlepony/unicopia/Unicopia.java @@ -24,7 +24,6 @@ import net.minecraftforge.event.entity.item.ItemTossEvent; import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent; import net.minecraftforge.event.entity.player.PlayerDropsEvent; import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.entity.player.UseHoeEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fml.common.Mod; diff --git a/src/main/java/com/minelittlepony/unicopia/command/CommandRacelist.java b/src/main/java/com/minelittlepony/unicopia/command/CommandRacelist.java index f6269ba7..7a9403e9 100644 --- a/src/main/java/com/minelittlepony/unicopia/command/CommandRacelist.java +++ b/src/main/java/com/minelittlepony/unicopia/command/CommandRacelist.java @@ -38,7 +38,7 @@ class CommandRacelist extends CommandBase { EntityPlayer player = getCommandSenderAsPlayer(sender); - Race race = Race.fromName(args[1], Race.HUMAN); + Race race = Race.fromName(args[1], Race.EARTH); TextComponentTranslation formattedName = new TextComponentTranslation(race.name().toLowerCase()); formattedName.getStyle().setColor(TextFormatting.GOLD); diff --git a/src/main/java/com/minelittlepony/unicopia/command/CommandSpecies.java b/src/main/java/com/minelittlepony/unicopia/command/CommandSpecies.java index 68ac3d66..2621e319 100644 --- a/src/main/java/com/minelittlepony/unicopia/command/CommandSpecies.java +++ b/src/main/java/com/minelittlepony/unicopia/command/CommandSpecies.java @@ -62,15 +62,18 @@ class CommandSpecies extends CommandBase { } if (args[0].contentEquals("set") && args.length >= 2) { - Race species = Race.fromName(args[1], null); + Race species = Race.fromName(args[1], Race.HUMAN); - if (species == null) { - player.sendMessage(new TextComponentTranslation("commands.race.fail", args[1].toUpperCase())); + if (species.isDefault()) { + ITextComponent message = new TextComponentTranslation("commands.race.fail", args[1].toUpperCase()); + message.getStyle().setColor(TextFormatting.RED); + + player.sendMessage(message); } else { if (PlayerSpeciesList.instance().speciesPermitted(species, player)) { PlayerSpeciesList.instance().getPlayer(player).setPlayerSpecies(species); - TextComponentTranslation formattedName = new TextComponentTranslation(species.name().toLowerCase()); + ITextComponent formattedName = new TextComponentTranslation(species.name().toLowerCase()); if (player != sender) { notifyCommandListener(sender, this, 1, "commands.race.success.other", formattedName, player.getName()); @@ -89,8 +92,7 @@ class CommandSpecies extends CommandBase { name += player == sender ? "self" : "other"; ITextComponent race = new TextComponentTranslation(spec.getTranslationString()); - - TextComponentTranslation message = new TextComponentTranslation(name); + ITextComponent message = new TextComponentTranslation(name); race.getStyle().setColor(TextFormatting.GOLD); @@ -104,7 +106,7 @@ class CommandSpecies extends CommandBase { boolean first = true; for (Race i : Race.values()) { - if (PlayerSpeciesList.instance().speciesPermitted(i, player)) { + if (!i.isDefault() && PlayerSpeciesList.instance().speciesPermitted(i, player)) { message.appendSibling(new TextComponentString((!first ? "\n" : "") + " - " + i.name().toLowerCase())); first = false; } @@ -153,7 +155,7 @@ class CommandSpecies extends CommandBase { EntityPlayer player = sender instanceof EntityPlayer ? (EntityPlayer)sender : null; for (Race i : Race.values()) { - if (args[0].contentEquals("describe") || PlayerSpeciesList.instance().speciesPermitted(i, player)) { + if (args[0].contentEquals("describe") || !(i.isDefault() && PlayerSpeciesList.instance().speciesPermitted(i, player))) { names.add(i.name().toLowerCase()); } } diff --git a/src/main/java/com/minelittlepony/unicopia/player/ItemCapabilities.java b/src/main/java/com/minelittlepony/unicopia/player/ItemCapabilities.java index d40aa1ce..8d2a2a79 100644 --- a/src/main/java/com/minelittlepony/unicopia/player/ItemCapabilities.java +++ b/src/main/java/com/minelittlepony/unicopia/player/ItemCapabilities.java @@ -34,7 +34,7 @@ class ItemCapabilities implements IRaceContainer, IOwned @Override public void readFromNBT(NBTTagCompound compound) { - race = Race.fromName(compound.getString("owner_species"), Race.HUMAN); + race = Race.fromName(compound.getString("owner_species")); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/player/PlayerCapabilities.java b/src/main/java/com/minelittlepony/unicopia/player/PlayerCapabilities.java index b547fd3c..cdd7b4a4 100644 --- a/src/main/java/com/minelittlepony/unicopia/player/PlayerCapabilities.java +++ b/src/main/java/com/minelittlepony/unicopia/player/PlayerCapabilities.java @@ -65,7 +65,7 @@ class PlayerCapabilities implements IPlayer { PlayerCapabilities(EntityPlayer player) { setOwner(player); - player.getDataManager().register(PLAYER_RACE, Race.HUMAN.ordinal()); + player.getDataManager().register(PLAYER_RACE, Race.EARTH.ordinal()); player.getDataManager().register(EXERTION, 0F); player.getDataManager().register(ENERGY, 0F); player.getDataManager().register(EFFECT, new NBTTagCompound()); @@ -85,7 +85,11 @@ class PlayerCapabilities implements IPlayer { EntityPlayer player = getOwner(); if (!PlayerSpeciesList.instance().speciesPermitted(race, player)) { - race = Race.HUMAN; + race = Race.EARTH; + + if (!PlayerSpeciesList.instance().speciesPermitted(race, player)) { + race = Race.HUMAN; + } } player.getDataManager().set(PLAYER_RACE, race.ordinal()); @@ -260,7 +264,7 @@ class PlayerCapabilities implements IPlayer { @Override public void readFromNBT(NBTTagCompound compound) { - setPlayerSpecies(Race.fromName(compound.getString("playerSpecies"), Race.HUMAN)); + setPlayerSpecies(Race.fromName(compound.getString("playerSpecies"))); powers.readFromNBT(compound.getCompoundTag("powers")); gravity.readFromNBT(compound.getCompoundTag("gravity")); diff --git a/src/main/resources/assets/unicopia/lang/en_US.lang b/src/main/resources/assets/unicopia/lang/en_US.lang index ed0e66d4..ed5706af 100644 --- a/src/main/resources/assets/unicopia/lang/en_US.lang +++ b/src/main/resources/assets/unicopia/lang/en_US.lang @@ -98,8 +98,9 @@ commands.race.tell.other=%s is a commands.race.tell.other.alt=%s is an commands.race.describe.title=%s -commands.race.describe.human.1=This is the default race for new players. -commands.race.describe.human.2=It has no special abilities. +commands.race.describe.human.1=This is a default race with no abilities. +commands.race.describe.human.2=If you have this, it means there are no other races available. +commands.race.describe.human.3=It has no special abilities. commands.race.describe.earth.1=Earth Ponies can grow crops using mana and punch trees for apples (yeeeeeeehaaaaawwwwwwwwwww) commands.race.describe.earth.2=Their offensive ability is to kick down whilst jumping for a deafening ground smash.