From b8b41aa5846dae5a9bbf4fee82020f1d9e2b2a48 Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Mon, 12 Aug 2024 17:08:54 -0400 Subject: Initial commit --- .../fyresmodjam/commands/CommandCraftingStats.java | 156 ++++++++++++++++++++ .../commands/CommandCurrentBlessing.java | 87 ++++++++++++ .../commands/CommandCurrentDisadvantage.java | 84 +++++++++++ .../commands/CommandCurrentWorldTask.java | 110 ++++++++++++++ .../fyresmodjam/commands/CommandKillStats.java | 158 +++++++++++++++++++++ .../fyresmodjam/commands/CommandWeaponStats.java | 157 ++++++++++++++++++++ 6 files changed, 752 insertions(+) create mode 100644 src/main/java/fyresmodjam/commands/CommandCraftingStats.java create mode 100644 src/main/java/fyresmodjam/commands/CommandCurrentBlessing.java create mode 100644 src/main/java/fyresmodjam/commands/CommandCurrentDisadvantage.java create mode 100644 src/main/java/fyresmodjam/commands/CommandCurrentWorldTask.java create mode 100644 src/main/java/fyresmodjam/commands/CommandKillStats.java create mode 100644 src/main/java/fyresmodjam/commands/CommandWeaponStats.java (limited to 'src/main/java/fyresmodjam/commands') diff --git a/src/main/java/fyresmodjam/commands/CommandCraftingStats.java b/src/main/java/fyresmodjam/commands/CommandCraftingStats.java new file mode 100644 index 0000000..d07a511 --- /dev/null +++ b/src/main/java/fyresmodjam/commands/CommandCraftingStats.java @@ -0,0 +1,156 @@ +package fyresmodjam.commands; + +import java.util.LinkedList; +import java.util.List; + +import fyresmodjam.ModjamMod; +import fyresmodjam.handlers.NewPacketHandler; +import fyresmodjam.misc.EntityStatHelper; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; + +public class CommandCraftingStats implements ICommand { + + @Override + public int compareTo(ICommand arg0) { + return 0; + } + + @Override + public String getName() { + return "craftingKnowledge"; + } + + @Override + public String getUsage(ICommandSender icommandsender) { + return "commands.craftingKnowledge.usage"; + } + + @Override + public List getAliases() { + return new LinkedList<>(); + } + + + @Override + public void execute(MinecraftServer mcServer, ICommandSender icommandsender, + String[] astring) { + int page = astring.length > 0 + ? Integer.parseInt(astring[0]) - 1 + : 0, maxPage = 0; + if (icommandsender instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) icommandsender; + + String message = "\u00A7c\u00A7oCrafting stats not enabled."; + + if (ModjamMod.enableCraftingStats) { + message = "@Crafting Knowledge:"; + + if (entityplayer.getEntityData() + .hasKey("CraftingStats")) { + NBTTagCompound craftingStats = entityplayer + .getEntityData() + .getCompoundTag("CraftingStats"); + + String trackedItems = craftingStats + .hasKey("TrackedItemList") + ? craftingStats.getString( + "TrackedItemList") + : ""; + + if (trackedItems != null + && trackedItems.length() > 0) { + String[] trackedItemList = trackedItems + .split(";"); + + maxPage = Math.max(0, + (craftingStats.getSize() + - 1) + / 4); + if (page > maxPage) { + page = maxPage; + } + if (page < 0) { + page = 0; + } + + message = "@Crafting Knowledge (page " + + (page + 1) + + "/" + + (maxPage + 1) + + "):"; + + int count = 0, skip = 0; + for (String item : trackedItemList) { + if (skip < page * 4) { + skip++; + continue; + } + + int kills = craftingStats + .getInteger(item); + + int last = 0; + for (int i = 0; i < EntityStatHelper.killCount.length; i++) { + if (kills >= EntityStatHelper.killCount[i] + * 2) { + last = i; + continue; + } else { + break; + } + } + + message += "@\u00A7b " + + EntityStatHelper.knowledge[last] + + " " + + item.toLowerCase() + + " smith\u00A73 (" + + kills + + " craft(s)" + + (last < EntityStatHelper.knowledge.length + - 1 ? ", " + (EntityStatHelper.killCount[last + 1] * 2 - kills + " craft(s) to next rank)") : ")"); + count++; + + if (count >= 4) { + break; + } + } + } + } else { + message += "@ You've yet to learn anything."; + } + } + + NewPacketHandler.SEND_MESSAGE.sendToPlayer( + entityplayer, message); + } + } + + @Override + public boolean checkPermission(MinecraftServer mcServer, + ICommandSender icommandsender) { + return true; + } + + @Override + public List getTabCompletions(MinecraftServer mcServer, + ICommandSender icommandsender, String[] astring, + BlockPos bPos) { + return new LinkedList<>(); + } + + @Override + public boolean isUsernameIndex(String[] astring, int i) { + return false; + } + + public int getRequiredPermissionLevel() { + return 0; + } + +} diff --git a/src/main/java/fyresmodjam/commands/CommandCurrentBlessing.java b/src/main/java/fyresmodjam/commands/CommandCurrentBlessing.java new file mode 100644 index 0000000..f39a689 --- /dev/null +++ b/src/main/java/fyresmodjam/commands/CommandCurrentBlessing.java @@ -0,0 +1,87 @@ +package fyresmodjam.commands; + +import java.util.LinkedList; +import java.util.List; + +import fyresmodjam.blessings.BlessingUtils; +import fyresmodjam.blessings.Blessing; +import fyresmodjam.handlers.NewPacketHandler; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; + +public class CommandCurrentBlessing implements ICommand { + + @Override + public int compareTo(ICommand arg0) { + return 0; + } + + @Override + public String getName() { + return "currentBlessing"; + } + + @Override + public String getUsage(ICommandSender icommandsender) { + return "commands.currentBlessing.usage"; + } + + @Override + public List getAliases() { + return new LinkedList<>(); + } + + @Override + public void execute(MinecraftServer mcServer, ICommandSender icommandsender, + String[] astring) { + if (icommandsender instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) icommandsender; + + boolean hasBlessing = BlessingUtils + .hasBlessing(entityplayer); + + String blessingMsg = ""; + + if (hasBlessing) { + Blessing bless = BlessingUtils + .getBlessingInstance( + entityplayer); + + blessingMsg = String.format( + "§eCurrent Blessing - §o%s\n%s", + bless.customName(), + bless.description()); + } else { + blessingMsg = "You don't currently have a blessing"; + } + + NewPacketHandler.SEND_MESSAGE.sendToPlayer( + entityplayer, blessingMsg); + } + } + + @Override + public boolean checkPermission(MinecraftServer mcServer, + ICommandSender icommandsender) { + return true; + } + + @Override + public List getTabCompletions(MinecraftServer mcServer, ICommandSender icommandsender, + String[] astring, BlockPos bPos) { + return new LinkedList<>(); + } + + @Override + public boolean isUsernameIndex(String[] astring, int i) { + return false; + } + + public int getRequiredPermissionLevel() { + return 0; + } + +} diff --git a/src/main/java/fyresmodjam/commands/CommandCurrentDisadvantage.java b/src/main/java/fyresmodjam/commands/CommandCurrentDisadvantage.java new file mode 100644 index 0000000..205a67d --- /dev/null +++ b/src/main/java/fyresmodjam/commands/CommandCurrentDisadvantage.java @@ -0,0 +1,84 @@ +package fyresmodjam.commands; + +import java.util.LinkedList; +import java.util.List; + +import fyresmodjam.handlers.CommonTickHandler; +import fyresmodjam.handlers.NewPacketHandler; +import fyresmodjam.worldgen.FyresWorldData; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; + +public class CommandCurrentDisadvantage implements ICommand { + + @Override + public int compareTo(ICommand arg0) { + return 0; + } + + @Override + public String getName() { + return "currentDisadvantage"; + } + + @Override + public String getUsage(ICommandSender icommandsender) { + return "commands.currentDisadvantage.usage"; + } + + @Override + public List getAliases() { + return new LinkedList<>(); + } + + @Override + public void execute(MinecraftServer mcServer, ICommandSender icommandsender, + String[] astring) { + if (icommandsender instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) icommandsender; + + int index = -1; + for (int i = 0; i < FyresWorldData.validDisadvantages.length; i++) { + if (FyresWorldData.validDisadvantages[i] + .equals(CommonTickHandler.worldData + .getDisadvantage())) { + index = i; + break; + } + } + NewPacketHandler.SEND_MESSAGE.sendToPlayer( + entityplayer, + "\u00A7eWorld disadvantage: " + + CommonTickHandler.worldData + .getDisadvantage() + + (index == -1 ? "" + : " (" + FyresWorldData.disadvantageDescriptions[index] + + ")")); + } + } + + @Override + public boolean checkPermission(MinecraftServer mcServer, + ICommandSender icommandsender) { + return true; + } + + @Override + public List getTabCompletions(MinecraftServer mcServer, ICommandSender icommandsender, + String[] astring, BlockPos bPos) { + return new LinkedList<>(); + } + + @Override + public boolean isUsernameIndex(String[] astring, int i) { + return false; + } + + public int getRequiredPermissionLevel() { + return 0; + } + +} diff --git a/src/main/java/fyresmodjam/commands/CommandCurrentWorldTask.java b/src/main/java/fyresmodjam/commands/CommandCurrentWorldTask.java new file mode 100644 index 0000000..84058a4 --- /dev/null +++ b/src/main/java/fyresmodjam/commands/CommandCurrentWorldTask.java @@ -0,0 +1,110 @@ +package fyresmodjam.commands; + +import java.util.LinkedList; +import java.util.List; + +import fyresmodjam.handlers.CommonTickHandler; +import fyresmodjam.handlers.NewPacketHandler; +import fyresmodjam.worldgen.FyresWorldData; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; + +public class CommandCurrentWorldTask implements ICommand { + + @Override + public int compareTo(ICommand arg0) { + return 0; + } + + @Override + public String getName() { + return "currentGoal"; + } + + @Override + public String getUsage(ICommandSender icommandsender) { + return "commands.currentGoal.usage"; + } + + @Override + public List getAliases() { + return new LinkedList<>(); + } + + @Override + public void execute(MinecraftServer mcServer, + ICommandSender icommandsender, String[] astring) { + if (icommandsender instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) icommandsender; + + String name = CommonTickHandler.worldData.currentTask + .equals("Kill") ? FyresWorldData.validMobNames[CommonTickHandler.worldData.currentTaskID] + : FyresWorldData.validItems[CommonTickHandler.worldData.currentTaskID] + .getDisplayName(); + + if (CommonTickHandler.worldData.currentTaskAmount > 1) { + if (name.contains("Block")) { + if (name.contains("Block")) { + name = name.replace( + "Block", + "Blocks") + .replace("block", + "blocks"); + } + } else { + name += "s"; + } + } + + NewPacketHandler.SEND_MESSAGE.sendToPlayer( + entityplayer, + "\u00A7eWorld goal: " + + CommonTickHandler.worldData.currentTask + + " " + + CommonTickHandler.worldData.currentTaskAmount + + " " + name + + ". (" + + CommonTickHandler.worldData.progress + + " " + + CommonTickHandler.worldData.currentTask + + "ed)"); + + NewPacketHandler.SEND_MESSAGE.sendToPlayer( + entityplayer, + "\u00A7f Reward: " + + CommonTickHandler.worldData.rewardLevels + + " Experience Levels"); + + NewPacketHandler.SEND_MESSAGE.sendToPlayer( + entityplayer, + "\u00A7eGoals completed: " + + CommonTickHandler.worldData.tasksCompleted); + } + } + + @Override + public boolean checkPermission(MinecraftServer mcServer, + ICommandSender icommandsender) { + return true; + } + + @Override + public List getTabCompletions(MinecraftServer mcServer, + ICommandSender icommandsender, String[] astring, + BlockPos bPos) { + return new LinkedList<>(); + } + + @Override + public boolean isUsernameIndex(String[] astring, int i) { + return false; + } + + public int getRequiredPermissionLevel() { + return 0; + } + +} diff --git a/src/main/java/fyresmodjam/commands/CommandKillStats.java b/src/main/java/fyresmodjam/commands/CommandKillStats.java new file mode 100644 index 0000000..8d4c756 --- /dev/null +++ b/src/main/java/fyresmodjam/commands/CommandKillStats.java @@ -0,0 +1,158 @@ +package fyresmodjam.commands; + +import java.util.LinkedList; +import java.util.List; + +import fyresmodjam.ModjamMod; +import fyresmodjam.handlers.NewPacketHandler; +import fyresmodjam.misc.EntityStatHelper; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; + +public class CommandKillStats implements ICommand { + + @Override + public int compareTo(ICommand arg0) { + return 0; + } + + @Override + public String getName() { + return "creatureKnowledge"; + } + + @Override + public String getUsage(ICommandSender icommandsender) { + return "commands.creatureKnowledge.usage"; + } + + @Override + public List getAliases() { + return new LinkedList<>(); + } + + @Override + public void execute(MinecraftServer mcServer, + ICommandSender icommandsender, String[] astring) { + int page = astring.length > 0 + ? Integer.parseInt(astring[0]) - 1 + : 0, maxPage = 0; + + if (icommandsender instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) icommandsender; + + String message = "\u00A7c\u00A7oMob kill stats not enabled."; + + if (ModjamMod.enableMobKillStats) { + message = "@Creature Knowledge:"; + + if (entityplayer.getEntityData() + .hasKey("KillStats")) { + NBTTagCompound killStats = entityplayer + .getEntityData() + .getCompoundTag("KillStats"); + + String trackedMobs = killStats + .hasKey("TrackedMobList") + ? killStats.getString( + "TrackedMobList") + : ""; + + if (trackedMobs != null + && trackedMobs.length() > 0) { + String[] trackedMobList = trackedMobs + .split(";"); + + maxPage = Math.max(0, + (killStats.getSize() + - 1) + / 4); + if (page > maxPage) { + page = maxPage; + } + if (page < 0) { + page = 0; + } + + message = "@Creature Knowledge (page " + + (page + 1) + + "/" + + (maxPage + 1) + + "):"; + + int count = 0, skip = 0; + for (String mob : trackedMobList) { + if (skip < page * 4) { + skip++; + continue; + } + + int kills = killStats + .getInteger(mob); + + int last = 0; + for (int i = 0; i < EntityStatHelper.killCount.length; i++) { + if (kills >= EntityStatHelper.killCount[i]) { + last = i; + continue; + } else { + break; + } + } + + message += "@\u00A7b " + + EntityStatHelper.knowledge[last] + + " " + + mob.toLowerCase() + + " slayer\u00A73 " + + (last > 0 ? "+" + + EntityStatHelper.damageBonusString[last] + + "% damage bonus (" + : "(") + + kills + + " kill(s)" + + (last < EntityStatHelper.knowledge.length + - 1 ? ", " + (EntityStatHelper.killCount[last + 1] - kills + " kill(s) to next rank)") : ")"); + count++; + + if (count >= 4) { + break; + } + } + } + } else { + message += "@ You've yet to learn anything."; + } + } + + NewPacketHandler.SEND_MESSAGE.sendToPlayer( + entityplayer, message); + } + } + + @Override + public boolean checkPermission(MinecraftServer mcServer, + ICommandSender icommandsender) { + return true; + } + + @Override + public List getTabCompletions(MinecraftServer mcServer, ICommandSender icommandsender, + String[] astring, BlockPos bPos) { + return new LinkedList<>(); + } + + @Override + public boolean isUsernameIndex(String[] astring, int i) { + return false; + } + + public int getRequiredPermissionLevel() { + return 0; + } + +} diff --git a/src/main/java/fyresmodjam/commands/CommandWeaponStats.java b/src/main/java/fyresmodjam/commands/CommandWeaponStats.java new file mode 100644 index 0000000..f3ea8b7 --- /dev/null +++ b/src/main/java/fyresmodjam/commands/CommandWeaponStats.java @@ -0,0 +1,157 @@ +package fyresmodjam.commands; + +import java.util.LinkedList; +import java.util.List; + +import fyresmodjam.ModjamMod; +import fyresmodjam.handlers.NewPacketHandler; +import fyresmodjam.misc.EntityStatHelper; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; + +public class CommandWeaponStats implements ICommand { + + @Override + public int compareTo(ICommand arg0) { + return 0; + } + + @Override + public String getName() { + return "weaponKnowledge"; + } + + @Override + public String getUsage(ICommandSender icommandsender) { + return "commands.weaponKnowledge.usage"; + } + + @Override + public List getAliases() { + return new LinkedList<>(); + } + + @Override + public void execute(MinecraftServer mcServer, + ICommandSender icommandsender, String[] astring) { + int page = astring.length > 0 + ? Integer.parseInt(astring[0]) - 1 + : 0, maxPage = 0; + if (icommandsender instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) icommandsender; + + String message = "\u00A7c\u00A7oWeapon kill stats not enabled."; + + if (ModjamMod.enableWeaponKillStats) { + message = "@Weapon Knowledge:"; + + if (entityplayer.getEntityData() + .hasKey("WeaponStats")) { + NBTTagCompound itemStats = entityplayer + .getEntityData() + .getCompoundTag("WeaponStats"); + + String trackedItems = itemStats + .hasKey("TrackedItemList") + ? itemStats.getString( + "TrackedItemList") + : ""; + + if (trackedItems != null + && trackedItems.length() > 0) { + String[] trackedItemList = trackedItems + .split(";"); + + maxPage = Math.max(0, + (itemStats.getSize()) + / 4); + if (page > maxPage) { + page = maxPage; + } + if (page < 0) { + page = 0; + } + + message = "@Weapon Knowledge (page " + + (page + 1) + + "/" + + (maxPage + 1) + + "):"; + + int count = 0, skip = 0; + for (String item : trackedItemList) { + if (skip < page * 4) { + skip++; + continue; + } + + int kills = itemStats + .getInteger(item); + + int last = 0; + for (int i = 0; i < EntityStatHelper.killCount.length; i++) { + if (kills >= EntityStatHelper.killCount[i] + * 2) { + last = i; + continue; + } else { + break; + } + } + + message += "@\u00A7b " + + EntityStatHelper.knowledge[last] + + " " + + item.toLowerCase() + + " user\u00A73 " + + (last > 0 ? "+" + + EntityStatHelper.damageBonusString[last] + + "% damage bonus (" + : "(") + + kills + + " kill(s)" + + (last < EntityStatHelper.knowledge.length + - 1 ? ", " + (EntityStatHelper.killCount[last + 1] * 2 - kills + " kill(s) to next rank)") : ")"); + count++; + + if (count >= 4) { + break; + } + } + } + } else { + message += "@ You've yet to learn anything."; + } + } + + NewPacketHandler.SEND_MESSAGE.sendToPlayer( + entityplayer, message); + } + } + + @Override + public boolean checkPermission(MinecraftServer mcServer, + ICommandSender icommandsender) { + return true; + } + + @Override + public List getTabCompletions(MinecraftServer mcServer, ICommandSender icommandsender, + String[] astring, BlockPos bPos) { + return new LinkedList<>(); + } + + @Override + public boolean isUsernameIndex(String[] astring, int i) { + return false; + } + + public int getRequiredPermissionLevel() { + return 0; + } + +} -- cgit v1.2.3