From c96ce10cdcf75cf642101b00cc9572304d276851 Mon Sep 17 00:00:00 2001 From: Keuin Date: Sat, 16 Jan 2021 15:34:15 +0800 Subject: Add runtime configuration editing command `/omvm set `. The set is temporary and will not be modified in disk. --- .../ohmyvanillamc/config/OmvmConfiguration.java | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 src/main/java/com/keuin/ohmyvanillamc/config/OmvmConfiguration.java (limited to 'src/main/java/com/keuin/ohmyvanillamc/config/OmvmConfiguration.java') diff --git a/src/main/java/com/keuin/ohmyvanillamc/config/OmvmConfiguration.java b/src/main/java/com/keuin/ohmyvanillamc/config/OmvmConfiguration.java new file mode 100644 index 0000000..70ce1a7 --- /dev/null +++ b/src/main/java/com/keuin/ohmyvanillamc/config/OmvmConfiguration.java @@ -0,0 +1,113 @@ +package com.keuin.ohmyvanillamc.config; + +import java.util.Objects; + +public class OmvmConfiguration { + + private boolean fixEntityTrackerEntrySpamming; + private boolean disableFishSchooling; + private boolean disablePhantomSpawning; + private boolean disableWanderingTraderSpawning; + private boolean reintroduceLlamaItemDuplicating; + private boolean reintroduceZeroTickFarm; + + public OmvmConfiguration() { + this(true, false, false, false, false, false); + } + + public OmvmConfiguration(OmvmConfiguration omvmConfiguration) { + this.fixEntityTrackerEntrySpamming = omvmConfiguration.fixEntityTrackerEntrySpamming; + this.disableFishSchooling = omvmConfiguration.disableFishSchooling; + this.disablePhantomSpawning = omvmConfiguration.disablePhantomSpawning; + this.disableWanderingTraderSpawning = omvmConfiguration.disableWanderingTraderSpawning; + this.reintroduceLlamaItemDuplicating = omvmConfiguration.reintroduceLlamaItemDuplicating; + this.reintroduceZeroTickFarm = omvmConfiguration.reintroduceZeroTickFarm; + } + + public OmvmConfiguration(boolean fixEntityTrackerEntrySpamming, boolean disableFishSchooling, boolean disablePhantomSpawning, boolean disableWanderingTraderSpawning, boolean reintroduceLlamaItemDuplicating, boolean reintroduceZeroTickFarm) { + this.fixEntityTrackerEntrySpamming = fixEntityTrackerEntrySpamming; + this.disableFishSchooling = disableFishSchooling; + this.disablePhantomSpawning = disablePhantomSpawning; + this.disableWanderingTraderSpawning = disableWanderingTraderSpawning; + this.reintroduceLlamaItemDuplicating = reintroduceLlamaItemDuplicating; + this.reintroduceZeroTickFarm = reintroduceZeroTickFarm; + } + + public boolean isFixEntityTrackerEntrySpamming() { + return fixEntityTrackerEntrySpamming; + } + + public boolean isDisableFishSchooling() { + return disableFishSchooling; + } + + public boolean isDisablePhantomSpawning() { + return disablePhantomSpawning; + } + + public boolean isDisableWanderingTraderSpawning() { + return disableWanderingTraderSpawning; + } + + public boolean isReintroduceLlamaItemDuplicating() { + return reintroduceLlamaItemDuplicating; + } + + public boolean isReintroduceZeroTickFarm() { + return reintroduceZeroTickFarm; + } + + public void setFixEntityTrackerEntrySpamming(boolean fixEntityTrackerEntrySpamming) { + this.fixEntityTrackerEntrySpamming = fixEntityTrackerEntrySpamming; + } + + public void setDisableFishSchooling(boolean disableFishSchooling) { + this.disableFishSchooling = disableFishSchooling; + } + + public void setDisablePhantomSpawning(boolean disablePhantomSpawning) { + this.disablePhantomSpawning = disablePhantomSpawning; + } + + public void setDisableWanderingTraderSpawning(boolean disableWanderingTraderSpawning) { + this.disableWanderingTraderSpawning = disableWanderingTraderSpawning; + } + + public void setReintroduceLlamaItemDuplicating(boolean reintroduceLlamaItemDuplicating) { + this.reintroduceLlamaItemDuplicating = reintroduceLlamaItemDuplicating; + } + + public void setReintroduceZeroTickFarm(boolean reintroduceZeroTickFarm) { + this.reintroduceZeroTickFarm = reintroduceZeroTickFarm; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OmvmConfiguration that = (OmvmConfiguration) o; + return fixEntityTrackerEntrySpamming == that.fixEntityTrackerEntrySpamming && + disableFishSchooling == that.disableFishSchooling && + disablePhantomSpawning == that.disablePhantomSpawning && + disableWanderingTraderSpawning == that.disableWanderingTraderSpawning && + reintroduceLlamaItemDuplicating == that.reintroduceLlamaItemDuplicating && + reintroduceZeroTickFarm == that.reintroduceZeroTickFarm; + } + + @Override + public int hashCode() { + return Objects.hash(fixEntityTrackerEntrySpamming, disableFishSchooling, disablePhantomSpawning, disableWanderingTraderSpawning, reintroduceLlamaItemDuplicating, reintroduceZeroTickFarm); + } + + @Override + public String toString() { + String s = ""; + s += "(BugFix) Fix Entity Tracker Entry Spamming: " + fixEntityTrackerEntrySpamming + "\n"; + s += "(Optimization) Disable Fish Schooling: " + disableFishSchooling + "\n"; + s += "(Exotic Feature) Disable Phantom Spawning: " + disablePhantomSpawning + "\n"; + s += "(Exotic Feature) Disable Wandering Trader Spawning: " + disableWanderingTraderSpawning + "\n"; + s += "(Obsolete Vanilla Feature) Reintroduce Llama Item Duplicating: " + reintroduceLlamaItemDuplicating + "\n"; + s += "(Obsolete Vanilla Feature) Reintroduce 0-tick Plants Farm: " + reintroduceZeroTickFarm; + return s; + } +} -- cgit v1.2.3