Hold config values in fields

This commit is contained in:
KennyTV 2019-11-22 22:00:41 +01:00
parent faaa252fa8
commit 907516eb71
7 changed files with 215 additions and 125 deletions

View File

@ -1,7 +1,7 @@
package us.myles.ViaVersion.bukkit.platform;
import org.bukkit.plugin.Plugin;
import us.myles.ViaVersion.AbstractViaConfig;
import us.myles.ViaVersion.ViaVersionPlugin;
import us.myles.ViaVersion.api.Via;
import java.io.File;
@ -12,13 +12,25 @@ import java.util.Map;
public class BukkitViaConfig extends AbstractViaConfig {
private static final List<String> UNSUPPORTED = Arrays.asList("bungee-ping-interval", "bungee-ping-save", "bungee-servers", "velocity-ping-interval", "velocity-ping-save", "velocity-servers");
private boolean antiXRay;
private boolean quickMoveActionFix;
private boolean hitboxFix1_9;
private boolean hitboxFix1_14;
public BukkitViaConfig() {
super(new File(((ViaVersionPlugin) Via.getPlatform()).getDataFolder(), "config.yml"));
// Load config
super(new File(((Plugin) Via.getPlatform()).getDataFolder(), "config.yml"));
reloadConfig();
}
@Override
protected void loadFields() {
super.loadFields();
antiXRay = getBoolean("anti-xray-patch", true);
quickMoveActionFix = getBoolean("quick-move-action-fix", false);
hitboxFix1_9 = getBoolean("change-1_9-hitbox", false);
hitboxFix1_14 = getBoolean("change-1_14-hitbox", false);
}
@Override
public URL getDefaultConfigURL() {
return BukkitViaConfig.class.getClassLoader().getResource("assets/viaversion/config.yml");
@ -28,6 +40,26 @@ public class BukkitViaConfig extends AbstractViaConfig {
protected void handleConfig(Map<String, Object> config) {
}
@Override
public boolean isAntiXRay() {
return antiXRay;
}
@Override
public boolean is1_12QuickMoveActionFix() {
return quickMoveActionFix;
}
@Override
public boolean is1_9HitboxFix() {
return hitboxFix1_9;
}
@Override
public boolean is1_14HitboxFix() {
return hitboxFix1_14;
}
@Override
public List<String> getUnsupportedOptions() {
return UNSUPPORTED;

View File

@ -10,13 +10,23 @@ import java.util.*;
public class BungeeViaConfig extends AbstractViaConfig {
private static final List<String> UNSUPPORTED = Arrays.asList("nms-player-ticking", "item-cache", "anti-xray-patch", "quick-move-action-fix", "velocity-ping-interval", "velocity-ping-save", "velocity-servers", "blockconnection-method", "change-1_9-hitbox", "change-1_14-hitbox");
private int bungeePingInterval;
private boolean bungeePingSave;
private Map<String, Integer> bungeeServerProtocols;
public BungeeViaConfig(File configFile) {
super(new File(configFile, "config.yml"));
// Load config
reloadConfig();
}
@Override
protected void loadFields() {
super.loadFields();
bungeePingInterval = getInt("bungee-ping-interval", 60);
bungeePingSave = getBoolean("bungee-ping-save", true);
bungeeServerProtocols = get("bungee-servers", Map.class, new HashMap<>());
}
@Override
public URL getDefaultConfigURL() {
return BungeeViaConfig.class.getClassLoader().getResource("assets/viaversion/config.yml");
@ -59,11 +69,6 @@ public class BungeeViaConfig extends AbstractViaConfig {
return UNSUPPORTED;
}
@Override
public boolean isAntiXRay() {
return false;
}
@Override
public boolean isItemCache() {
return false;
@ -74,26 +79,11 @@ public class BungeeViaConfig extends AbstractViaConfig {
return false;
}
@Override
public boolean is1_12QuickMoveActionFix() {
return false;
}
@Override
public String getBlockConnectionMethod() {
return "packet";
}
@Override
public boolean is1_9HitboxFix() {
return false;
}
@Override
public boolean is1_14HitboxFix() {
return false;
}
/**
* What is the interval for checking servers via ping
* -1 for disabled
@ -101,7 +91,7 @@ public class BungeeViaConfig extends AbstractViaConfig {
* @return Ping interval in seconds
*/
public int getBungeePingInterval() {
return getInt("bungee-ping-interval", 60);
return bungeePingInterval;
}
/**
@ -110,7 +100,7 @@ public class BungeeViaConfig extends AbstractViaConfig {
* @return True if it should save
*/
public boolean isBungeePingSave() {
return getBoolean("bungee-ping-save", true);
return bungeePingSave;
}
/**
@ -120,6 +110,6 @@ public class BungeeViaConfig extends AbstractViaConfig {
* @return Map of String, Integer
*/
public Map<String, Integer> getBungeeServerProtocols() {
return get("bungee-servers", Map.class, new HashMap<>());
return bungeeServerProtocols;
}
}

View File

@ -4,252 +4,351 @@ import us.myles.ViaVersion.api.ViaVersionConfig;
import us.myles.ViaVersion.util.Config;
import java.io.File;
import java.util.List;
import java.util.HashSet;
import java.util.Set;
public abstract class AbstractViaConfig extends Config implements ViaVersionConfig {
private boolean checkForUpdates;
private boolean preventCollision;
private boolean useNewEffectIndicator;
private boolean useNewDeathmessages;
private boolean suppressMetadataErrors;
private boolean shieldBlocking;
private boolean hologramPatch;
private boolean pistonAnimationPatch;
private boolean bossbarPatch;
private boolean bossbarAntiFlicker;
private double hologramOffset;
private int maxPPS;
private String maxPPSKickMessage;
private int trackingPeriod;
private int warningPPS;
private int maxPPSWarnings;
private String maxPPSWarningsKickMessage;
private boolean sendSupportedVersions;
private boolean simulatePlayerTick;
private boolean itemCache;
private boolean nmsPlayerTicking;
private boolean replacePistons;
private int pistonReplacementId;
private boolean autoTeam;
private boolean forceJsonTransform;
private boolean nbtArrayFix;
private Set<Integer> blockedProtocols;
private String blockedDisconnectMessage;
private String reloadDisconnectMessage;
private boolean suppress1_13ConversionErrors;
private boolean disable1_13TabComplete;
private boolean minimizeCooldown;
private boolean teamColourFix;
private boolean serversideBlockConnections;
private String blockConnectionMethod;
private boolean reduceBlockStorageMemory;
private boolean flowerStemWhenBlockAbove;
private boolean snowCollisionFix;
private int tabCompleteDelay;
private boolean truncate1_14Books;
private boolean leftHandedHandling;
private boolean fullBlockLightFix;
private boolean healthNaNFix;
private boolean instantRespawn;
protected AbstractViaConfig(File configFile) {
super(configFile);
}
@Override
public void reloadConfig() {
super.reloadConfig();
loadFields();
}
protected void loadFields() {
checkForUpdates = getBoolean("checkforupdates", true);
preventCollision = getBoolean("prevent-collision", true);
useNewEffectIndicator = getBoolean("use-new-effect-indicator", true);
useNewDeathmessages = getBoolean("use-new-deathmessages", true);
suppressMetadataErrors = getBoolean("suppress-metadata-errors", false);
shieldBlocking = getBoolean("shield-blocking", true);
hologramPatch = getBoolean("hologram-patch", false);
pistonAnimationPatch = getBoolean("piston-animation-patch", false);
bossbarPatch = getBoolean("bossbar-patch", true);
bossbarAntiFlicker = getBoolean("bossbar-anti-flicker", false);
hologramOffset = getDouble("hologram-y", -0.96D);
maxPPS = getInt("max-pps", 800);
maxPPSKickMessage = getString("max-pps-kick-msg", "Sending packets too fast? lag?");
trackingPeriod = getInt("tracking-period", 6);
warningPPS = getInt("tracking-warning-pps", 120);
maxPPSWarnings = getInt("tracking-max-warnings", 3);
maxPPSWarningsKickMessage = getString("tracking-max-kick-msg", "You are sending too many packets, :(");
sendSupportedVersions = getBoolean("send-supported-versions", false);
simulatePlayerTick = getBoolean("simulate-pt", true);
itemCache = getBoolean("item-cache", true);
nmsPlayerTicking = getBoolean("nms-player-ticking", true);
replacePistons = getBoolean("replace-pistons", false);
pistonReplacementId = getInt("replacement-piston-id", 0);
autoTeam = getBoolean("auto-team", true);
forceJsonTransform = getBoolean("force-json-transform", false);
nbtArrayFix = getBoolean("chat-nbt-fix", true);
blockedProtocols = new HashSet<>(getIntegerList("block-protocols"));
blockedDisconnectMessage = getString("block-disconnect-msg", "You are using an unsupported Minecraft version!");
reloadDisconnectMessage = getString("reload-disconnect-msg", "Server reload, please rejoin!");
suppress1_13ConversionErrors = getBoolean("minimize-cooldown", true);
disable1_13TabComplete = getBoolean("team-colour-fix", true);
minimizeCooldown = getBoolean("suppress-1_13-conversion-errors", false);
teamColourFix = getBoolean("disable-1_13-auto-complete", false);
serversideBlockConnections = getBoolean("serverside-blockconnections", false);
blockConnectionMethod = getString("blockconnection-method", "packet");
reduceBlockStorageMemory = getBoolean("reduce-blockstorage-memory", false);
flowerStemWhenBlockAbove = getBoolean("flowerstem-when-block-above", false);
snowCollisionFix = getBoolean("fix-low-snow-collision", false);
tabCompleteDelay = getInt("1_13-tab-complete-delay", 0);
truncate1_14Books = getBoolean("truncate-1_14-books", false);
leftHandedHandling = getBoolean("left-handed-handling", true);
fullBlockLightFix = getBoolean("fix-non-full-blocklight", false);
healthNaNFix = getBoolean("fix-1_14-health-nan", true);
instantRespawn = getBoolean("use-1_15-instant-respawn", false);
}
@Override
public boolean isCheckForUpdates() {
return getBoolean("checkforupdates", true);
return checkForUpdates;
}
@Override
public boolean isPreventCollision() {
return getBoolean("prevent-collision", true);
return preventCollision;
}
@Override
public boolean isNewEffectIndicator() {
return getBoolean("use-new-effect-indicator", true);
return useNewEffectIndicator;
}
@Override
public boolean isShowNewDeathMessages() {
return getBoolean("use-new-deathmessages", true);
return useNewDeathmessages;
}
@Override
public boolean isSuppressMetadataErrors() {
return getBoolean("suppress-metadata-errors", false);
return suppressMetadataErrors;
}
@Override
public boolean isShieldBlocking() {
return getBoolean("shield-blocking", true);
return shieldBlocking;
}
@Override
public boolean isHologramPatch() {
return getBoolean("hologram-patch", false);
return hologramPatch;
}
@Override
public boolean isPistonAnimationPatch() {
return getBoolean("piston-animation-patch", false);
return pistonAnimationPatch;
}
@Override
public boolean isBossbarPatch() {
return getBoolean("bossbar-patch", true);
return bossbarPatch;
}
@Override
public boolean isBossbarAntiflicker() {
return getBoolean("bossbar-anti-flicker", false);
return bossbarAntiFlicker;
}
@Override
public double getHologramYOffset() {
return getDouble("hologram-y", -0.96D);
return hologramOffset;
}
@Override
public int getMaxPPS() {
return getInt("max-pps", 800);
return maxPPS;
}
@Override
public String getMaxPPSKickMessage() {
return getString("max-pps-kick-msg", "Sending packets too fast? lag?");
return maxPPSKickMessage;
}
@Override
public int getTrackingPeriod() {
return getInt("tracking-period", 6);
return trackingPeriod;
}
@Override
public int getWarningPPS() {
return getInt("tracking-warning-pps", 120);
return warningPPS;
}
@Override
public int getMaxWarnings() {
return getInt("tracking-max-warnings", 3);
return maxPPSWarnings;
}
@Override
public String getMaxWarningsKickMessage() {
return getString("tracking-max-kick-msg", "You are sending too many packets, :(");
return maxPPSWarningsKickMessage;
}
@Override
public boolean isAntiXRay() {
return getBoolean("anti-xray-patch", true);
return false;
}
@Override
public boolean isSendSupportedVersions() {
return getBoolean("send-supported-versions", false);
return sendSupportedVersions;
}
@Override
public boolean isStimulatePlayerTick() {
return getBoolean("simulate-pt", true);
return simulatePlayerTick;
}
@Override
public boolean isItemCache() {
return getBoolean("item-cache", true);
return itemCache;
}
@Override
public boolean isNMSPlayerTicking() {
return getBoolean("nms-player-ticking", true);
return nmsPlayerTicking;
}
@Override
public boolean isReplacePistons() {
return getBoolean("replace-pistons", false);
return replacePistons;
}
@Override
public int getPistonReplacementId() {
return getInt("replacement-piston-id", 0);
return pistonReplacementId;
}
@Override
public boolean isAutoTeam() {
// Collision has to be enabled first
return isPreventCollision() && getBoolean("auto-team", true);
return isPreventCollision() && autoTeam;
}
@Override
public boolean isForceJsonTransform() {
return getBoolean("force-json-transform", false);
return forceJsonTransform;
}
@Override
public boolean is1_12NBTArrayFix() {
return getBoolean("chat-nbt-fix", true);
return nbtArrayFix;
}
@Override
public boolean is1_12QuickMoveActionFix() {
return getBoolean("quick-move-action-fix", false);
return false;
}
@Override
public List<Integer> getBlockedProtocols() {
return getIntegerList("block-protocols");
public Set<Integer> getBlockedProtocols() {
return blockedProtocols;
}
@Override
public String getBlockedDisconnectMsg() {
return getString("block-disconnect-msg", "You are using an unsupported Minecraft version!");
return blockedDisconnectMessage;
}
@Override
public String getReloadDisconnectMsg() {
return getString("reload-disconnect-msg", "Server reload, please rejoin!");
return reloadDisconnectMessage;
}
@Override
public boolean isMinimizeCooldown() {
return getBoolean("minimize-cooldown", true);
return suppress1_13ConversionErrors;
}
@Override
public boolean is1_13TeamColourFix() {
return getBoolean("team-colour-fix", true);
return disable1_13TabComplete;
}
@Override
public boolean isSuppress1_13ConversionErrors() {
return getBoolean("suppress-1_13-conversion-errors", false);
return minimizeCooldown;
}
@Override
public boolean isDisable1_13AutoComplete() {
return getBoolean("disable-1_13-auto-complete", false);
return teamColourFix;
}
@Override
public boolean isServersideBlockConnections() {
return getBoolean("serverside-blockconnections", false);
return serversideBlockConnections;
}
@Override
public String getBlockConnectionMethod() {
return getString("blockconnection-method", "packet");
return blockConnectionMethod;
}
@Override
public boolean isReduceBlockStorageMemory() {
return getBoolean("reduce-blockstorage-memory", false);
return reduceBlockStorageMemory;
}
@Override
public boolean isStemWhenBlockAbove() {
return getBoolean("flowerstem-when-block-above", false);
return flowerStemWhenBlockAbove;
}
@Override
public boolean isSnowCollisionFix() {
return getBoolean("fix-low-snow-collision", false);
return snowCollisionFix;
}
@Override
public int get1_13TabCompleteDelay() {
return getInt("1_13-tab-complete-delay", 0);
return tabCompleteDelay;
}
@Override
public boolean isTruncate1_14Books() {
return getBoolean("truncate-1_14-books", false);
return truncate1_14Books;
}
@Override
public boolean isLeftHandedHandling() {
return getBoolean("left-handed-handling", true);
return leftHandedHandling;
}
@Override
public boolean is1_9HitboxFix() {
return getBoolean("change-1_9-hitbox", false);
return false;
}
@Override
public boolean is1_14HitboxFix() {
return getBoolean("change-1_14-hitbox", false);
return false;
}
@Override
public boolean isNonFullBlockLightFix() {
return getBoolean("fix-non-full-blocklight", false);
return fullBlockLightFix;
}
@Override
public boolean is1_14HealthNaNFix() {
return getBoolean("fix-1_14-health-nan", true);
return healthNaNFix;
}
@Override
public boolean is1_15InstantRespawn() {
return getBoolean("use-1_15-instant-respawn", false);
return instantRespawn;
}
}

View File

@ -1,6 +1,6 @@
package us.myles.ViaVersion.api;
import java.util.List;
import java.util.Set;
public interface ViaVersionConfig {
@ -213,7 +213,7 @@ public interface ViaVersionConfig {
*
* @return An Integer list
*/
List<Integer> getBlockedProtocols();
Set<Integer> getBlockedProtocols();
/**
* Get the custom disconnect message

View File

@ -24,7 +24,7 @@ public abstract class Config implements ConfigurationProvider {
private final CommentStore commentStore = new CommentStore('.', 2);
private final File configFile;
private ConcurrentSkipListMap<String, Object> config;
private Map<String, Object> config;
/**
* Create a new Config instance, this will *not* load the config by default.

View File

@ -18,7 +18,6 @@ public class SpongeViaConfig extends AbstractViaConfig {
public SpongeViaConfig(PluginContainer pluginContainer, File configFile) {
super(new File(configFile, "config.yml"));
this.pluginContainer = pluginContainer;
// Load config
reloadConfig();
}
@ -39,24 +38,4 @@ public class SpongeViaConfig extends AbstractViaConfig {
public List<String> getUnsupportedOptions() {
return UNSUPPORTED;
}
@Override
public boolean isAntiXRay() {
return false;
}
@Override
public boolean is1_12QuickMoveActionFix() {
return false;
}
@Override
public boolean is1_9HitboxFix() {
return false;
}
@Override
public boolean is1_14HitboxFix() {
return false;
}
}

View File

@ -9,13 +9,23 @@ import java.util.*;
public class VelocityViaConfig extends AbstractViaConfig {
private static final List<String> UNSUPPORTED = Arrays.asList("nms-player-ticking", "item-cache", "anti-xray-patch", "quick-move-action-fix", "bungee-ping-interval", "bungee-ping-save", "bungee-servers", "blockconnection-method", "change-1_9-hitbox", "change-1_14-hitbox");
private int velocityPingInterval;
private boolean velocityPingSave;
private Map<String, Integer> velocityServerProtocols;
public VelocityViaConfig(File configFile) {
super(new File(configFile, "config.yml"));
// Load config
reloadConfig();
}
@Override
protected void loadFields() {
super.loadFields();
velocityPingInterval = getInt("velocity-ping-interval", 60);
velocityPingSave = getBoolean("velocity-ping-save", true);
velocityServerProtocols = get("velocity-servers", Map.class, new HashMap<>());
}
@Override
public URL getDefaultConfigURL() {
return getClass().getClassLoader().getResource("assets/viaversion/config.yml");
@ -64,11 +74,6 @@ public class VelocityViaConfig extends AbstractViaConfig {
return UNSUPPORTED;
}
@Override
public boolean isAntiXRay() {
return false;
}
@Override
public boolean isItemCache() {
return false;
@ -79,26 +84,11 @@ public class VelocityViaConfig extends AbstractViaConfig {
return false;
}
@Override
public boolean is1_12QuickMoveActionFix() {
return false;
}
@Override
public String getBlockConnectionMethod() {
return "packet";
}
@Override
public boolean is1_9HitboxFix() {
return false;
}
@Override
public boolean is1_14HitboxFix() {
return false;
}
/**
* What is the interval for checking servers via ping
* -1 for disabled
@ -106,7 +96,7 @@ public class VelocityViaConfig extends AbstractViaConfig {
* @return Ping interval in seconds
*/
public int getVelocityPingInterval() {
return getInt("velocity-ping-interval", 60);
return velocityPingInterval;
}
/**
@ -115,7 +105,7 @@ public class VelocityViaConfig extends AbstractViaConfig {
* @return True if it should save
*/
public boolean isVelocityPingSave() {
return getBoolean("velocity-ping-save", true);
return velocityPingSave;
}
/**
@ -125,6 +115,6 @@ public class VelocityViaConfig extends AbstractViaConfig {
* @return Map of String, Integer
*/
public Map<String, Integer> getVelocityServerProtocols() {
return get("velocity-servers", Map.class, new HashMap<>());
return velocityServerProtocols;
}
}