mirror of
https://github.com/Oth3r/Sit.git
synced 2025-09-20 08:23:20 +02:00
better way of choosing settings & new final config strings
This commit is contained in:
parent
f646bf13e3
commit
d5504310f0
2 changed files with 61 additions and 36 deletions
|
@ -24,6 +24,8 @@ import net.minecraft.util.math.Box;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import one.oth3r.sit.Utl.HandType;
|
import one.oth3r.sit.Utl.HandType;
|
||||||
|
import one.oth3r.sit.Utl.PlayerSettings;
|
||||||
|
import one.oth3r.sit.Utl.PlayerSettings.Setting;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -46,17 +48,17 @@ public class Events {
|
||||||
for (HandType type:HandType.values()) {
|
for (HandType type:HandType.values()) {
|
||||||
ItemStack targetStack = itemMap.get(type);
|
ItemStack targetStack = itemMap.get(type);
|
||||||
// if req is empty and the item isn't empty, false
|
// 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 (PlayerSettings.getRequirement(player,type).equals(config.HandRequirement.empty) && !targetStack.isEmpty()) return false;
|
||||||
// if req is restrictive
|
// if req is restrictive
|
||||||
if (Utl.getReq(player,type).equals(config.HandRequirement.restrictive)) {
|
if (PlayerSettings.getRequirement(player,type).equals(config.HandRequirement.restrictive)) {
|
||||||
// if item is in blacklist, false
|
// if item is in blacklist, false
|
||||||
if (checkList(Utl.getList(player,type,"blacklist"),targetStack)) return false;
|
if (checkList(PlayerSettings.getList(player,type,Setting.blacklist),targetStack)) return false;
|
||||||
// if item is NOT in whitelist
|
// if item is NOT in whitelist
|
||||||
if (!checkList(Utl.getList(player,type,"whitelist"),targetStack)) {
|
if (!checkList(PlayerSettings.getList(player,type,Setting.whitelist),targetStack)) {
|
||||||
// if block is restricted and items is block, false, ect
|
// if block is restricted and items is block, false, ect
|
||||||
if (Utl.getBool(player,type,"block") && (targetStack.getItem() instanceof BlockItem)) return false;
|
if (PlayerSettings.getToggle(player,type,Setting.block) && (targetStack.getItem() instanceof BlockItem)) return false;
|
||||||
if (Utl.getBool(player,type,"food") && food.contains(targetStack.getUseAction())) return false;
|
if (PlayerSettings.getToggle(player,type,Setting.food) && food.contains(targetStack.getUseAction())) return false;
|
||||||
if (Utl.getBool(player,type,"usable") && !notUsable.contains(targetStack.getUseAction())) return false;
|
if (PlayerSettings.getToggle(player,type,Setting.usable) && !notUsable.contains(targetStack.getUseAction())) return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,7 +107,7 @@ public class Events {
|
||||||
if (block instanceof CarpetBlock && config.carpetsOn) return true;
|
if (block instanceof CarpetBlock && config.carpetsOn) return true;
|
||||||
if (blockState.isFullCube(world,pos.add(0,1,0)) && config.fullBlocksOn) return true;
|
if (blockState.isFullCube(world,pos.add(0,1,0)) && config.fullBlocksOn) return true;
|
||||||
// custom checker
|
// custom checker
|
||||||
if (config.customOn && config.customBlocks.size() != 0) {
|
if (config.customOn && !config.customBlocks.isEmpty()) {
|
||||||
for (HashMap<String,Object> map:getCustomBlocks().values()) {
|
for (HashMap<String,Object> map:getCustomBlocks().values()) {
|
||||||
String blockID = Registries.BLOCK.getId(block).toString();
|
String blockID = Registries.BLOCK.getId(block).toString();
|
||||||
if (map.get("block").equals(blockID)) {
|
if (map.get("block").equals(blockID)) {
|
||||||
|
@ -149,7 +151,7 @@ public class Events {
|
||||||
entity.updatePositionAndAngles(pos.getX() + 0.5, pos.getY()+.78, pos.getZ() + 0.5, 0, 0);
|
entity.updatePositionAndAngles(pos.getX() + 0.5, pos.getY()+.78, pos.getZ() + 0.5, 0, 0);
|
||||||
hitBoxY = 2;
|
hitBoxY = 2;
|
||||||
}
|
}
|
||||||
if (config.customOn && config.customBlocks.size() != 0) {
|
if (config.customOn && !config.customBlocks.isEmpty()) {
|
||||||
for (HashMap<String,Object> map:getCustomBlocks().values()) {
|
for (HashMap<String,Object> map:getCustomBlocks().values()) {
|
||||||
String blockID = Registries.BLOCK.getId(block).toString();
|
String blockID = Registries.BLOCK.getId(block).toString();
|
||||||
if (map.get("block").equals(blockID)) {
|
if (map.get("block").equals(blockID)) {
|
||||||
|
@ -174,7 +176,7 @@ public class Events {
|
||||||
ServerPlayerEntity player = handler.player;
|
ServerPlayerEntity player = handler.player;
|
||||||
checkPlayers.put(player,2);
|
checkPlayers.put(player,2);
|
||||||
// put server settings in the player settings
|
// put server settings in the player settings
|
||||||
Sit.playerSettings.put(player,Utl.getHandSettings());
|
Sit.playerSettings.put(player, PlayerSettings.getHandSettings());
|
||||||
});
|
});
|
||||||
ServerPlayConnectionEvents.DISCONNECT.register((handler, server) -> {
|
ServerPlayConnectionEvents.DISCONNECT.register((handler, server) -> {
|
||||||
ServerPlayerEntity player = handler.player;
|
ServerPlayerEntity player = handler.player;
|
||||||
|
|
|
@ -11,35 +11,58 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class Utl {
|
public class Utl {
|
||||||
enum HandType {
|
public enum HandType {
|
||||||
main,
|
main,
|
||||||
off
|
off
|
||||||
}
|
}
|
||||||
|
public static class PlayerSettings {
|
||||||
|
public enum Setting {
|
||||||
|
requirement,
|
||||||
|
block,
|
||||||
|
food,
|
||||||
|
usable,
|
||||||
|
whitelist,
|
||||||
|
blacklist
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Gets a HashMap of all player configurable settings.
|
||||||
|
* @return a map with player hand settings.
|
||||||
|
*/
|
||||||
public static HashMap<String,String> getHandSettings() {
|
public static HashMap<String,String> getHandSettings() {
|
||||||
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
|
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
|
||||||
HashMap<String,String> settings = new HashMap<>();
|
HashMap<String,String> settings = new HashMap<>();
|
||||||
settings.put("hand.main.requirement",String.valueOf(config.mainReq));
|
// main hand
|
||||||
settings.put("hand.main.block",String.valueOf(config.mainBlock));
|
settings.put("hand.main."+Setting.requirement,String.valueOf(config.mainReq));
|
||||||
settings.put("hand.main.food",String.valueOf(config.mainFood));
|
settings.put("hand.main."+Setting.block,String.valueOf(config.mainBlock));
|
||||||
settings.put("hand.main.usable",String.valueOf(config.mainUsable));
|
settings.put("hand.main."+Setting.food,String.valueOf(config.mainFood));
|
||||||
settings.put("hand.main.whitelist",gson.toJson(config.mainWhitelist));
|
settings.put("hand.main."+Setting.usable,String.valueOf(config.mainUsable));
|
||||||
settings.put("hand.main.blacklist",gson.toJson(config.mainBlacklist));
|
settings.put("hand.main."+Setting.whitelist,gson.toJson(config.mainWhitelist));
|
||||||
settings.put("hand.off.requirement",String.valueOf(config.offReq));
|
settings.put("hand.main."+Setting.blacklist,gson.toJson(config.mainBlacklist));
|
||||||
settings.put("hand.off.block",String.valueOf(config.offBlock));
|
// copy but offhand
|
||||||
settings.put("hand.off.food",String.valueOf(config.offFood));
|
settings.put("hand.off."+Setting.requirement,String.valueOf(config.offReq));
|
||||||
settings.put("hand.off.usable",String.valueOf(config.offUsable));
|
settings.put("hand.off."+Setting.block,String.valueOf(config.offBlock));
|
||||||
settings.put("hand.off.whitelist",gson.toJson(config.offWhitelist));
|
settings.put("hand.off."+Setting.food,String.valueOf(config.offFood));
|
||||||
settings.put("hand.off.blacklist",gson.toJson(config.offBlacklist));
|
settings.put("hand.off."+Setting.usable,String.valueOf(config.offUsable));
|
||||||
|
settings.put("hand.off."+Setting.whitelist,gson.toJson(config.offWhitelist));
|
||||||
|
settings.put("hand.off."+Setting.blacklist,gson.toJson(config.offBlacklist));
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
public static config.HandRequirement getReq(ServerPlayerEntity player, HandType type) {
|
// returns specific items from the player config
|
||||||
|
public static config.HandRequirement getRequirement(ServerPlayerEntity player, HandType type) {
|
||||||
return config.HandRequirement.get(Sit.playerSettings.get(player).get("hand."+type+".requirement"));
|
return config.HandRequirement.get(Sit.playerSettings.get(player).get("hand."+type+".requirement"));
|
||||||
}
|
}
|
||||||
public static List<String> getList(ServerPlayerEntity player, HandType type, String setting) {
|
public static List<String> getList(ServerPlayerEntity player, HandType type, Setting setting) {
|
||||||
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
|
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
|
||||||
return new Gson().fromJson(Sit.playerSettings.get(player).get("hand."+type+"."+setting),listType);
|
return new Gson().fromJson(Sit.playerSettings.get(player).get("hand."+type+"."+setting),listType);
|
||||||
}
|
}
|
||||||
public static boolean getBool(ServerPlayerEntity player, HandType type, String setting) {
|
public static boolean getToggle(ServerPlayerEntity player, HandType type, Setting setting) {
|
||||||
return Boolean.parseBoolean(Sit.playerSettings.get(player).get("hand."+type+"."+setting));
|
return Boolean.parseBoolean(Sit.playerSettings.get(player).get("hand."+type+"."+setting));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
public static class Assets {
|
||||||
|
public static final String CUSTOM_BLOCKS = "\"minecraft:campfire|0.255|1|lit=false\"";
|
||||||
|
public static final String REQUIREMENT_OPTIONS = String.format("%s, %s, %s",
|
||||||
|
config.HandRequirement.empty,config.HandRequirement.restrictive,config.HandRequirement.none);
|
||||||
|
public static final String LIST = "\"minecraft:torch\"";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue