• 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

Sullaysur

Redstoneengineer
Osterei Experte
Mitglied seit
22 Januar 2019
Beiträge
48
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
Mitglied seit
23 März 2012
Beiträge
890
Alter
29
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?
 

Sullaysur

Redstoneengineer
Osterei Experte
Mitglied seit
22 Januar 2019
Beiträge
48
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:
Code:
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.
 

Sullaysur

Redstoneengineer
Osterei Experte
Mitglied seit
22 Januar 2019
Beiträge
48
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());

Code:
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?
 

DerFrZocker

Schafhirte
Osterei Experte
Mitglied seit
10 Dezember 2017
Beiträge
148
Alter
19
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.
 

Sullaysur

Redstoneengineer
Osterei Experte
Mitglied seit
22 Januar 2019
Beiträge
48
Das habe ich jetzt in meiner commands.yml stehen, funktioniert dennoch nicht
Code:
# 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:

CapuzDE

Redstoneengineer
Osterei Experte
Mitglied seit
16 Juni 2018
Beiträge
44
Minecraft
CapuzDE
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.");
        }
 
Allgemein
Hilfe Benutzer
    Stern☆ Stern☆: Benzin rundherum um den Server gießen dann hast du ne gute Firewall. Ab und an nachschütten...
    Oben