Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-03 14:50:30 +01:00
Merge branch 'master' of https://github.com/MylesIsCool/ViaVersion into 1.10
Dieser Commit ist enthalten in:
Commit
264a21d092
157
src/main/java/us/myles/ViaVersion/ViaConfig.java
Normale Datei
157
src/main/java/us/myles/ViaVersion/ViaConfig.java
Normale Datei
@ -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);
|
||||||
|
}
|
||||||
|
}
|
@ -5,6 +5,7 @@ import io.netty.channel.ChannelFuture;
|
|||||||
import io.netty.channel.ChannelHandler;
|
import io.netty.channel.ChannelHandler;
|
||||||
import io.netty.channel.ChannelInitializer;
|
import io.netty.channel.ChannelInitializer;
|
||||||
import io.netty.channel.socket.SocketChannel;
|
import io.netty.channel.socket.SocketChannel;
|
||||||
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
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.Pair;
|
||||||
import us.myles.ViaVersion.api.ViaVersion;
|
import us.myles.ViaVersion.api.ViaVersion;
|
||||||
import us.myles.ViaVersion.api.ViaVersionAPI;
|
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.BossBar;
|
||||||
import us.myles.ViaVersion.api.boss.BossColor;
|
import us.myles.ViaVersion.api.boss.BossColor;
|
||||||
import us.myles.ViaVersion.api.boss.BossStyle;
|
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.protocols.base.ProtocolInfo;
|
||||||
import us.myles.ViaVersion.update.UpdateListener;
|
import us.myles.ViaVersion.update.UpdateListener;
|
||||||
import us.myles.ViaVersion.update.UpdateUtil;
|
import us.myles.ViaVersion.update.UpdateUtil;
|
||||||
import us.myles.ViaVersion.util.Configuration;
|
|
||||||
import us.myles.ViaVersion.util.ListWrapper;
|
import us.myles.ViaVersion.util.ListWrapper;
|
||||||
import us.myles.ViaVersion.util.ReflectionUtil;
|
import us.myles.ViaVersion.util.ReflectionUtil;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -40,7 +38,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVersionConfig {
|
public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI {
|
||||||
|
|
||||||
private final Map<UUID, UserConnection> portedPlayers = new ConcurrentHashMap<>();
|
private final Map<UUID, UserConnection> portedPlayers = new ConcurrentHashMap<>();
|
||||||
private List<ChannelFuture> injectedFutures = new ArrayList<>();
|
private List<ChannelFuture> injectedFutures = new ArrayList<>();
|
||||||
@ -50,12 +48,14 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe
|
|||||||
private boolean compatSpigotBuild = false;
|
private boolean compatSpigotBuild = false;
|
||||||
private boolean spigot = true;
|
private boolean spigot = true;
|
||||||
private boolean lateBind = false;
|
private boolean lateBind = false;
|
||||||
|
@Getter
|
||||||
|
private ViaConfig conf;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
ViaVersion.setInstance(this);
|
|
||||||
// Config magic
|
// Config magic
|
||||||
generateConfig();
|
conf = new ViaConfig(this);
|
||||||
|
ViaVersion.setInstance(this);
|
||||||
// Handle reloads
|
// Handle reloads
|
||||||
if (System.getProperty("ViaVersion") != null) {
|
if (System.getProperty("ViaVersion") != null) {
|
||||||
if (Bukkit.getPluginManager().getPlugin("ProtocolLib") != null) {
|
if (Bukkit.getPluginManager().getPlugin("ProtocolLib") != null) {
|
||||||
@ -94,7 +94,7 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe
|
|||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
if (lateBind)
|
if (lateBind)
|
||||||
injectPacketHandler();
|
injectPacketHandler();
|
||||||
if (isCheckForUpdates())
|
if (conf.isCheckForUpdates())
|
||||||
UpdateUtil.sendUpdateMessage(this);
|
UpdateUtil.sendUpdateMessage(this);
|
||||||
// Gather version :)
|
// Gather version :)
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
|
||||||
@ -122,7 +122,7 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe
|
|||||||
ProtocolRegistry.registerListeners();
|
ProtocolRegistry.registerListeners();
|
||||||
|
|
||||||
// Warn them if they have anti-xray on and they aren't using spigot
|
// 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!");
|
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 {
|
public Object getServerConnection() throws Exception {
|
||||||
Class<?> serverClazz = ReflectionUtil.nms("MinecraftServer");
|
Class<?> serverClazz = ReflectionUtil.nms("MinecraftServer");
|
||||||
Object server = ReflectionUtil.invokeStatic(serverClazz, "getServer");
|
Object server = ReflectionUtil.invokeStatic(serverClazz, "getServer");
|
||||||
@ -430,100 +408,6 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaVersionAPI, ViaVe
|
|||||||
return this.spigot;
|
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) {
|
public void addPortedClient(UserConnection info) {
|
||||||
portedPlayers.put(info.get(ProtocolInfo.class).getUuid(), 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) {
|
public boolean handlePPS(UserConnection info) {
|
||||||
// Max PPS Checker
|
// Max PPS Checker
|
||||||
if (getMaxPPS() > 0) {
|
if (conf.getMaxPPS() > 0) {
|
||||||
if (info.getPacketsPerSecond() >= getMaxPPS()) {
|
if (info.getPacketsPerSecond() >= conf.getMaxPPS()) {
|
||||||
info.disconnect(getMaxPPSKickMessage());
|
info.disconnect(conf.getMaxPPSKickMessage());
|
||||||
return true; // don't send current packet
|
return true; // don't send current packet
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tracking PPS Checker
|
// Tracking PPS Checker
|
||||||
if (getMaxWarnings() > 0 && getTrackingPeriod() > 0) {
|
if (conf.getMaxWarnings() > 0 && conf.getTrackingPeriod() > 0) {
|
||||||
if (info.getSecondsObserved() > getTrackingPeriod()) {
|
if (info.getSecondsObserved() > conf.getTrackingPeriod()) {
|
||||||
// Reset
|
// Reset
|
||||||
info.setWarnings(0);
|
info.setWarnings(0);
|
||||||
info.setSecondsObserved(1);
|
info.setSecondsObserved(1);
|
||||||
} else {
|
} else {
|
||||||
info.setSecondsObserved(info.getSecondsObserved() + 1);
|
info.setSecondsObserved(info.getSecondsObserved() + 1);
|
||||||
if (info.getPacketsPerSecond() >= getWarningPPS()) {
|
if (info.getPacketsPerSecond() >= conf.getWarningPPS()) {
|
||||||
info.setWarnings(info.getWarnings() + 1);
|
info.setWarnings(info.getWarnings() + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info.getWarnings() >= getMaxWarnings()) {
|
if (info.getWarnings() >= conf.getMaxWarnings()) {
|
||||||
info.disconnect(getMaxWarningsKickMessage());
|
info.disconnect(conf.getMaxWarningsKickMessage());
|
||||||
return true; // don't send current packet
|
return true; // don't send current packet
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,6 @@ public class ViaVersion {
|
|||||||
public static void setInstance(ViaVersionPlugin plugin) {
|
public static void setInstance(ViaVersionPlugin plugin) {
|
||||||
Validate.isTrue(instance == null, "Instance is already set");
|
Validate.isTrue(instance == null, "Instance is already set");
|
||||||
ViaVersion.instance = plugin;
|
ViaVersion.instance = plugin;
|
||||||
ViaVersion.config = plugin;
|
ViaVersion.config = plugin.getConf();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,6 @@ package us.myles.ViaVersion.api;
|
|||||||
|
|
||||||
public interface ViaVersionConfig {
|
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
|
* Get if the plugin should check for updates
|
||||||
*
|
*
|
||||||
@ -158,4 +151,25 @@ public interface ViaVersionConfig {
|
|||||||
* @return If true, enabled
|
* @return If true, enabled
|
||||||
*/
|
*/
|
||||||
boolean isSendSupportedVersions();
|
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();
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ public class AutoTeamSubCmd extends ViaSubCommand {
|
|||||||
public boolean execute(CommandSender sender, String[] args) {
|
public boolean execute(CommandSender sender, String[] args) {
|
||||||
ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance();
|
ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance();
|
||||||
|
|
||||||
boolean newValue = !plugin.isAutoTeam();
|
boolean newValue = !ViaVersion.getConfig().isAutoTeam();
|
||||||
plugin.getConfig().set("auto-team", newValue);
|
plugin.getConfig().set("auto-team", newValue);
|
||||||
plugin.saveConfig();
|
plugin.saveConfig();
|
||||||
sendMessage(sender, "&6We will %s", (newValue ? "&aautomatically team players" : "&cno longer auto team players"));
|
sendMessage(sender, "&6We will %s", (newValue ? "&aautomatically team players" : "&cno longer auto team players"));
|
||||||
|
@ -20,7 +20,7 @@ public class DontBugMeSubCmd extends ViaSubCommand {
|
|||||||
public boolean execute(CommandSender sender, String[] args) {
|
public boolean execute(CommandSender sender, String[] args) {
|
||||||
ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance();
|
ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance();
|
||||||
|
|
||||||
boolean newValue = !plugin.isCheckForUpdates();
|
boolean newValue = !ViaVersion.getConfig().isCheckForUpdates();
|
||||||
plugin.getConfig().set("checkforupdates", newValue);
|
plugin.getConfig().set("checkforupdates", newValue);
|
||||||
plugin.saveConfig();
|
plugin.saveConfig();
|
||||||
sendMessage(sender, "&6We will %snotify you about updates.", (newValue ? "&a" : "&cnot "));
|
sendMessage(sender, "&6We will %snotify you about updates.", (newValue ? "&a" : "&cnot "));
|
||||||
|
@ -20,7 +20,7 @@ public class ReloadSubCmd extends ViaSubCommand {
|
|||||||
public boolean execute(CommandSender sender, String[] args) {
|
public boolean execute(CommandSender sender, String[] args) {
|
||||||
ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance();
|
ViaVersionPlugin plugin = (ViaVersionPlugin) ViaVersion.getInstance();
|
||||||
|
|
||||||
plugin.generateConfig();
|
plugin.getConf().generateConfig();
|
||||||
sendMessage(sender, "&6Configuration successfully reloaded! Some features may need a restart.");
|
sendMessage(sender, "&6Configuration successfully reloaded! Some features may need a restart.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ public class ViaDecodeHandler extends ByteToMessageDecoder {
|
|||||||
boolean second = info.incrementReceived();
|
boolean second = info.incrementReceived();
|
||||||
// Check PPS
|
// Check PPS
|
||||||
if(second) {
|
if(second) {
|
||||||
if (((ViaVersionPlugin) ViaVersion.getConfig()).handlePPS(info))
|
if (((ViaVersionPlugin) ViaVersion.getInstance()).handlePPS(info))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,9 +102,9 @@ public class Protocol1_9TO1_8 extends Protocol {
|
|||||||
plugin.getLogger().info("Enabling PaperSpigot patch: Fixes block placement.");
|
plugin.getLogger().info("Enabling PaperSpigot patch: Fixes block placement.");
|
||||||
Bukkit.getPluginManager().registerEvents(new PaperPatch(), plugin);
|
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
|
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 :)
|
new HandItemCache().runTaskTimerAsynchronously(plugin, 2L, 2L); // Updates player's items :)
|
||||||
HandItemCache.CACHE = true;
|
HandItemCache.CACHE = true;
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import io.netty.channel.ChannelHandlerContext;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import us.myles.ViaVersion.ViaVersionPlugin;
|
|
||||||
import us.myles.ViaVersion.api.ViaVersion;
|
import us.myles.ViaVersion.api.ViaVersion;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
||||||
@ -30,7 +29,7 @@ public class ViaIdleThread extends BukkitRunnable {
|
|||||||
private Method handleFlying;
|
private Method handleFlying;
|
||||||
|
|
||||||
public ViaIdleThread(Map<UUID, UserConnection> portedPlayers) {
|
public ViaIdleThread(Map<UUID, UserConnection> portedPlayers) {
|
||||||
USE_NMS = ((ViaVersionPlugin) ViaVersion.getInstance()).getConfig().getBoolean("nms-player-ticking", true);
|
USE_NMS = ViaVersion.getConfig().isNMSPlayerTicking();
|
||||||
|
|
||||||
this.portedPlayers = portedPlayers;
|
this.portedPlayers = portedPlayers;
|
||||||
Class<?> idlePacketClass;
|
Class<?> idlePacketClass;
|
||||||
|
@ -10,6 +10,7 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
import us.myles.ViaVersion.ViaVersionPlugin;
|
import us.myles.ViaVersion.ViaVersionPlugin;
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
|
import us.myles.ViaVersion.api.ViaVersion;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.type.Type;
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
||||||
@ -22,7 +23,7 @@ public class DeathListener implements Listener {
|
|||||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
||||||
public void onDeath(PlayerDeathEvent e) {
|
public void onDeath(PlayerDeathEvent e) {
|
||||||
Player p = e.getEntity();
|
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());
|
sendPacket(p, e.getDeathMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ import lombok.Getter;
|
|||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import us.myles.ViaVersion.ViaVersionPlugin;
|
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.ViaVersion;
|
import us.myles.ViaVersion.api.ViaVersion;
|
||||||
import us.myles.ViaVersion.api.boss.BossBar;
|
import us.myles.ViaVersion.api.boss.BossBar;
|
||||||
@ -148,7 +147,7 @@ public class EntityTracker extends StoredObject {
|
|||||||
if (metadata.getId() == 0) {
|
if (metadata.getId() == 0) {
|
||||||
// Byte
|
// Byte
|
||||||
byte data = (byte) metadata.getValue();
|
byte data = (byte) metadata.getValue();
|
||||||
if (entityID != getEntityID() && ((ViaVersionPlugin) ViaVersion.getInstance()).isShieldBlocking()) {
|
if (entityID != getEntityID() && ViaVersion.getConfig().isShieldBlocking()) {
|
||||||
if ((data & 0x10) == 0x10) {
|
if ((data & 0x10) == 0x10) {
|
||||||
if (validBlocking.contains(entityID)) {
|
if (validBlocking.contains(entityID)) {
|
||||||
Item shield = new Item((short) 442, (byte) 1, (short) 0, null);
|
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) {
|
if (metadata.getId() == 0 && getMetaByIndex(metadataList, 10) != null) {
|
||||||
Metadata meta = getMetaByIndex(metadataList, 10); //Only happens if the armorstand is small
|
Metadata meta = getMetaByIndex(metadataList, 10); //Only happens if the armorstand is small
|
||||||
byte data = (byte) metadata.getValue();
|
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, 0x25); // Relative Move Packet
|
||||||
Type.VAR_INT.write(buf, entityID);
|
Type.VAR_INT.write(buf, entityID);
|
||||||
buf.writeShort(0);
|
buf.writeShort(0);
|
||||||
buf.writeShort((short) (128D * (((ViaVersionPlugin) ViaVersion.getInstance()).getHologramYOffset() * 32D)));
|
buf.writeShort((short) (128D * (ViaVersion.getConfig().getHologramYOffset() * 32D)));
|
||||||
buf.writeShort(0);
|
buf.writeShort(0);
|
||||||
buf.writeBoolean(true);
|
buf.writeBoolean(true);
|
||||||
getUser().sendRawPacket(buf, false);
|
getUser().sendRawPacket(buf, false);
|
||||||
@ -187,7 +186,7 @@ public class EntityTracker extends StoredObject {
|
|||||||
}
|
}
|
||||||
UUID uuid = getUser().get(ProtocolInfo.class).getUuid();
|
UUID uuid = getUser().get(ProtocolInfo.class).getUuid();
|
||||||
// Boss bar
|
// Boss bar
|
||||||
if (((ViaVersionPlugin) ViaVersion.getInstance()).isBossbarPatch()) {
|
if (ViaVersion.getConfig().isBossbarPatch()) {
|
||||||
if (type == EntityType.ENDER_DRAGON || type == EntityType.WITHER) {
|
if (type == EntityType.ENDER_DRAGON || type == EntityType.WITHER) {
|
||||||
if (metadata.getId() == 2) {
|
if (metadata.getId() == 2) {
|
||||||
BossBar bar = bossBarMap.get(entityID);
|
BossBar bar = bossBarMap.get(entityID);
|
||||||
@ -201,7 +200,7 @@ public class EntityTracker extends StoredObject {
|
|||||||
} else {
|
} else {
|
||||||
bar.setTitle(title);
|
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);
|
BossBar bar = bossBarMap.get(entityID);
|
||||||
// Make health range between 0 and 1
|
// Make health range between 0 and 1
|
||||||
float maxHealth = type == EntityType.ENDER_DRAGON ? 200.0f : 300.0f;
|
float maxHealth = type == EntityType.ENDER_DRAGON ? 200.0f : 300.0f;
|
||||||
|
@ -5,6 +5,7 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import us.myles.ViaVersion.ViaVersionPlugin;
|
import us.myles.ViaVersion.ViaVersionPlugin;
|
||||||
|
import us.myles.ViaVersion.api.ViaVersion;
|
||||||
|
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class UpdateListener implements Listener {
|
public class UpdateListener implements Listener {
|
||||||
@ -14,7 +15,7 @@ public class UpdateListener implements Listener {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onJoin(PlayerJoinEvent e) {
|
public void onJoin(PlayerJoinEvent e) {
|
||||||
if (e.getPlayer().hasPermission("viaversion.update")
|
if (e.getPlayer().hasPermission("viaversion.update")
|
||||||
&& plugin.isCheckForUpdates()) {
|
&& ViaVersion.getConfig().isCheckForUpdates()) {
|
||||||
UpdateUtil.sendUpdateMessage(e.getPlayer().getUniqueId(), plugin);
|
UpdateUtil.sendUpdateMessage(e.getPlayer().getUniqueId(), plugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren