diff --git a/patches/server/0003-Add-MineHQ-versioning.patch b/patches/server/0003-Add-MineHQ-versioning.patch new file mode 100644 index 0000000..75f9ed9 --- /dev/null +++ b/patches/server/0003-Add-MineHQ-versioning.patch @@ -0,0 +1,22 @@ +From 657de1cccf1830ce29348032fad1e6c0da7dec7b Mon Sep 17 00:00:00 2001 +From: virtualWinter +Date: Fri, 21 Jul 2023 06:50:29 +0300 +Subject: [PATCH] Add MineHQ versioning + + +diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java +index 3a4b1424..df01140d 100644 +--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java ++++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java +@@ -11,7 +11,7 @@ public final class Versioning { + public static String getBukkitVersion() { + String result = "Unknown-Version"; + +- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.github.paperspigot/paperspigot-api/pom.properties"); ++ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/net.hylist/mspigot-api/pom.properties"); + Properties properties = new Properties(); + + if (stream != null) { +-- +2.41.0.windows.1 + diff --git a/patches/server/0004-tps-command.patch b/patches/server/0004-tps-command.patch new file mode 100644 index 0000000..b963827 --- /dev/null +++ b/patches/server/0004-tps-command.patch @@ -0,0 +1,116 @@ +From da24e9809c9ee2254da026445735ee3dbe74aaf7 Mon Sep 17 00:00:00 2001 +From: virtualWinter +Date: Fri, 21 Jul 2023 07:10:18 +0300 +Subject: [PATCH] tps command + + +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index b400ce04..66334c12 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -117,6 +117,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs + public int autosavePeriod; + // CraftBukkit end + ++ + public MinecraftServer(OptionSet options, Proxy proxy, File file1) { + io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable + this.e = proxy; +diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java +index 21fd7efc..eef3e0aa 100644 +--- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java ++++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java +@@ -1,14 +1,15 @@ + package org.spigotmc; + ++import net.minecraft.server.MinecraftServer; ++import org.apache.commons.lang.StringUtils; ++import org.bukkit.Bukkit; + import org.bukkit.ChatColor; + import org.bukkit.command.Command; + import org.bukkit.command.CommandSender; + +-public class TicksPerSecondCommand extends Command +-{ ++public class TicksPerSecondCommand extends Command { + +- public TicksPerSecondCommand(String name) +- { ++ public TicksPerSecondCommand(String name) { + super( name ); + this.description = "Gets the current ticks per second for the server"; + this.usageMessage = "/tps"; +@@ -16,28 +17,55 @@ public class TicksPerSecondCommand extends Command + } + + @Override +- public boolean execute(CommandSender sender, String currentAlias, String[] args) +- { +- if ( !testPermission( sender ) ) +- { ++ public boolean execute(CommandSender sender, String currentAlias, String[] args) { ++ if ( !testPermission( sender ) ) { + return true; + } + +- // PaperSpigot start - Further improve tick handling +- double[] tps = org.bukkit.Bukkit.spigot().getTPS(); +- String[] tpsAvg = new String[tps.length]; ++ if (sender.hasPermission("bukkit.command.tps.advanced")) { ++ double[] tps = org.bukkit.Bukkit.spigot().getTPS(); ++ String[] tpsAvg = new String[tps.length]; + +- for ( int i = 0; i < tps.length; i++) { +- tpsAvg[i] = format( tps[i] ); +- } +- sender.sendMessage( ChatColor.GOLD + "TPS from last 1m, 5m, 15m: " + org.apache.commons.lang.StringUtils.join(tpsAvg, ", ")); ++ for (int i = 0; i < tps.length; i++) { ++ tpsAvg[i] = formatAdvancedTps(tps[i]); ++ } ++ ++ sender.sendMessage(ChatColor.GOLD + "TPS from last 1m, 5m, 15m: " + StringUtils.join(tpsAvg, ", ")); ++ //sender.sendMessage(ChatColor.GOLD + "Full tick: " + formatTickTime(MinecraftServer.getServer().lastTickTime) + " ms"); ++ sender.sendMessage(ChatColor.GOLD + "Online players: " + ChatColor.GREEN + Bukkit.getOnlinePlayers().size() + "/" + Bukkit.getMaxPlayers()); ++ } else { ++ double tps = Bukkit.spigot().getTPS()[1]; ++ ++ StringBuilder tpsBuilder = new StringBuilder(); ++ ++ tpsBuilder.append(ChatColor.GOLD).append("Server performance: "); ++ tpsBuilder.append(formatBasicTps(tps)).append(ChatColor.GOLD).append("/20.0"); ++ tpsBuilder.append(" [").append(tps > 18.0 ? ChatColor.GREEN : tps > 16.0 ? ChatColor.YELLOW : ChatColor.RED); ++ ++ int i = 0; ++ ++ for (; i < Math.round(tps); i++) { ++ tpsBuilder.append("|"); ++ } + ++ tpsBuilder.append(ChatColor.DARK_GRAY); ++ ++ for (; i < 20; i++) { ++ tpsBuilder.append("|"); ++ } ++ } + return true; + } + +- private static String format(double tps) // PaperSpigot - made static +- { +- return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString() +- + ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 ); ++ private static String formatTickTime(double time) { ++ return (time < 40.0D ? ChatColor.GREEN : time < 60.0D ? ChatColor.YELLOW : ChatColor.RED).toString() + Math.round(time * 10.0D) / 10.0D; ++ } ++ ++ private static String formatAdvancedTps(double tps) { ++ return (tps > 18.0 ? ChatColor.GREEN : tps > 16.0 ? ChatColor.YELLOW : ChatColor.RED).toString() + Math.min(Math.round(tps * 100.0D) / 100.0, 20.0); ++ } ++ ++ private String formatBasicTps(double tps) { ++ return (tps > 18.0 ? ChatColor.GREEN : tps > 16.0 ? ChatColor.YELLOW : ChatColor.RED).toString() + Math.min(Math.round(tps * 10.0D) / 10.0D, 20.0D); + } + } +-- +2.41.0.windows.1 +