diff --git a/src/main/java/us/myles/ViaVersion/ViaConfig.java b/src/main/java/us/myles/ViaVersion/ViaConfig.java new file mode 100644 index 000000000..a5c382621 --- /dev/null +++ b/src/main/java/us/myles/ViaVersion/ViaConfig.java @@ -0,0 +1,157 @@ +package us.myles.ViaVersion; + +import us.myles.ViaVersion.api.ViaVersionConfig; +import us.myles.ViaVersion.util.Configuration; + +import java.io.File; + +public class ViaConfig implements ViaVersionConfig { + private final ViaVersionPlugin plugin; + + public ViaConfig(ViaVersionPlugin plugin) { + this.plugin = plugin; + generateConfig(); + } + + public void generateConfig() { + File file = new File(plugin.getDataFolder(), "config.yml"); + if (file.exists()) { + // Update conf options + Configuration oldConfig = new Configuration(file); + oldConfig.reload(false); // Load current options from conf + file.delete(); // Delete old conf + plugin.saveDefaultConfig(); // Generate new conf + Configuration newConfig = new Configuration(file); + newConfig.reload(true); // Load default options + for (String key : oldConfig.getKeys(false)) { + // Set option in new conf if exists + if (newConfig.contains(key)) { + newConfig.set(key, oldConfig.get(key)); + } + } + newConfig.save(); + } else { + plugin.saveDefaultConfig(); + } + } + + @Override + public boolean isCheckForUpdates() { + return plugin.getConfig().getBoolean("checkforupdates", true); + } + + @Override + public boolean isPreventCollision() { + return plugin.getConfig().getBoolean("prevent-collision", true); + } + + @Override + public boolean isNewEffectIndicator() { + return plugin.getConfig().getBoolean("use-new-effect-indicator", true); + } + + @Override + public boolean isShowNewDeathMessages() { + return plugin.getConfig().getBoolean("use-new-deathmessages", false); + } + + @Override + public boolean isSuppressMetadataErrors() { + return plugin.getConfig().getBoolean("suppress-metadata-errors", false); + } + + @Override + public boolean isShieldBlocking() { + return plugin.getConfig().getBoolean("shield-blocking", true); + } + + @Override + public boolean isHologramPatch() { + return plugin.getConfig().getBoolean("hologram-patch", false); + } + + @Override + public boolean isBossbarPatch() { + return plugin.getConfig().getBoolean("bossbar-patch", true); + } + + @Override + public boolean isBossbarAntiflicker() { + return plugin.getConfig().getBoolean("bossbar-anti-flicker", false); + } + + @Override + public boolean isUnknownEntitiesSuppressed() { + return false; + } + + @Override + public double getHologramYOffset() { + return plugin.getConfig().getDouble("hologram-y", -1D); + } + + @Override + public boolean isBlockBreakPatch() { + return false; + } + + @Override + public int getMaxPPS() { + return plugin.getConfig().getInt("max-pps", 140); + } + + @Override + public String getMaxPPSKickMessage() { + return plugin.getConfig().getString("max-pps-kick-msg", "Sending packets too fast? lag?"); + } + + @Override + public int getTrackingPeriod() { + return plugin.getConfig().getInt("tracking-period", 6); + } + + @Override + public int getWarningPPS() { + return plugin.getConfig().getInt("tracking-warning-pps", 120); + } + + @Override + public int getMaxWarnings() { + return plugin.getConfig().getInt("tracking-max-warnings", 3); + } + + @Override + public String getMaxWarningsKickMessage() { + return plugin.getConfig().getString("tracking-max-kick-msg", "You are sending too many packets, :("); + } + + @Override + public boolean isAntiXRay() { + return plugin.getConfig().getBoolean("anti-xray-patch", true); + } + + @Override + public boolean isSendSupportedVersions() { + return plugin.getConfig().getBoolean("send-supported-versions", false); + } + + @Override + public boolean isStimulatePlayerTick() { + return plugin.getConfig().getBoolean("simulate-pt", true); + } + + @Override + public boolean isItemCache() { + return plugin.getConfig().getBoolean("item-cache", true); + } + + @Override + public boolean isNMSPlayerTicking() { + return plugin.getConfig().getBoolean("nms-player-ticking", true); + } + + public boolean isAutoTeam() { + // Collision has to be enabled first + return isPreventCollision() && plugin.getConfig().getBoolean("auto-team", true); + } +} diff --git a/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java b/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java index be112b642..3a8fc01d3 100644 --- a/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java +++ b/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java @@ -5,6 +5,7 @@ import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelInitializer; import io.netty.channel.socket.SocketChannel; +import lombok.Getter; import lombok.NonNull; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -13,7 +14,6 @@ import org.bukkit.plugin.java.JavaPlugin; import us.myles.ViaVersion.api.Pair; import us.myles.ViaVersion.api.ViaVersion; import us.myles.ViaVersion.api.ViaVersionAPI; -import us.myles.ViaVersion.api.ViaVersionConfig; import us.myles.ViaVersion.api.boss.BossBar; import us.myles.ViaVersion.api.boss.BossColor; import us.myles.ViaVersion.api.boss.BossStyle; @@ -27,11 +27,9 @@ import us.myles.ViaVersion.handlers.ViaVersionInitializer; import us.myles.ViaVersion.protocols.base.ProtocolInfo; import us.myles.ViaVersion.update.UpdateListener; import us.myles.ViaVersion.update.UpdateUtil; -import us.myles.ViaVersion.util.Configuration; import us.myles.ViaVersion.util.ListWrapper; import us.myles.ViaVersion.util.ReflectionUtil; -import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.*; @@ -40,7 +38,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; -public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVersionConfig { +public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI { private final Map portedPlayers = new ConcurrentHashMap<>(); private List injectedFutures = new ArrayList<>(); @@ -50,12 +48,14 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe private boolean compatSpigotBuild = false; private boolean spigot = true; private boolean lateBind = false; + @Getter + private ViaConfig conf; @Override public void onLoad() { - ViaVersion.setInstance(this); // Config magic - generateConfig(); + conf = new ViaConfig(this); + ViaVersion.setInstance(this); // Handle reloads if (System.getProperty("ViaVersion") != null) { if (Bukkit.getPluginManager().getPlugin("ProtocolLib") != null) { @@ -94,7 +94,7 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe public void onEnable() { if (lateBind) injectPacketHandler(); - if (isCheckForUpdates()) + if (conf.isCheckForUpdates()) UpdateUtil.sendUpdateMessage(this); // Gather version :) Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() { @@ -122,7 +122,7 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe ProtocolRegistry.registerListeners(); // Warn them if they have anti-xray on and they aren't using spigot - if (isAntiXRay() && !spigot) { + if (conf.isAntiXRay() && !spigot) { getLogger().info("You have anti-xray on in your config, since you're not using spigot it won't fix xray!"); } } @@ -180,28 +180,6 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe } } - public void generateConfig() { - File file = new File(getDataFolder(), "config.yml"); - if (file.exists()) { - // Update config options - Configuration oldConfig = new Configuration(file); - oldConfig.reload(false); // Load current options from config - file.delete(); // Delete old config - saveDefaultConfig(); // Generate new config - Configuration newConfig = new Configuration(file); - newConfig.reload(true); // Load default options - for (String key : oldConfig.getKeys(false)) { - // Set option in new config if exists - if (newConfig.contains(key)) { - newConfig.set(key, oldConfig.get(key)); - } - } - newConfig.save(); - } else { - saveDefaultConfig(); - } - } - public Object getServerConnection() throws Exception { Class serverClazz = ReflectionUtil.nms("MinecraftServer"); Object server = ReflectionUtil.invokeStatic(serverClazz, "getServer"); @@ -430,100 +408,6 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe return this.spigot; } - public boolean isCheckForUpdates() { - return getConfig().getBoolean("checkforupdates", true); - } - - public boolean isPreventCollision() { - return getConfig().getBoolean("prevent-collision", true); - } - - public boolean isNewEffectIndicator() { - return getConfig().getBoolean("use-new-effect-indicator", true); - } - - @Override - public boolean isShowNewDeathMessages() { - return getConfig().getBoolean("use-new-deathmessages", false); - } - - public boolean isSuppressMetadataErrors() { - return getConfig().getBoolean("suppress-metadata-errors", false); - } - - public boolean isShieldBlocking() { - return getConfig().getBoolean("shield-blocking", true); - } - - public boolean isHologramPatch() { - return getConfig().getBoolean("hologram-patch", false); - } - - public boolean isBossbarPatch() { - return getConfig().getBoolean("bossbar-patch", true); - } - - public boolean isBossbarAntiflicker() { - return getConfig().getBoolean("bossbar-anti-flicker", false); - } - - public boolean isUnknownEntitiesSuppressed() { - return false; - } - - public double getHologramYOffset() { - return getConfig().getDouble("hologram-y", -1D); - } - - public boolean isBlockBreakPatch() { - return false; - } - - @Override - public int getMaxPPS() { - return getConfig().getInt("max-pps", 140); - } - - @Override - public String getMaxPPSKickMessage() { - return getConfig().getString("max-pps-kick-msg", "Sending packets too fast? lag?"); - } - - @Override - public int getTrackingPeriod() { - return getConfig().getInt("tracking-period", 6); - } - - @Override - public int getWarningPPS() { - return getConfig().getInt("tracking-warning-pps", 120); - } - - @Override - public int getMaxWarnings() { - return getConfig().getInt("tracking-max-warnings", 3); - } - - @Override - public String getMaxWarningsKickMessage() { - return getConfig().getString("tracking-max-kick-msg", "You are sending too many packets, :("); - } - - @Override - public boolean isAntiXRay() { - return getConfig().getBoolean("anti-xray-patch", true); - } - - @Override - public boolean isSendSupportedVersions() { - return getConfig().getBoolean("send-supported-versions", false); - } - - public boolean isAutoTeam() { - // Collision has to be enabled first - return isPreventCollision() && getConfig().getBoolean("auto-team", true); - } - public void addPortedClient(UserConnection info) { portedPlayers.put(info.get(ProtocolInfo.class).getUuid(), info); } @@ -557,27 +441,27 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe public boolean handlePPS(UserConnection info) { // Max PPS Checker - if (getMaxPPS() > 0) { - if (info.getPacketsPerSecond() >= getMaxPPS()) { - info.disconnect(getMaxPPSKickMessage()); + if (conf.getMaxPPS() > 0) { + if (info.getPacketsPerSecond() >= conf.getMaxPPS()) { + info.disconnect(conf.getMaxPPSKickMessage()); return true; // don't send current packet } } // Tracking PPS Checker - if (getMaxWarnings() > 0 && getTrackingPeriod() > 0) { - if (info.getSecondsObserved() > getTrackingPeriod()) { + if (conf.getMaxWarnings() > 0 && conf.getTrackingPeriod() > 0) { + if (info.getSecondsObserved() > conf.getTrackingPeriod()) { // Reset info.setWarnings(0); info.setSecondsObserved(1); } else { info.setSecondsObserved(info.getSecondsObserved() + 1); - if (info.getPacketsPerSecond() >= getWarningPPS()) { + if (info.getPacketsPerSecond() >= conf.getWarningPPS()) { info.setWarnings(info.getWarnings() + 1); } - if (info.getWarnings() >= getMaxWarnings()) { - info.disconnect(getMaxWarningsKickMessage()); + if (info.getWarnings() >= conf.getMaxWarnings()) { + info.disconnect(conf.getMaxWarningsKickMessage()); return true; // don't send current packet } } diff --git a/src/main/java/us/myles/ViaVersion/api/ViaVersion.java b/src/main/java/us/myles/ViaVersion/api/ViaVersion.java index 07dbf8e5e..a6fee1ad8 100644 --- a/src/main/java/us/myles/ViaVersion/api/ViaVersion.java +++ b/src/main/java/us/myles/ViaVersion/api/ViaVersion.java @@ -14,6 +14,6 @@ public class ViaVersion { public static void setInstance(ViaVersionPlugin plugin) { Validate.isTrue(instance == null, "Instance is already set"); ViaVersion.instance = plugin; - ViaVersion.config = plugin; + ViaVersion.config = plugin.getConf(); } } diff --git a/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java b/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java index e53c1ea27..b54e8e963 100644 --- a/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java +++ b/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java @@ -2,13 +2,6 @@ package us.myles.ViaVersion.api; public interface ViaVersionConfig { - /** - * Get if global debug is enabled - * - * @return true if debug is enabled - */ - boolean isDebug(); - /** * Get if the plugin should check for updates * @@ -158,4 +151,25 @@ public interface ViaVersionConfig { * @return If true, enabled */ boolean isSendSupportedVersions(); + + /** + * Stimulate the player tick + * + * @return if true, enabled + */ + boolean isStimulatePlayerTick(); + + /** + * Use the item cache to prevent high resource usage + * + * @return if true, enabled + */ + boolean isItemCache(); + + /** + * Use the NMS player ticking + * + * @return if true, enabled + */ + boolean isNMSPlayerTicking(); } diff --git a/src/main/java/us/myles/ViaVersion/commands/defaultsubs/AutoTeamSubCmd.java b/src/main/java/us/myles/ViaVersion/commands/defaultsubs/AutoTeamSubCmd.java index 89d529852..0217f12d8 100644 --- a/src/main/java/us/myles/ViaVersion/commands/defaultsubs/AutoTeamSubCmd.java +++ b/src/main/java/us/myles/ViaVersion/commands/defaultsubs/AutoTeamSubCmd.java @@ -20,7 +20,7 @@ public class AutoTeamSubCmd extends ViaSubCommand { public boolean execute(CommandSender sender, String[] args) { ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance(); - boolean newValue = !plugin.isAutoTeam(); + boolean newValue = !ViaVersion.getConfig().isAutoTeam(); plugin.getConfig().set("auto-team", newValue); plugin.saveConfig(); sendMessage(sender, "&6We will %s", (newValue ? "&aautomatically team players" : "&cno longer auto team players")); diff --git a/src/main/java/us/myles/ViaVersion/commands/defaultsubs/DontBugMeSubCmd.java b/src/main/java/us/myles/ViaVersion/commands/defaultsubs/DontBugMeSubCmd.java index e115a92ad..f99936c0d 100644 --- a/src/main/java/us/myles/ViaVersion/commands/defaultsubs/DontBugMeSubCmd.java +++ b/src/main/java/us/myles/ViaVersion/commands/defaultsubs/DontBugMeSubCmd.java @@ -20,7 +20,7 @@ public class DontBugMeSubCmd extends ViaSubCommand { public boolean execute(CommandSender sender, String[] args) { ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance(); - boolean newValue = !plugin.isCheckForUpdates(); + boolean newValue = !ViaVersion.getConfig().isCheckForUpdates(); plugin.getConfig().set("checkforupdates", newValue); plugin.saveConfig(); sendMessage(sender, "&6We will %snotify you about updates.", (newValue ? "&a" : "&cnot ")); diff --git a/src/main/java/us/myles/ViaVersion/commands/defaultsubs/ReloadSubCmd.java b/src/main/java/us/myles/ViaVersion/commands/defaultsubs/ReloadSubCmd.java index b2fb411a4..9a25e6c13 100644 --- a/src/main/java/us/myles/ViaVersion/commands/defaultsubs/ReloadSubCmd.java +++ b/src/main/java/us/myles/ViaVersion/commands/defaultsubs/ReloadSubCmd.java @@ -20,7 +20,7 @@ public class ReloadSubCmd extends ViaSubCommand { public boolean execute(CommandSender sender, String[] args) { ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance(); - plugin.generateConfig(); + plugin.getConf().generateConfig(); sendMessage(sender, "&6Configuration successfully reloaded! Some features may need a restart."); return true; } diff --git a/src/main/java/us/myles/ViaVersion/handlers/ViaDecodeHandler.java b/src/main/java/us/myles/ViaVersion/handlers/ViaDecodeHandler.java index e8acbf654..0177dbd43 100644 --- a/src/main/java/us/myles/ViaVersion/handlers/ViaDecodeHandler.java +++ b/src/main/java/us/myles/ViaVersion/handlers/ViaDecodeHandler.java @@ -39,7 +39,7 @@ public class ViaDecodeHandler extends ByteToMessageDecoder { boolean second = info.incrementReceived(); // Check PPS if(second) { - if (((ViaVersionPlugin) ViaVersion.getConfig()).handlePPS(info)) + if (((ViaVersionPlugin) ViaVersion.getInstance()).handlePPS(info)) return; } diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/Protocol1_9TO1_8.java b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/Protocol1_9TO1_8.java index 82ef3e771..72a5aacce 100644 --- a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/Protocol1_9TO1_8.java +++ b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/Protocol1_9TO1_8.java @@ -102,9 +102,9 @@ public class Protocol1_9TO1_8 extends Protocol { plugin.getLogger().info("Enabling PaperSpigot patch: Fixes block placement."); Bukkit.getPluginManager().registerEvents(new PaperPatch(), plugin); } - if (plugin.getConfig().getBoolean("simulate-pt", true)) + if (plugin.getConf().isStimulatePlayerTick()) new ViaIdleThread(plugin.getPortedPlayers()).runTaskTimer(plugin, 1L, 1L); // Updates player's idle status - if (plugin.getConfig().getBoolean("item-cache", true)) { + if (plugin.getConf().isItemCache()) { new HandItemCache().runTaskTimerAsynchronously(plugin, 2L, 2L); // Updates player's items :) HandItemCache.CACHE = true; } diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java index d6fe76d5e..c2498a4ed 100644 --- a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java +++ b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java @@ -4,7 +4,6 @@ import io.netty.channel.ChannelHandlerContext; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; -import us.myles.ViaVersion.ViaVersionPlugin; import us.myles.ViaVersion.api.ViaVersion; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.protocols.base.ProtocolInfo; @@ -30,7 +29,7 @@ public class ViaIdleThread extends BukkitRunnable { private Method handleFlying; public ViaIdleThread(Map portedPlayers) { - USE_NMS = ((ViaVersionPlugin) ViaVersion.getInstance()).getConfig().getBoolean("nms-player-ticking", true); + USE_NMS = ViaVersion.getConfig().isNMSPlayerTicking(); this.portedPlayers = portedPlayers; Class idlePacketClass; diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/listeners/DeathListener.java b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/listeners/DeathListener.java index 64ba50d42..cccabf7fb 100644 --- a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/listeners/DeathListener.java +++ b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/listeners/DeathListener.java @@ -10,6 +10,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import us.myles.ViaVersion.ViaVersionPlugin; import us.myles.ViaVersion.api.PacketWrapper; +import us.myles.ViaVersion.api.ViaVersion; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.protocols.base.ProtocolInfo; @@ -22,7 +23,7 @@ public class DeathListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onDeath(PlayerDeathEvent e) { Player p = e.getEntity(); - if (plugin.isShowNewDeathMessages() && checkGamerule(p.getWorld()) && e.getDeathMessage() != null && checkPipeline(p)) { + if (ViaVersion.getConfig().isShowNewDeathMessages() && checkGamerule(p.getWorld()) && e.getDeathMessage() != null && checkPipeline(p)) { sendPacket(p, e.getDeathMessage()); } } diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/EntityTracker.java b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/EntityTracker.java index a53cf33d0..1438a4253 100644 --- a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/EntityTracker.java +++ b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/EntityTracker.java @@ -8,7 +8,6 @@ import lombok.Getter; import lombok.Setter; import org.bukkit.Material; import org.bukkit.entity.EntityType; -import us.myles.ViaVersion.ViaVersionPlugin; import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.ViaVersion; import us.myles.ViaVersion.api.boss.BossBar; @@ -148,7 +147,7 @@ public class EntityTracker extends StoredObject { if (metadata.getId() == 0) { // Byte byte data = (byte) metadata.getValue(); - if (entityID != getEntityID() && ((ViaVersionPlugin) ViaVersion.getInstance()).isShieldBlocking()) { + if (entityID != getEntityID() && ViaVersion.getConfig().isShieldBlocking()) { if ((data & 0x10) == 0x10) { if (validBlocking.contains(entityID)) { Item shield = new Item((short) 442, (byte) 1, (short) 0, null); @@ -160,7 +159,7 @@ public class EntityTracker extends StoredObject { } } } - if (type == EntityType.ARMOR_STAND && ((ViaVersionPlugin) ViaVersion.getInstance()).isHologramPatch()) { + if (type == EntityType.ARMOR_STAND && ViaVersion.getConfig().isHologramPatch()) { if (metadata.getId() == 0 && getMetaByIndex(metadataList, 10) != null) { Metadata meta = getMetaByIndex(metadataList, 10); //Only happens if the armorstand is small byte data = (byte) metadata.getValue(); @@ -175,7 +174,7 @@ public class EntityTracker extends StoredObject { Type.VAR_INT.write(buf, 0x25); // Relative Move Packet Type.VAR_INT.write(buf, entityID); buf.writeShort(0); - buf.writeShort((short) (128D * (((ViaVersionPlugin) ViaVersion.getInstance()).getHologramYOffset() * 32D))); + buf.writeShort((short) (128D * (ViaVersion.getConfig().getHologramYOffset() * 32D))); buf.writeShort(0); buf.writeBoolean(true); getUser().sendRawPacket(buf, false); @@ -187,7 +186,7 @@ public class EntityTracker extends StoredObject { } UUID uuid = getUser().get(ProtocolInfo.class).getUuid(); // Boss bar - if (((ViaVersionPlugin) ViaVersion.getInstance()).isBossbarPatch()) { + if (ViaVersion.getConfig().isBossbarPatch()) { if (type == EntityType.ENDER_DRAGON || type == EntityType.WITHER) { if (metadata.getId() == 2) { BossBar bar = bossBarMap.get(entityID); @@ -201,7 +200,7 @@ public class EntityTracker extends StoredObject { } else { bar.setTitle(title); } - } else if (metadata.getId() == 6 && !((ViaVersionPlugin) ViaVersion.getInstance()).isBossbarAntiflicker()) { // If anti flicker is enabled, don't update health + } else if (metadata.getId() == 6 && !ViaVersion.getConfig().isBossbarAntiflicker()) { // If anti flicker is enabled, don't update health BossBar bar = bossBarMap.get(entityID); // Make health range between 0 and 1 float maxHealth = type == EntityType.ENDER_DRAGON ? 200.0f : 300.0f; diff --git a/src/main/java/us/myles/ViaVersion/update/UpdateListener.java b/src/main/java/us/myles/ViaVersion/update/UpdateListener.java index d5e0fa5e3..965e142ac 100644 --- a/src/main/java/us/myles/ViaVersion/update/UpdateListener.java +++ b/src/main/java/us/myles/ViaVersion/update/UpdateListener.java @@ -5,6 +5,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import us.myles.ViaVersion.ViaVersionPlugin; +import us.myles.ViaVersion.api.ViaVersion; @RequiredArgsConstructor public class UpdateListener implements Listener { @@ -14,7 +15,7 @@ public class UpdateListener implements Listener { @EventHandler public void onJoin(PlayerJoinEvent e) { if (e.getPlayer().hasPermission("viaversion.update") - && plugin.isCheckForUpdates()) { + && ViaVersion.getConfig().isCheckForUpdates()) { UpdateUtil.sendUpdateMessage(e.getPlayer().getUniqueId(), plugin); } }