• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot /version meldung ändern bzw in eigenem Command ausgeben

D

deleted209242

Guest
Hallo Foren User,

ich wollte gerne eine eigene meldung für den /version Command ausgeben lassen, zudem aber in einem anderen Command die normale /version nachricht ausgeben lassen, bitte nicht fragen warum, ist halt so.

Dafür müsste ich aber wissen wie ich das ganze anstelle, also wie kann ich bei /version einen anderen Text ausgeben und wie kann ich bei z.B. /normalversion die eigentliche nachricht ausgen? bzw. wie bekomme ich die?

mfg Sullaysur
 

SilberRegen

Workaholic
Registriert
23 März 2012
Beiträge
889
Alter
35
Diamanten
303
Minecraft
SilberRegen
Abhängig davon ob du nur ein Alias möchtest, oder das ganze auch an Permissions/andere Bedingungen verknüpft sein soll, gibt es verschiedene Ansätze zu deinem Problem.
Möchtest du dazu tatsächlich etwas programmieren oder suchst du eher nach einer fertigen Lösung?
 
D

deleted209242

Guest
Ich würde das ganze gerne selber in mein Plugin einbauen und nicht irgend ein fertigesd teil aus dem Internet runterladen.

Ich habe schon etwas gegoogelt, wobei ich nur folgendes gefunden habe: Bukkit.getversion(); oder Bukkit.getbukkitversion(); funktioniert aber beides nicht, zudem habe ich schon folgende klasse für den Command angelegt:
java:
public class Version implements CommandExecutor{
   
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if ((sender instanceof ConsoleCommandSender)) {
            sender.sendMessage(Main.noconsole);
            return true;
        }
        Player p = (Player) sender;
        if(cmd.getName().equalsIgnoreCase("version")) {
            if(p.hasPermission("Server.version")) {
                /gebe den original Text von /version aus!
            } else {
                p.sendMessage(Main.prefix + "§6ServerVersion: §fDer Server benutzt die Version 1.13.2!");
            }
        } else if(cmd.getName().equalsIgnoreCase("ver")) {
            if(p.hasPermission("Server.version")) {
                //gebe den original Text von /version aus!
            } else {
                p.sendMessage(Main.prefix + "§6ServerVersion: §fDer Server benutzt die Version 1.13.2!");
            }
        } else {
            p.sendMessage(Main.prefix + " §4Bitte benutzte §3/help §4für Hilfe!");
        }
        return false;
    }

}
Zudem ist mir auch schon aufgefallen, dass ich die permission abfrage auch nur einmal machen brauche, ist aber noch nicht geändert.

Das einzigste was mir noch fehlt steht als kommentar an der stelle, zudem kommt immer bei /version der originale Text, auch wenn man keine Permissions hat.
Selbes problem habe ich bei /plugin, wie kann ich das verhindern?
Weil bei /pl & /ver funktioniert es ja auch.
 
D

deleted209242

Guest
Das Hilft mir leider nicht komplett weiter, es lößt mein bestehendes Problem ja nicht, da ich die ausgabe des /versions command dann nicht darstellen kann, worum es mir ja grundsätzlich geht.

Bei den Plugins funktioniert das ja folgendermaßen: sender.sendMessage("§6Plugins " + GetPlugins.getPluginList());

java:
public class GetPlugins {
    
    public static String getPluginList() {
        StringBuilder pluginList = new StringBuilder();
        Plugin[] plugins = Bukkit.getPluginManager().getPlugins();

        for (Plugin plugin : plugins) {
            if (pluginList.length() > 0) {
                pluginList.append(ChatColor.WHITE);
                pluginList.append(", ");
            }

            pluginList.append(plugin.isEnabled() ? ChatColor.GREEN : ChatColor.RED);
            pluginList.append(plugin.getDescription().getName());
        }

        return "[" + plugins.length + "]:\n" + pluginList.toString();
    }

}

Aber wie mache ich das bei der Version?
 
Registriert
10 Dezember 2017
Beiträge
161
Alter
26
Diamanten
322
Minecraft
DerFrZocker
"/version" ist nichts anderes als ein allias von "icanhasbukkit", das heißt, lösche aus der commands.yml den allias "version" damit dein Command benutzt wird. Danach Zeige dem Spieler je nach Berechtigung deine Versions ausgabe oder Lasse den Spieler den Command "icanhasbukkit" ausführen um die Default Nachricht zu sehen.
 
D

deleted209242

Guest
Das habe ich jetzt in meiner commands.yml stehen, funktioniert dennoch nicht
yaml:
# This is the commands configuration file for Bukkit.
# For documentation on how to make use of this file, check out the Bukkit Wiki at
# https://www.spigotmc.org/go/commands-yml
#
# If you need help on this file, feel free to join us on irc or leave a message
# on the forums asking for advice.
#
# IRC: #spigot @ irc.spi.gt
#    (If this means nothing to you, just go to https://www.spigotmc.org/go/irc )
# Forums: https://www.spigotmc.org/
# Bug tracker: https://www.spigotmc.org/go/bugs

command-block-overrides: []
ignore-vanilla-permissions: false
aliases:
    icanhasbukkit:
    - "version $1-"

Habe ich da einen Fehler drin oder was muss ich dann noch weiteres machen?
 
Zuletzt bearbeitet von einem Moderator:

Shoqrii

Redstoneengineer
Registriert
16 Juni 2018
Beiträge
46
Diamanten
301
Minecraft
Shoqrii
Mach es doch einfach mit nem PlayerCommandPreprocessEvent.

Java:
    @EventHandler
    public void onUseCMD(PlayerCommandPreprocessEvent e) {
                
        if(e.getMessage().equals("/pl") || e.getMessage().equals("/plugins")) {
            e.setCancelled(true);
            e.getPlayer().sendMessage(Main.prefix + "§7Dieser Befehl ist uns nicht bekannt.");
        }
 
Oben