Sit/src/main/java/one/oth3r/sit/file/FileData.java

111 lines
4.3 KiB
Java
Raw Normal View History

2024-07-11 13:43:54 -05:00
package one.oth3r.sit.file;
import net.minecraft.entity.decoration.DisplayEntity;
import net.minecraft.server.network.ServerPlayerEntity;
2024-08-07 12:45:53 -05:00
import one.oth3r.sit.utl.Data;
import one.oth3r.sit.utl.Utl;
2024-07-11 13:43:54 -05:00
2024-08-07 12:45:53 -05:00
import java.util.ArrayList;
import java.util.Arrays;
2024-07-11 13:43:54 -05:00
import java.util.HashMap;
2024-07-23 12:27:01 -05:00
public class FileData {
2024-07-11 13:43:54 -05:00
/**
* Sit! config file
*/
private static ServerConfig serverConfig = new ServerConfig();
public static ServerConfig getServerConfig() {
return new ServerConfig(serverConfig);
}
public static void setServerConfig(ServerConfig newServerConfig) {
serverConfig = new ServerConfig(newServerConfig);
}
/**
2024-07-23 11:27:06 -05:00
* The default sitting config for all new players
2024-07-11 13:43:54 -05:00
*/
2024-07-23 11:27:06 -05:00
private static SittingConfig sittingConfig = new SittingConfig();
2024-07-11 13:43:54 -05:00
2024-07-23 11:27:06 -05:00
public static SittingConfig getSittingConfig() {
return new SittingConfig(sittingConfig);
2024-07-11 13:43:54 -05:00
}
2024-07-23 11:27:06 -05:00
public static void setSittingConfig(SittingConfig newSittingConfig) {
sittingConfig = new SittingConfig(newSittingConfig);
2024-07-11 13:43:54 -05:00
}
/**
2024-07-23 11:27:06 -05:00
* the sitting config stored per player on the server
2024-07-11 13:43:54 -05:00
*/
2024-07-23 11:27:06 -05:00
private static final HashMap<ServerPlayerEntity, SittingConfig> playerSettings = new HashMap<>();
2024-07-11 13:43:54 -05:00
public static void clearPlayerSettings() {
playerSettings.clear();
}
2024-07-23 11:27:06 -05:00
public static void setPlayerSetting(ServerPlayerEntity player, SittingConfig config) {
2024-07-11 13:43:54 -05:00
playerSettings.put(player, config);
}
public static void removePlayerSetting(ServerPlayerEntity player) {
playerSettings.remove(player);
}
2024-07-23 11:27:06 -05:00
public static SittingConfig getPlayerSetting(ServerPlayerEntity player) {
return playerSettings.getOrDefault(player, sittingConfig);
2024-07-11 13:43:54 -05:00
}
/**
* a list of every Sit! entity in the server, bound to the player
*/
private static final HashMap<ServerPlayerEntity, DisplayEntity.TextDisplayEntity> sitEntities = new HashMap<>();
public static void addSitEntity(ServerPlayerEntity player, DisplayEntity.TextDisplayEntity entity) {
sitEntities.put(player, entity);
}
public static void removeSitEntity(DisplayEntity.TextDisplayEntity entity) {
sitEntities.values().remove(entity);
}
public static DisplayEntity.TextDisplayEntity getSitEntity(ServerPlayerEntity player) {
return sitEntities.get(player);
}
public static HashMap<ServerPlayerEntity, DisplayEntity.TextDisplayEntity> getSitEntities() {
return new HashMap<>(sitEntities);
}
/**
* loads all config files to memory
* @param tryLegacy try to load the legacy file, usually only used on server startup
*/
public static void loadFiles(boolean tryLegacy) {
ServerConfig.load(tryLegacy);
2024-07-23 11:27:06 -05:00
SittingConfig.load();
2024-08-07 12:45:24 -05:00
// if loading file and is on supported server on client, send the new settings over
if (Data.isClient() && Data.isSupportedServer()) {
Utl.sendSettingsPackets();
}
2024-07-11 13:43:54 -05:00
}
2024-08-07 12:45:53 -05:00
public static class Defaults {
public static final ArrayList<CustomBlock> CUSTOM_BLOCKS = new ArrayList<>(Arrays.asList(
new CustomBlock(new ArrayList<>(),new ArrayList<>(Arrays.asList("#minecraft:campfires")), new ArrayList<>(Arrays.asList("lit=false")),.43),
new CustomBlock(new ArrayList<>(Arrays.asList("!minecraft:oak_log", "minecraft:crimson_stem")), new ArrayList<>(Arrays.asList("#minecraft:logs")), new ArrayList<>(Arrays.asList("!axis=y")),1.0),
new CustomBlock(new ArrayList<>(Arrays.asList()), new ArrayList<>(Arrays.asList("#minecraft:beds")), new ArrayList<>(Arrays.asList("part=foot","occupied=false")),.5)
));
public static final HandSetting MAIN_HAND = new HandSetting(HandSetting.SittingRequirement.EMPTY, new HandSetting.Filter(
false,false,false,new ArrayList<>(), new ArrayList<>(Arrays.asList("#minecraft:bookshelf_books","!#minecraft:lectern_books"))));
public static final HandSetting OFF_HAND = new HandSetting(HandSetting.SittingRequirement.FILTER, new HandSetting.Filter(
false,true,true, new ArrayList<>(Arrays.asList("minecraft:filled_map",
"minecraft:torch", "minecraft:soul_torch","minecraft:redstone_torch",
"minecraft:lantern", "minecraft:soul_lantern")),
new ArrayList<>()));
}
2024-07-11 13:43:54 -05:00
}