fix: updated ping command to work for mc 26.1.2

This commit is contained in:
Tronax 2026-05-30 22:58:14 +02:00
parent 197f9145b9
commit ae06f1997b
2 changed files with 49 additions and 54 deletions

29
pom.xml
View file

@ -6,13 +6,13 @@
<groupId>xyz.tronax</groupId>
<artifactId>ZalmikLobby</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.0</version>
<packaging>jar</packaging>
<name>ZalmikLobby</name>
<properties>
<java.version>1.8</java.version>
<java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
@ -21,8 +21,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<version>3.13.0</version> <configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
@ -30,8 +29,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<version>3.6.0</version> <executions>
<execution>
<phase>package</phase>
<goals>
@ -51,26 +49,17 @@
<repositories>
<repository>
<id>spigotmc-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
<id>papermc</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.20.4-R0.1-SNAPSHOT</version>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.20.4-R0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View file

@ -1,54 +1,60 @@
package xyz.tronax.zalmiklobby.commands;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import xyz.tronax.zalmiklobby.Main;
public class CMD_ping implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(!(sender instanceof Player)) {
// Console
// 1. Fall: Zu viele Argumente (Gilt für Console und Player)
if (args.length > 1) {
sender.sendMessage(MiniMessage.miniMessage().deserialize(Main.prefix + " <red>Zu viele Argumente!"));
return true;
}
// 2. Fall: Kein Argument angegeben
if (args.length == 0) {
sender.sendMessage(Main.prefix + " §cBitte nutze /ping [Spieler]");
} else if(args.length == 1) {
Player t = (Player) Bukkit.getPlayer(args[0]);
if(t == null) {
sender.sendMessage(Main.prefix + " §cDer Spieler §4§l" + args[0] + "§r §cist nicht online!");
} else {
//sender.sendMessage(Main.prefix + "§e§l" + t.getName() + " §r§7's Ping: §a§l" + ((CraftPlayer) t).getHandle().ping + " §a§lms.");
}
} else {
sender.sendMessage(Main.prefix + " §cZu viele Argumente!");
}
} else {
// Player
if (sender instanceof Player) {
Player p = (Player) sender;
if(args.length == 0) {
//p.sendMessage(Main.prefix + " §7Dein Ping: §a§l" + ((CraftPlayer) p).getHandle().ping + " §a§lms.");
} else if(args.length == 1) {
Player t = (Player) Bukkit.getPlayer(args[0]);
sender.sendMessage(MiniMessage.miniMessage().deserialize(
Main.prefix + " <gray>Dein Ping: <green><bold>" + p.getPing() + " ms."
));
} else {
// Konsole hat keinen eigenen Ping
sender.sendMessage(MiniMessage.miniMessage().deserialize(Main.prefix + " <red>Bitte nutze /ping [Spieler]"));
}
return true;
}
// 3. Fall: Genau 1 Argument (/ping [Spieler])
Player t = Bukkit.getPlayer(args[0]); // Kein Cast nötig
if (t == null) {
p.sendMessage(Main.prefix + " §cDer Spieler §4§l" + args[0] + "§r §cist nicht online!");
} else if(t == p) {
// p.sendMessage(Main.prefix + " §7Dein Ping: §a§l" + ((CraftPlayer) p).getHandle().ping + " §a§lms.");
sender.sendMessage(MiniMessage.miniMessage().deserialize(
Main.prefix + " <red>Der Spieler <dark_red><bold>" + args[0] + "</bold><relative> ist nicht online!"
));
return true;
}
// Prüfen, ob der Sender sich selbst abfragt (Nur relevant, wenn der Sender ein Spieler ist)
if (sender instanceof Player && t.getUniqueId().equals(((Player) sender).getUniqueId())) {
sender.sendMessage(MiniMessage.miniMessage().deserialize(
Main.prefix + " <gray>Dein Ping: <green><bold>" + t.getPing() + " ms."
));
} else {
// p.sendMessage(Main.prefix + "§e§l" + t.getName() + " §r§7's Ping: §a§l" + ((CraftPlayer) t).getHandle().ping + " §a§lms.");
}
} else {
p.sendMessage(Main.prefix + " §cZu viele Argumente!");
// Fremder Ping (Für Konsole oder anderen Spieler)
sender.sendMessage(MiniMessage.miniMessage().deserialize(
Main.prefix + " <yellow><bold>" + t.getName() + "</bold><reset><gray>'s Ping: <green><bold>" + t.getPing() + " ms."
));
}
return true;
}
return false;
}
}