mirror of
https://github.com/ViaVersion/ViaRewind-Legacy-Support.git
synced 2025-02-15 00:51:37 +01:00
VersionInformer
This commit is contained in:
parent
fed968d4f9
commit
292a40a31f
@ -3,18 +3,28 @@ package de.gerrygames.viarewind.legacysupport;
|
|||||||
import de.gerrygames.viarewind.legacysupport.injector.LilyPadFixer;
|
import de.gerrygames.viarewind.legacysupport.injector.LilyPadFixer;
|
||||||
import de.gerrygames.viarewind.legacysupport.listener.BrewingListener;
|
import de.gerrygames.viarewind.legacysupport.listener.BrewingListener;
|
||||||
import de.gerrygames.viarewind.legacysupport.listener.EnchantingListener;
|
import de.gerrygames.viarewind.legacysupport.listener.EnchantingListener;
|
||||||
|
import de.gerrygames.viarewind.legacysupport.versioninfo.VersionInformer;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
public class BukkitPlugin extends JavaPlugin {
|
public class BukkitPlugin extends JavaPlugin {
|
||||||
|
private static BukkitPlugin instance;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
instance = this;
|
||||||
saveDefaultConfig();
|
saveDefaultConfig();
|
||||||
|
getConfig().options().copyDefaults(true);
|
||||||
|
saveConfig();
|
||||||
FileConfiguration config = getConfig();
|
FileConfiguration config = getConfig();
|
||||||
if (config.getBoolean("enchanting-gui-fix")) Bukkit.getPluginManager().registerEvents(new EnchantingListener(), this);
|
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("brewing-stand-gui-fix")) Bukkit.getPluginManager().registerEvents(new BrewingListener(), this);
|
||||||
if (config.getBoolean("lily-pad-fix")) LilyPadFixer.fix();
|
if (config.getBoolean("lily-pad-fix")) LilyPadFixer.fix();
|
||||||
|
if (config.getBoolean("versioninfo.active")) new VersionInformer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BukkitPlugin getInstance() {
|
||||||
|
return instance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,14 @@
|
|||||||
|
#Automatically put blaze powder in brewing stands for clients lower than 1.9
|
||||||
brewing-stand-gui-fix: true
|
brewing-stand-gui-fix: true
|
||||||
|
#Automatically put lapis lazuli in enchanting tables for clients lower than 1.8
|
||||||
enchanting-gui-fix: true
|
enchanting-gui-fix: true
|
||||||
vehicle-fix: true
|
#fix the lily pad bounding box to prevent clients lower than 1.9 from glitching
|
||||||
lily-pad-fix: true
|
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.'
|
Loading…
Reference in New Issue
Block a user