VersionInformer

This commit is contained in:
Gerrygames 2018-02-06 15:45:47 +01:00
parent fed968d4f9
commit 292a40a31f
3 changed files with 64 additions and 2 deletions

View File

@ -3,18 +3,28 @@ package de.gerrygames.viarewind.legacysupport;
import de.gerrygames.viarewind.legacysupport.injector.LilyPadFixer;
import de.gerrygames.viarewind.legacysupport.listener.BrewingListener;
import de.gerrygames.viarewind.legacysupport.listener.EnchantingListener;
import de.gerrygames.viarewind.legacysupport.versioninfo.VersionInformer;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
public class BukkitPlugin extends JavaPlugin {
private static BukkitPlugin instance;
@Override
public void onEnable() {
instance = this;
saveDefaultConfig();
getConfig().options().copyDefaults(true);
saveConfig();
FileConfiguration config = getConfig();
if (config.getBoolean("enchanting-gui-fix")) Bukkit.getPluginManager().registerEvents(new EnchantingListener(), this);
if (config.getBoolean("brewing-stand-gui-fix")) Bukkit.getPluginManager().registerEvents(new BrewingListener(), this);
if (config.getBoolean("lily-pad-fix")) LilyPadFixer.fix();
if (config.getBoolean("versioninfo.active")) new VersionInformer();
}
public static BukkitPlugin getInstance() {
return instance;
}
}

View File

@ -0,0 +1,42 @@
package de.gerrygames.viarewind.legacysupport.versioninfo;
import de.gerrygames.viarewind.legacysupport.BukkitPlugin;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import us.myles.ViaVersion.api.Via;
public class VersionInformer implements Listener {
private String message;
private int maxVersion;
public VersionInformer() {
message = BukkitPlugin.getInstance().getConfig().getString("versioninfo.message");
message = ChatColor.translateAlternateColorCodes('&', message);
message = message.replace("%version%", Bukkit.getVersion().split(" ")[2].replace(")", ""));
maxVersion = BukkitPlugin.getInstance().getConfig().getInt("versioninfo.max-version");
String interval = BukkitPlugin.getInstance().getConfig().getString("versioninfo.interval");
if (interval.equalsIgnoreCase("JOIN")) {
Bukkit.getPluginManager().registerEvents(this, BukkitPlugin.getInstance());
} else {
long ticks = Long.parseLong(interval);
Bukkit.getScheduler().runTaskTimer(BukkitPlugin.getInstance(), () -> {
Bukkit.getOnlinePlayers().forEach(player -> {
int version = Via.getAPI().getPlayerVersion(player);
if (version>maxVersion) return;
player.sendMessage(message);
});
}, ticks, ticks);
}
}
@EventHandler
public void onJoin(PlayerJoinEvent e) {
int version = Via.getAPI().getPlayerVersion(e.getPlayer());
if (version>maxVersion) return;
e.getPlayer().sendMessage(message);
}
}

View File

@ -1,4 +1,14 @@
#Automatically put blaze powder in brewing stands for clients lower than 1.9
brewing-stand-gui-fix: true
#Automatically put lapis lazuli in enchanting tables for clients lower than 1.8
enchanting-gui-fix: true
vehicle-fix: true
lily-pad-fix: true
#fix the lily pad bounding box to prevent clients lower than 1.9 from glitching
lily-pad-fix: true
#Inform your players that they are using an outdated minecraft version
#max-version specifies the maximum protocol version of players being notified. See http://wiki.vg/Protocol_version_numbers for protocol version numbers
#interval can be set to JOIN to notify players when joining the server. If you set it to any integer number it will broadcast the message every x ticks.
versioninfo:
active: false
max-version: 47
interval: JOIN
message: '&7[&6Info&7] This server is running Minecraft %version%. The best gameplay experience is only guaranteed if you are using this version.'