forked from virt-mirrors/Sit
Merge branch '1.21.3' into 1.20.6
# Conflicts: # gradle.properties
This commit is contained in:
commit
2b661a0fa8
10 changed files with 76 additions and 110 deletions
|
@ -51,6 +51,7 @@ public class CustomBlock {
|
|||
boolean blockType = checkBlockType(blockState);
|
||||
if (!blockType) return false;
|
||||
|
||||
/// BLOCK STATE CHECKER
|
||||
// now check if the state is one of the acceptable states
|
||||
for (String state : blockStates) {
|
||||
// if there is a NOT (!) blockstate
|
||||
|
|
|
@ -56,13 +56,24 @@ public interface CustomFile <T extends CustomFile<T>> {
|
|||
if (file == null) throw new NullPointerException();
|
||||
|
||||
// update the instance
|
||||
updateToNewFile(file);
|
||||
file.update();
|
||||
// load the file to the current object
|
||||
loadFileData(file);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
Class<T> getFileClass();
|
||||
|
||||
void updateToNewFile(T newFile);
|
||||
/**
|
||||
* loads the data from the file object into the current object
|
||||
* @param newFile the file to take the properties from
|
||||
*/
|
||||
void loadFileData(T newFile);
|
||||
|
||||
/**
|
||||
* updates the file based on the version number of the current instance
|
||||
*/
|
||||
void update();
|
||||
|
||||
/**
|
||||
* logic for the file not existing when loading, defaults to saving
|
||||
|
|
|
@ -69,6 +69,14 @@ public class FileData {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* saves all config files
|
||||
*/
|
||||
public static void saveFiles() {
|
||||
getSittingConfig().save();
|
||||
getServerConfig().save();
|
||||
}
|
||||
|
||||
public static class Defaults {
|
||||
public static final ArrayList<SittingBlock> SITTING_BLOCKS = new ArrayList<>(Arrays.asList(
|
||||
new SittingBlock(new ArrayList<>(),new ArrayList<>(Arrays.asList("#minecraft:campfires")), new ArrayList<>(Arrays.asList("lit=false")),.437),
|
||||
|
@ -80,6 +88,12 @@ public class FileData {
|
|||
new CustomBlock(new ArrayList<>(),new ArrayList<>(Arrays.asList("#minecraft:shulker_boxes")),new ArrayList<>())
|
||||
));
|
||||
|
||||
public static final ArrayList<CustomBlock> INTERACTION_BLOCKS = new ArrayList<>(Arrays.asList(
|
||||
new CustomBlock(new ArrayList<>(Arrays.asList("minecraft:crafter")),new ArrayList<>(Arrays.asList(
|
||||
"#minecraft:shulker_boxes","#c:player_workstations/furnaces","#c:player_workstations/crafting_tables",
|
||||
"#c:villager_job_sites","#minecraft:trapdoors","#c:chests")),new ArrayList<>())
|
||||
));
|
||||
|
||||
public static final HandSetting MAIN_HAND = new HandSetting(HandSetting.SittingRequirement.EMPTY, new HandSetting.Filter(
|
||||
false,new HandSetting.Filter.Presets(),
|
||||
new CustomItem(
|
||||
|
|
|
@ -20,7 +20,7 @@ import java.util.Properties;
|
|||
public class ServerConfig implements CustomFile<ServerConfig> {
|
||||
|
||||
@SerializedName("version")
|
||||
private Double version = 2.0;
|
||||
private Double version = 2.1;
|
||||
@SerializedName("lang")
|
||||
private String lang = "en_us";
|
||||
@SerializedName("lang-options")
|
||||
|
@ -37,6 +37,8 @@ public class ServerConfig implements CustomFile<ServerConfig> {
|
|||
private ArrayList<SittingBlock> sittingBlocks = FileData.Defaults.SITTING_BLOCKS;
|
||||
@SerializedName("blacklisted-blocks")
|
||||
private ArrayList<CustomBlock> blacklistedBlocks = FileData.Defaults.BLACKLISTED_BLOCKS;
|
||||
@SerializedName("interaction-blocks")
|
||||
private ArrayList<CustomBlock> interactionBlocks = FileData.Defaults.INTERACTION_BLOCKS;
|
||||
|
||||
public ServerConfig() {}
|
||||
|
||||
|
@ -49,11 +51,13 @@ public class ServerConfig implements CustomFile<ServerConfig> {
|
|||
this.customEnabled = serverConfig.customEnabled;
|
||||
this.sittingBlocks = serverConfig.sittingBlocks;
|
||||
this.blacklistedBlocks = serverConfig.blacklistedBlocks;
|
||||
this.interactionBlocks = serverConfig.interactionBlocks;
|
||||
}
|
||||
|
||||
public ServerConfig(Double version, String lang, boolean keepActive, boolean sitWhileSeated,
|
||||
PresetBlocks presetBlocks, boolean customEnabled,
|
||||
ArrayList<SittingBlock> sittingBlocks, ArrayList<CustomBlock> blacklistedBlocks) {
|
||||
ArrayList<SittingBlock> sittingBlocks, ArrayList<CustomBlock> blacklistedBlocks,
|
||||
ArrayList<CustomBlock> interactionBlocks) {
|
||||
this.version = version;
|
||||
this.lang = lang;
|
||||
this.keepActive = keepActive;
|
||||
|
@ -62,6 +66,7 @@ public class ServerConfig implements CustomFile<ServerConfig> {
|
|||
this.customEnabled = customEnabled;
|
||||
this.sittingBlocks = sittingBlocks;
|
||||
this.blacklistedBlocks = blacklistedBlocks;
|
||||
this.interactionBlocks = interactionBlocks;
|
||||
}
|
||||
|
||||
public Double getVersion() {
|
||||
|
@ -96,6 +101,10 @@ public class ServerConfig implements CustomFile<ServerConfig> {
|
|||
return blacklistedBlocks;
|
||||
}
|
||||
|
||||
public ArrayList<CustomBlock> getInteractionBlocks() {
|
||||
return interactionBlocks;
|
||||
}
|
||||
|
||||
public static class PresetBlocks {
|
||||
|
||||
@SerializedName("stairs")
|
||||
|
@ -135,7 +144,7 @@ public class ServerConfig implements CustomFile<ServerConfig> {
|
|||
|
||||
@Override
|
||||
public void reset() {
|
||||
updateToNewFile(new ServerConfig());
|
||||
loadFileData(new ServerConfig());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -144,7 +153,7 @@ public class ServerConfig implements CustomFile<ServerConfig> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void updateToNewFile(ServerConfig newFile) {
|
||||
public void loadFileData(ServerConfig newFile) {
|
||||
this.version = newFile.version;
|
||||
this.lang = newFile.lang;
|
||||
this.keepActive = newFile.keepActive;
|
||||
|
@ -155,6 +164,14 @@ public class ServerConfig implements CustomFile<ServerConfig> {
|
|||
this.blacklistedBlocks = newFile.blacklistedBlocks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
/// update to 2.1, just a new list, nothing to change
|
||||
if (version == 2.0) {
|
||||
version = 2.1;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileName() {
|
||||
return "server-config.json";
|
||||
|
@ -283,7 +300,7 @@ public class ServerConfig implements CustomFile<ServerConfig> {
|
|||
Boolean.parseBoolean((String) properties.computeIfAbsent("custom", a -> String.valueOf(defaultConfig.isCustomEnabled()))),
|
||||
getCustomBlocks(new Gson().fromJson((String)
|
||||
properties.computeIfAbsent("custom-blocks", a -> "[]"), listType)),
|
||||
new ArrayList<>()
|
||||
new ArrayList<>(), FileData.Defaults.INTERACTION_BLOCKS
|
||||
);
|
||||
|
||||
SittingConfig defaultSittingConfig = new SittingConfig();
|
||||
|
|
|
@ -3,16 +3,8 @@ package one.oth3r.sit.file;
|
|||
import com.google.gson.annotations.SerializedName;
|
||||
import net.minecraft.util.Hand;
|
||||
import one.oth3r.sit.utl.Data;
|
||||
import one.oth3r.sit.utl.Utl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class SittingConfig implements CustomFile<SittingConfig> {
|
||||
|
||||
@SerializedName("version")
|
||||
|
@ -37,7 +29,7 @@ public class SittingConfig implements CustomFile<SittingConfig> {
|
|||
}
|
||||
|
||||
public SittingConfig(SittingConfig sittingConfig) {
|
||||
updateToNewFile(sittingConfig);
|
||||
loadFileData(sittingConfig);
|
||||
}
|
||||
|
||||
public Double getVersion() {
|
||||
|
@ -74,7 +66,7 @@ public class SittingConfig implements CustomFile<SittingConfig> {
|
|||
|
||||
@Override
|
||||
public void reset() {
|
||||
updateToNewFile(new SittingConfig());
|
||||
loadFileData(new SittingConfig());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -83,7 +75,7 @@ public class SittingConfig implements CustomFile<SittingConfig> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void updateToNewFile(SittingConfig newFile) {
|
||||
public void loadFileData(SittingConfig newFile) {
|
||||
this.version = newFile.version;
|
||||
this.enabled = newFile.enabled;
|
||||
this.handSitting = newFile.handSitting;
|
||||
|
@ -91,6 +83,9 @@ public class SittingConfig implements CustomFile<SittingConfig> {
|
|||
this.offHand = newFile.offHand;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {}
|
||||
|
||||
@Override
|
||||
public String getFileName() {
|
||||
return "sitting-config.json";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue