From 955a58969bc540024ecd32321382358ec1a79978 Mon Sep 17 00:00:00 2001 From: CabbageGod Date: Fri, 4 Mar 2022 12:21:32 -0500 Subject: [PATCH] Added contains command to ground items --- .../client/CabbageScapeClient.java | 13 ++++++ .../cabbagescape/commands/Commands.java | 41 +++++++++++++++++++ .../cabbagescape/data/GroundItemSettings.java | 1 + 3 files changed, 55 insertions(+) diff --git a/src/main/java/com/cabbagegod/cabbagescape/client/CabbageScapeClient.java b/src/main/java/com/cabbagegod/cabbagescape/client/CabbageScapeClient.java index 4d8bc52..312205e 100644 --- a/src/main/java/com/cabbagegod/cabbagescape/client/CabbageScapeClient.java +++ b/src/main/java/com/cabbagegod/cabbagescape/client/CabbageScapeClient.java @@ -2,6 +2,7 @@ import com.cabbagegod.cabbagescape.commands.Commands; import com.cabbagegod.cabbagescape.data.DataHandler; +import com.cabbagegod.cabbagescape.data.GroundItemSettings; import com.cabbagegod.cabbagescape.data.Settings; import com.google.gson.Gson; import net.fabricmc.api.ClientModInitializer; @@ -106,12 +107,24 @@ private void checkSelectedDropItems(MinecraftClient client){ if(itemStack == null || itemStack.isEmpty() || itemStack.getItem() == Items.AIR) continue; + //Oh god what have I done + if(settings.groundItemSettings.searchTags.contains(Formatting.strip(itemStack.getName().getString().toLowerCase()))){ client.player.playSound(SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, settings.groundItemSettings.volume, 1); client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() + .5f, entity.getY() + 1, entity.getZ() + 1, 1, 1, 1); client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() - .5f, entity.getY() + 1, entity.getZ() + 1, 1, 1, 1); client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() + .5f, entity.getY() + 1, entity.getZ(), 1, 1, 1); client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() - .5f, entity.getY() + 1, entity.getZ(), 1, 1, 1); + } else { + for(String tag : settings.groundItemSettings.containsTags){ + if(Formatting.strip(itemStack.getName().getString().toLowerCase()).contains(tag)){ + client.player.playSound(SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, settings.groundItemSettings.volume, 1); + client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() + .5f, entity.getY() + 1, entity.getZ() + 1, 1, 1, 1); + client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() - .5f, entity.getY() + 1, entity.getZ() + 1, 1, 1, 1); + client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() + .5f, entity.getY() + 1, entity.getZ(), 1, 1, 1); + client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() - .5f, entity.getY() + 1, entity.getZ(), 1, 1, 1); + } + } } } } diff --git a/src/main/java/com/cabbagegod/cabbagescape/commands/Commands.java b/src/main/java/com/cabbagegod/cabbagescape/commands/Commands.java index d2a6d58..ec47d98 100644 --- a/src/main/java/com/cabbagegod/cabbagescape/commands/Commands.java +++ b/src/main/java/com/cabbagegod/cabbagescape/commands/Commands.java @@ -54,6 +54,47 @@ public static void register(){ return 1; }))) + .then(ClientCommandManager.literal("contains") + .then(ClientCommandManager.literal("add") + .then(ClientCommandManager.argument("item", ClientMessageArgumentType.message()) + .executes(context -> { + Text text = ClientMessageArgumentType.getMessage(context, "item"); + + if(CabbageScapeClient.settings.groundItemSettings.containsTags.contains(text.getString().toLowerCase())){ + MinecraftClient.getInstance().player.sendMessage(new LiteralText("Item " + text.getString() + " was already in your list."), false); + } else { + CabbageScapeClient.settings.groundItemSettings.containsTags.add(text.getString().toLowerCase()); + CabbageScapeClient.saveSettings(); + MinecraftClient.getInstance().player.sendMessage(new LiteralText("Item " + text.getString() + " has been added to your list."), false); + } + return 1; + }))) + .then(ClientCommandManager.literal("remove") + .then(ClientCommandManager.argument("item", ClientMessageArgumentType.message()) + .executes(context -> { + Text text = ClientMessageArgumentType.getMessage(context, "item"); + + if(CabbageScapeClient.settings.groundItemSettings.containsTags.contains(text.getString().toLowerCase())){ + CabbageScapeClient.settings.groundItemSettings.containsTags.remove(text.getString().toLowerCase()); + CabbageScapeClient.saveSettings(); + MinecraftClient.getInstance().player.sendMessage(new LiteralText("Item " + text.getString() + " has been removed from your list."), false); + } else { + MinecraftClient.getInstance().player.sendMessage(new LiteralText("Item " + text.getString() + " was not in your list."), false); + } + return 1; + }))) + .then(ClientCommandManager.literal("list") + .executes(context -> { + assert MinecraftClient.getInstance().player != null; + String tagList = "Contains Item List: "; + for(String tag : CabbageScapeClient.settings.groundItemSettings.containsTags){ + tagList += tag + ","; + } + tagList = StringUtils.chop(tagList); + + MinecraftClient.getInstance().player.sendMessage(new LiteralText(tagList), false); + return 1; + }))) .then(ClientCommandManager.literal("list") .executes(context -> { assert MinecraftClient.getInstance().player != null; diff --git a/src/main/java/com/cabbagegod/cabbagescape/data/GroundItemSettings.java b/src/main/java/com/cabbagegod/cabbagescape/data/GroundItemSettings.java index 3e7d8eb..646adcc 100644 --- a/src/main/java/com/cabbagegod/cabbagescape/data/GroundItemSettings.java +++ b/src/main/java/com/cabbagegod/cabbagescape/data/GroundItemSettings.java @@ -5,6 +5,7 @@ public class GroundItemSettings { public List searchTags = new ArrayList(); + public List containsTags = new ArrayList(); public float volume = .05f; public GroundItemSettings(){