123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package me.hammerle;
- import java.util.Arrays;
- import net.minecraft.block.Block;
- import net.minecraft.block.Blocks;
- import net.minecraft.client.Minecraft;
- import net.minecraft.util.text.ChatType;
- import net.minecraft.util.text.StringTextComponent;
- import net.minecraftforge.client.event.ClientChatEvent;
- import net.minecraftforge.client.event.ClientChatReceivedEvent;
- import net.minecraftforge.eventbus.api.SubscribeEvent;
- import net.minecraftforge.fml.common.Mod;
- @Mod.EventBusSubscriber
- @Mod("hefix")
- public class HeK {
- private static String filter = "Hegemony";
- private static String percent = null;
- private static double startExp = 0.0;
- private static double exp = 0.0;
- private static double nextExp = 0.0;
- private static void sendMessage(String msg) {
- Minecraft.getInstance().ingameGUI.addChatMessage(ChatType.CHAT, new StringTextComponent(msg));
- }
- private static boolean isOre(Block b) {
- return b == Blocks.IRON_ORE || b == Blocks.COAL_ORE;
- }
- @SubscribeEvent
- public static void onClientChat(ClientChatEvent e) {
- if(!e.getMessage().startsWith("/")) {
- return;
- }
- String[] parts = e.getMessage().split(" ");
- switch(parts[0]) {
- case "/hefix":
- e.setCanceled(true);
- if(parts.length < 2) {
- filter = null;
- sendMessage("Filter cleared");
- return;
- }
- filter = String.join(" ", Arrays.copyOfRange(parts, 1, parts.length));
- sendMessage("Filter set to '" + filter + "'");
- break;
- case "/percent":
- e.setCanceled(true);
- if(parts.length < 4) {
- percent = null;
- sendMessage("EXP cleared");
- return;
- }
- percent = parts[1];
- try {
- exp = Double.parseDouble(parts[2]);
- startExp = exp;
- nextExp = Double.parseDouble(parts[3]);
- } catch(NumberFormatException ex) {
- sendMessage("Type valid numbers");
- return;
- }
- sendMessage(String.format("Percent set to '%s' and %.1f and %.1f", percent, exp, nextExp));
- break;
- }
- }
- @SubscribeEvent
- public static void onChatReceive(ClientChatReceivedEvent e) {
- String msg = e.getMessage().getFormattedText();
- if(filter != null && msg.contains(filter)) {
- e.setCanceled(true);
- }
- if(percent != null && e.getType() == ChatType.GAME_INFO && msg.contains(percent)) {
- msg = msg.replaceAll("§.", "");
- String[] parts = msg.split(" ");
- for(int i = 0; i < parts.length; i++) {
- if(parts[i].equals(percent)) {
- if(i == 0) {
- continue;
- }
- try {
- exp += Double.parseDouble(parts[i - 1]);
- double d = ((exp - startExp) * 100.0) / (nextExp - startExp);
- e.setMessage(new StringTextComponent(String.format("§6%s§r +%s - %.1f%%", percent, parts[i - 1], d)));
- return;
- } catch(NumberFormatException ex) {
- e.setMessage(new StringTextComponent(ex.getLocalizedMessage()));
- break;
- }
- }
- }
- e.setCanceled(true);
- }
- }
- }
|