Spigot commandSync funktioniert nicht?

Hier meine Frage:
Ich habe hier ein kleines Plugin welches automatisch ein paar Befehle in den Server implementieren soll, welche nicht in der plugin.yml stehen. Das funktioniert auch wunderbar, doch gibt es ein Problem bei der der Funktion der Autovervollständigung.
Hier wird der Command als nicht existent angezeigt. Nach längerem Suchen im Web bin ich schließlich auf CraftServer#syncCommands() gestoßen, was dieses Problem beheben soll, doch tut es das nicht.
Serverversion: 1.18
Software: PaperSpigot
---
Es ist das einzige Plugin auf dem Server.
Keine Fehler in der Konsole.


de.censored.Class reflectionPluginCommand = new ClassCore(PluginCommand.class);
reflectionPluginCommand.newInstance(new Parameter(String.class, commandInfo.getExecute()), new Parameter(Plugin.class, commandInfo.getPlugin()));

PluginCommand pluginCommand = (PluginCommand) reflectionPluginCommand.getInstance();
pluginCommand.setExecutor((sender, command, label, args) ->
{
    CommandEngine.execute(((sender instanceof Player) ? Core.getInstance().getSystem().getPlayer(((Player) sender).getUniqueId()) : Core.getInstance().getSystem().getConsole()), label, (info, connectionCallback, args1) ->
    {
        if (CommandExecutor.class.isAssignableFrom(info.commandExecutor().getClass()))
        {
            ((CommandExecutor) info.commandExecutor()).onCommand(sender, command, label, args);
        }
        else
        {
            if (de.censored.PluginCommand.class.isAssignableFrom(info.commandExecutor().getClass()))
            {
                ((de.censored.PluginCommand) info.commandExecutor()).onCommand(connectionCallback, args, label);
            }
        }
    }, args);
    return true;
});
pluginCommand.setName(commandInfo.getExecute());
pluginCommand.setPermission(commandInfo.getPermission());
pluginCommand.setAliases(new ArrayList<>(Arrays.asList(commandInfo.getAliases())));
pluginCommand.setUsage("Comming soon");
pluginCommand.setDescription(commandInfo.getDescription());
pluginCommand.setLabel(commandInfo.getExecute());

de.censored.reflection.Class server = new ClassCore(Bukkit.getServer());
CommandMap commandMap = (CommandMap) server.getField("commandMap");
commandMap.register(commandInfo.getExecute(), pluginCommand);
server.execute("syncCommands");

debug("Register command " + commandInfo.getExecute(), null);

Wie man auf diesem Bild sehen kann wurde der Befehl fly aktiviert.

Doch erscheint er nicht in der "Tab"-liste

Wenn ich ihn allerdings ausführe, funktioniert er wie gewollt.

Ich hoffe Ihr könnt mir helfen, denn ich bin mit meinem Wissen am Ende.
MfG MubenRube

Edit:

Tatsächlich war der Cache des Clients schuld, denn dieser hatte sich eingespeichert, welche Befehle es gibt und dementsprechend nicht nochmal nachgefragt.

@EventHandler public void onPlayerJoinEvent(PlayerJoinEvent playerJoinEvent)
{
    ...
    playerJoinEvent.getPlayer().updateCommands();
    ...
}

Schönen Abend euch
MfG MubenRube

Spigot commandSync funktioniert nicht?
Minecraft, Spigot
Würdest du diesen Minecraft Spielmodus spielen?

Hallo!

Ich habe ein Minecraft Plugin programmiert welches Minecraft extrem schwer macht.

Einige der Features wären folgende:

  • Alle Kreaturen mit Fernkampfangriffen haben zielsuchende Angriffe.
  • Es gibt einen neuen Mob: Die Wolke
  • Sie wirft mit Blitzen auf dich, kann aber jederzeit wieder despawnen.
  • Spawnt ab und zu auch bei Tageslicht.
  • Phantoms können wie jeder andere Mob spawnen und werfen mit TNT um sich.
  • Wenn du zu lange rennst, bekommst du Slowness 3, musst dich sozusagen ab und zu ausruhen.
  • Je nach dem wie viel Schaden du bekommst, bekommst du Effekte (Von Übelkeit zu Abbaulähmung bis zu Blindheit).
  • Hasen spawnen immer als Killer-Kaninchen und können spawnen, wenn ein anderer Mob spawnt (Auch am Tag, oder manchmal auch durch Pfeile).
  • Hühner benötigt man für Feuerresistenz-Tränke.
  • Diese schießen aber mit Blaze Feuerbällen um sich und verschwinden sobald du sie im Nahkampf erreichen könntest.
  • Man brennt dauerhaft im Nether (Deshalb die Möglichkeit den Trank zu craften).
  • Blaze schießen Ghast Bälle.
  • Ghast schießen Drachenbälle.
  • Zombies spawnen immer mit Rüstung und immer als Baby.
  • Skelette spawnen auch immer mit Rüstung.
  • Der Enderdrache hat einen neuen Angriff
  • Und noch vieles mehr

Jetzt zur Frage...

Würdet ihr das immer noch spielen, oder klingt es für euch nach zu viel Stress?

Danke schon mal im Voraus!

LG

Endivie04

Spiele, PC, Computer, Hardcore, Gaming, Minecraft, Schwierigkeitsgrad, Spigot, Spiele und Gaming
Warum kommt hier immer ein Fehler?

Hi,

Ich hab gestern ein Command Programmiert für Minecraft. Das soll dazu gut sein um den Spawn zu setzen. Aber was hab ich Falsch gemacht, denn immer wenn ich mich zum Spawn Teleportiere kommt da ein Fehler (Nur /spawn und Join) und in weiß (/spawn und /setspawn) noch mal den Command den ich eingegeben hab.

/setSpawn

public class SetSpawn implements CommandExecutor{
	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
		if(sender instanceof Player) {
			Player player = (Player) sender;
			ConfigHandler c = new ConfigHandler();
			
			if (cmd.getName().equalsIgnoreCase("setspawn")) {
				if(player.hasPermission("wug.setspawn")) {
					c.set("spawn.world", player.getWorld().getName());
					c.set("spawn.x", String.valueOf(player.getLocation().getX()));
					c.set("spawn.y", String.valueOf(player.getLocation().getY()));
					c.set("spawn.z", String.valueOf(player.getLocation().getZ()));
					c.set("spawn.yaw", String.valueOf(player.getLocation().getYaw()));
					c.set("spawn.pitch", String.valueOf(player.getLocation().getPitch()));
					c.save();
					player.sendMessage("§2You have set a new spawn!");
				}
				else
				{
					player.sendMessage("§4You are not authorized to execute this command");
				}
			}
		}
		return false;
	}
}

/spawn

public class Spawn implements CommandExecutor {
	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
		
		if(sender instanceof Player) {
			
			Player player = (Player) sender;
			ConfigHandler c = new ConfigHandler();
			
				if(c.get("spawn.world") != null) {
				if(player.hasPermission("wug.spawn")) {
					World world = Bukkit.getWorld("spawn.world");
					Double x = Double.parseDouble(c.get("spawn.x"));
					Double y = Double.parseDouble(c.get("spawn.y"));
					Double z = Double.parseDouble(c.get("spawn.z"));
					Float yaw = Float.parseFloat(c.get("spawn.yaw"));
					Float pitch = Float.parseFloat(c.get("spawn.pitch"));
					////////////////////////////////////////////////////////
					Location loc = new Location(world, x, y, z, yaw, pitch);
					player.teleport(loc);
					player.sendMessage("§2You have been teleported to the spawn");
				}
				else
				{
					player.sendMessage("§4You are not authorized to execute this command");
				}
				}
				else
				{
					player.sendMessage("§4No spawn has been set yet");
				}
			}
		return false;
	}
}

On Join:

public class Join implements Listener {


	@EventHandler
	public void onJoin(PlayerJoinEvent event) {
		Player player = event.getPlayer();
		ConfigHandler c = new ConfigHandler();
		
		if(c.get("spawn.world") != null) {
			World world = Bukkit.getWorld("spawn.world");
			Double x = Double.parseDouble(c.get("spawn.x"));
			Double y = Double.parseDouble(c.get("spawn.y"));
			Double z = Double.parseDouble(c.get("spawn.z"));
			Float yaw = Float.parseFloat(c.get("spawn.yaw"));
			Float pitch = Float.parseFloat(c.get("spawn.pitch"));
			
			Location loc = new Location(world, x, y, z, yaw, pitch);
			player.teleport(loc);
		}
		
	    event.setJoinMessage("§2Welcome " + event.getPlayer().getName());
		
	}
	
}
Computer, Technik, Fehler, Programmieren, Java, Minecraft, Technologie, Bukkit, Spigot
Java programmieren für Minecraft?

Hallo alle miteinander,

Ich versuche mich so kurz wie möglich zu halten. Ich möchte gerne mit dem Programmieren mit der Sprache Java anfangen um später meinen Kollegen helfen zu können (je nachdem wie gut ich es dann gelernt habe) ein kleineres Servernetzwerk aufzubauen. Einer der Kollegen möchte auch einen PvP Client coden, (habe da nicht viel Erfahrung aber ich denke so hat er es gesagt) wobei ich ihm dann auch helfen würde.

Jetzt zu meiner Frage, nach langer Recherche im Internet bin ich unter anderem auf den Youtube Kanal BiVieh gestoßen. Hier der Link zu seinem Kanal, für diejenigen die ihn nicht kennen:

https://youtube.com/c/BiVieh

Ich habe vorgestern angefangen mit seinen Tutorials zu lernen, allerdings bin ich mir jetzt unsicher, ob es das Richtige ist, um mit dem Lernen zu beginnen, da ich ja vorhabe später an einem Server Netzwerk zu programmieren und diese soweit ich das gehört habe mit BungeeCord laufen und nicht mit Spigot, mit dem in seinen Tutorials gelernt wird.

Deshalb wollte ich nachfragen, ob jemand von euch mir da etwas Klarheit verschaffen kann und mir als Anfänger sagen kann ob es das Richtige ist mit seinen Tutorials zu lernen, oder womit ich sonst lernen sollte. (Gerne auch was ich zusätzlich lernen könnte!)

Vielen Dank im Vorraus an alle, ich bin über jede Antwort froh, da ich momentan wirklich nicht weiter weiß und mich nicht stundenlang für etwas hinsetzen möchte, was am Ende nicht das ist, was ich mir als Ziel gesetzt hatte.

Computer, Programmieren, Java, Minecraft, Minecraft Server, Spigot, minecraft netzwerk, Spigot Server, Spigot Plugin
Spigot Minecraft Bot erstellen?

Weiß jemand wie ich einen Spigot Minecraft bot erstellen kann ?

const mineflayer = require("mineflayer");
const navigatePlugin = require("mineflayer-navigate")(mineflayer);


let innnt;


let innnt2;


const bot = mineflayer.createBot({
    host: "localhost",
    port: "59175",
    username: "Bot05",
    version: "1.17.1",
});


navigatePlugin(bot);


bot.on("chat", function (username, message){
    if(username === bot.username) return;


    let msg = message.toString();


    if(msg === ".walk"){
        bot.navigate.to(bot.players[username].entity.position)
    }


    if(msg.startsWith(".fight")){
        let enemy = msg.split(" ").slice(1).join("");


        if(!bot.players[enemy].entity) return bot.chat("Dieser Spieler existiert nicht.");


        bot.chat("ANGRIEF!!!");


        innnt2 = setInterval(async ()=>{
            bot.players[enemy].entity.position.y = bot.entity.position.y;
            
            await bot.navigate.to(bot.players[enemy].entity.position)
        },1000)


        innnt = setInterval(()=>{
            if(!bot.players[enemy].entity){
                clearInterval(innnt); 
                clearInterval(innnt2);
                return;
            }
            
            bot.attack(bot.players[enemy].entity, true);
            bot.lookAt(bot.players[enemy].entity.position.offset(0,2,0))
        },300)
    }



})

(ist mit JavaScript)

Like this. Damit er nur Joint rest mach ich Check ich sonst nicht

Minecraft, Spigot
Fehler wenn ich auf Spigot 1.8.8 Server joine?

Hi. Ich komme nicht auf meinen Spigot 1.8.8 Server. Immer wenn ich versuche zu joinen kommt unendlich lange diese Meldung ganz schnell wiederholt in der Konsole:

[16:25:56 WARN]: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.RuntimeException: Unable to access address of buffer
        at io.netty.channel.epoll.Native.read(Native Method) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.doReadBytes(EpollSocketChannel.java:678) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:714) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe$3.run(EpollSocketChannel.java:755) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:268) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at java.base/java.lang.Thread.run(Thread.java:831) [?:?]

Ich habe kein einziges Plugin auf dem Server und seit dem ersten Start nichts verändert. Und ja ich bin auch gewhitelisted und so...

Server, Computer, Java, Minecraft, Minecraft Server, Bukkit, craftbukkit, Spigot, minecraft 1.8, Spiele und Gaming

Meistgelesene Fragen zum Thema Spigot