diff --git a/src/main/java/one/oth3r/sit/Events.java b/src/main/java/one/oth3r/sit/Events.java index 51e329f..61a4c39 100644 --- a/src/main/java/one/oth3r/sit/Events.java +++ b/src/main/java/one/oth3r/sit/Events.java @@ -23,7 +23,8 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; -import one.oth3r.sit.Utl.HandType; +import one.oth3r.sit.Utl.HandSettings.HandType; +import one.oth3r.sit.file.Config; import java.util.*; @@ -38,25 +39,25 @@ public class Events { ArrayList notUsable = new ArrayList<>(food); notUsable.add(UseAction.NONE); HashMap itemMap = new HashMap<>(); - itemMap.put(HandType.main,player.getMainHandStack()); - itemMap.put(HandType.off,player.getOffHandStack()); + itemMap.put(Utl.HandSettings.HandType.main,player.getMainHandStack()); + itemMap.put(Utl.HandSettings.HandType.off,player.getOffHandStack()); // if sneaking cant sit if (player.isSneaking()) return false; // for both hands - for (HandType type:HandType.values()) { + for (HandType type: Utl.HandSettings.HandType.values()) { ItemStack targetStack = itemMap.get(type); // if req is empty and the item isn't empty, false - if (Utl.getReq(player,type).equals(config.HandRequirement.empty) && !targetStack.isEmpty()) return false; + if (Utl.HandSettings.getReq(player,type).equals(Config.HandRequirement.empty) && !targetStack.isEmpty()) return false; // if req is restrictive - if (Utl.getReq(player,type).equals(config.HandRequirement.restrictive)) { + if (Utl.HandSettings.getReq(player,type).equals(Config.HandRequirement.restrictive)) { // if item is in blacklist, false - if (checkList(Utl.getList(player,type,"blacklist"),targetStack)) return false; + if (checkList(Utl.HandSettings.getList(player,type,"blacklist"),targetStack)) return false; // if item is NOT in whitelist - if (!checkList(Utl.getList(player,type,"whitelist"),targetStack)) { + if (!checkList(Utl.HandSettings.getList(player,type,"whitelist"),targetStack)) { // if block is restricted and items is block, false, ect - if (Utl.getBool(player,type,"block") && (targetStack.getItem() instanceof BlockItem)) return false; - if (Utl.getBool(player,type,"food") && food.contains(targetStack.getUseAction())) return false; - if (Utl.getBool(player,type,"usable") && !notUsable.contains(targetStack.getUseAction())) return false; + if (Utl.HandSettings.getBool(player,type,"block") && (targetStack.getItem() instanceof BlockItem)) return false; + if (Utl.HandSettings.getBool(player,type,"food") && food.contains(targetStack.getUseAction())) return false; + if (Utl.HandSettings.getBool(player,type,"usable") && !notUsable.contains(targetStack.getUseAction())) return false; } } } @@ -192,7 +193,7 @@ public class Events { ServerPlayerEntity player = handler.player; checkPlayers.put(player,2); // put server settings in the player settings - Sit.playerSettings.put(player,Utl.getHandSettings()); + Sit.playerSettings.put(player, Utl.HandSettings.getHandSettings()); }); ServerPlayConnectionEvents.DISCONNECT.register((handler, server) -> { ServerPlayerEntity player = handler.player; diff --git a/src/main/java/one/oth3r/sit/Sit.java b/src/main/java/one/oth3r/sit/Sit.java index 1300989..8b1f44a 100644 --- a/src/main/java/one/oth3r/sit/Sit.java +++ b/src/main/java/one/oth3r/sit/Sit.java @@ -3,12 +3,9 @@ package one.oth3r.sit; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; -import io.netty.buffer.ByteBuf; -import io.netty.util.ReferenceCountUtil; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.network.PacketByteBuf; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.CommandManager; import net.minecraft.server.network.ServerPlayerEntity; diff --git a/src/main/java/one/oth3r/sit/SitClient.java b/src/main/java/one/oth3r/sit/SitClient.java index 2a1d2e1..d8285fb 100644 --- a/src/main/java/one/oth3r/sit/SitClient.java +++ b/src/main/java/one/oth3r/sit/SitClient.java @@ -20,6 +20,6 @@ public class SitClient implements ClientModInitializer { } public static void sendPackets() { Gson gson = new GsonBuilder().disableHtmlEscaping().create(); - new PacketBuilder(gson.toJson(Utl.getHandSettings())).send(); + new PacketBuilder(gson.toJson(Utl.HandSettings.getHandSettings())).send(); } } diff --git a/src/main/java/one/oth3r/sit/Utl.java b/src/main/java/one/oth3r/sit/Utl.java index 3045ec1..ed69d96 100644 --- a/src/main/java/one/oth3r/sit/Utl.java +++ b/src/main/java/one/oth3r/sit/Utl.java @@ -4,6 +4,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import net.minecraft.server.network.ServerPlayerEntity; +import one.oth3r.sit.file.Config; import java.lang.reflect.Type; import java.util.ArrayList; @@ -11,35 +12,59 @@ import java.util.HashMap; import java.util.List; public class Utl { - enum HandType { - main, - off + public static class HandSettings { + public static HashMap getHandSettings() { + Gson gson = new GsonBuilder().disableHtmlEscaping().create(); + HashMap settings = new HashMap<>(); + settings.put("hand.main.requirement",String.valueOf(Config.mainReq)); + settings.put("hand.main.block",String.valueOf(Config.mainBlock)); + settings.put("hand.main.food",String.valueOf(Config.mainFood)); + settings.put("hand.main.usable",String.valueOf(Config.mainUsable)); + settings.put("hand.main.whitelist",gson.toJson(Config.mainWhitelist)); + settings.put("hand.main.blacklist",gson.toJson(Config.mainBlacklist)); + settings.put("hand.off.requirement",String.valueOf(Config.offReq)); + settings.put("hand.off.block",String.valueOf(Config.offBlock)); + settings.put("hand.off.food",String.valueOf(Config.offFood)); + settings.put("hand.off.usable",String.valueOf(Config.offUsable)); + settings.put("hand.off.whitelist",gson.toJson(Config.offWhitelist)); + settings.put("hand.off.blacklist",gson.toJson(Config.offBlacklist)); + return settings; + } + + public static Config.HandRequirement getReq(ServerPlayerEntity player, HandType type) { + return Config.HandRequirement.get(Sit.playerSettings.get(player).get("hand."+type+".requirement")); + } + + public static List getList(ServerPlayerEntity player, HandType type, String setting) { + Type listType = new TypeToken>() {}.getType(); + return new Gson().fromJson(Sit.playerSettings.get(player).get("hand."+type+"."+setting),listType); + } + + public static boolean getBool(ServerPlayerEntity player, HandType type, String setting) { + return Boolean.parseBoolean(Sit.playerSettings.get(player).get("hand."+type+"."+setting)); + } + + public enum HandType { + main, + off + } } - public static HashMap getHandSettings() { - Gson gson = new GsonBuilder().disableHtmlEscaping().create(); - HashMap settings = new HashMap<>(); - settings.put("hand.main.requirement",String.valueOf(config.mainReq)); - settings.put("hand.main.block",String.valueOf(config.mainBlock)); - settings.put("hand.main.food",String.valueOf(config.mainFood)); - settings.put("hand.main.usable",String.valueOf(config.mainUsable)); - settings.put("hand.main.whitelist",gson.toJson(config.mainWhitelist)); - settings.put("hand.main.blacklist",gson.toJson(config.mainBlacklist)); - settings.put("hand.off.requirement",String.valueOf(config.offReq)); - settings.put("hand.off.block",String.valueOf(config.offBlock)); - settings.put("hand.off.food",String.valueOf(config.offFood)); - settings.put("hand.off.usable",String.valueOf(config.offUsable)); - settings.put("hand.off.whitelist",gson.toJson(config.offWhitelist)); - settings.put("hand.off.blacklist",gson.toJson(config.offBlacklist)); - return settings; - } - public static config.HandRequirement getReq(ServerPlayerEntity player, HandType type) { - return config.HandRequirement.get(Sit.playerSettings.get(player).get("hand."+type+".requirement")); - } - public static List getList(ServerPlayerEntity player, HandType type, String setting) { - Type listType = new TypeToken>() {}.getType(); - return new Gson().fromJson(Sit.playerSettings.get(player).get("hand."+type+"."+setting),listType); - } - public static boolean getBool(ServerPlayerEntity player, HandType type, String setting) { - return Boolean.parseBoolean(Sit.playerSettings.get(player).get("hand."+type+"."+setting)); + public static class Num { + public static boolean isInt(String string) { + try { + Integer.parseInt(string); + } catch (NumberFormatException nfe) { + return false; + } + return true; + } + public static boolean isFloat(String string) { + try { + Float.parseFloat(string); + } catch (NumberFormatException nfe) { + return false; + } + return true; + } } }