Frage von Sekai2706, 4

Java Minecraft Plugin Programmieren?

Hey, ich hänge gerade an einem Problem. Ich programmiere gerade ein größeres Plugin und habe folgendes Problem

 

    
@Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
 Player p = (Player) sender; BlockPlaceEvent e = null;if(sender instanceof Player) {
        
        if(args.length != 1) {
            p.sendMessage(plugin.prefix + "§9Mache /core help");
        } else {
            if(args[0].equalsIgnoreCase("join")) {
                Join(p);
            }else
                if(args[0].equalsIgnoreCase("accept")) {
                
                 cmde.Accept(p,e );
                
                }

Hier ist ein kleiner Ausschnitt. Wie man sieht bei Accept (p,e) muss ich einmal als Parameter Player übertragen das ja klappt und einmal das BlockPlaceEvent. Aber hier in der Funktion benutze ich kein BlockPlaceEvent und brauche das nur um es zu übertragen und BlockPlaceEvent e = null; geht nicht weil man kann den Wert null nicht übertragen. Dieses cmde ist nur weil die andere Methode in einer anderen Klasse ist

Andere Klasse:

 


@EventHandler public void onPlace(BlockPlaceEvent e) { Player p = e.getPlayer(); if(e.getBlock().getType() == Material.BEACON) { p.sendMessage(plugin.prefix + "§7Der Core" + cores + "von Team " + teams + " wurde gesetzt!"); p.sendMessage(plugin.prefix + "§2Machen Sie /Core accept um den Core hinzuzufügen"); plugin.zahl = 1;
public  void Accept(Player p, BlockPlaceEvent e) {
    if(plugin.zahl == 1) {
         FileConfiguration config = plugin.getConfig();

        p.sendMessage(plugin.prefix + "Der Block wurde zum Spiel hinzugefügt");     
        String core1 = p.getWorld().getName();          
         double core1x = e.getBlock().getLocation().getX();
            double core1y = e.getBlock().getLocation().getY();
            double core1z = e.getBlock().getLocation().getZ();
            double core1yaw = e.getBlock().getLocation().getYaw();
            double core1pitch = e.getBlock().getLocation().getPitch();
        config.set("Core1.World", core1);
        config.set("Core1.PosX", core1x);
        config.set("Core1.PosY", core1y);
        config.set("Core1.PosZ", core1z);
        config.set("Core1.PosYaw", core1yaw);
        config.set("Core1.PosPitch", core1pitch);
        
        plugin.zahl = 0;
    }else p.sendMessage(plugin.prefix + "Du hast noch keinen Block gesetzt!");
    
    
}

Also was ich vorhabe ist:

Sobald man ein Leuchtfeuer setzt kann man /core accept machen um zu bestätigen, dass er gesetzt wurde...

Aber dieses /core Accept klappt nicht :/ weil ich ja dann etwas übertragen muss

Falls ihr mehr Infos braucht einfach schreiben

Danke ich hoffe es ist verständlich :)

Antwort
von Sekai2706, 4

Dieses QuellCOde zaheln nicht beachten -_- habe es falsch reinkopiert sry

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten