Wie mache ich ein Random Spawn (und 2 blöcke in der erde) Plugin?

Ich mache gerade ein Plugin wobei der Spawn random in der erde ist (Oberflächen Y -2) aber es funktioniert nicht, hier der Code:

   
    Location locationRaw;
    Location locationRaw2;
    Location location;
    Location location2;
    
    @EventHandler
    private void onPlayerJoin(PlayerJoinEvent e, PlayerSpawnLocationEvent e1) {
        
        for(Player p : Bukkit.getOnlinePlayers()) {
            
            World world = Bukkit.getWorlds().get(0);
            int X = getRandom(1500, -1500);
            int Y = getRandom(250, 1);
            Block blockY = world.getBlockAt(location2);
            if(blockY.getType() == Material.GRASS_BLOCK) {
                int rawY = world.getHighestBlockYAt(locationRaw2);
                int Z = getRandom(1500, -1500);
    
                locationRaw2 = new Location(world, X, Y, Z);
                locationRaw = new Location(world, X, rawY, Z);
                location = new Location(world, X, rawY -2, Z);
                location2 = new Location(world, X, rawY -1, Z);
                
                Block block1 = world.getBlockAt(locationRaw);
                block1.setType(Material.AIR);
                Block block2 = world.getBlockAt(locationRaw);
                block2.setType(Material.AIR);
                Block block3 = world.getBlockAt(location2);
                block3.setType(Material.AIR);
                
                e1.setSpawnLocation(location);
                p.teleport(location);
            }
        }
    }
    
    public int getRandom(int lower, int upper) {
        Random random = new Random();
        return random.nextInt((upper - lower) + 1) + lower;
    }

}

Computer, Minecraft, Bukkit, Spigot, minecraft plugin programmieren, Plugin Programmieren
Config.yml (meines Plugins) nach neustart leer, was tun?

Ich code ein Plugin und save dabei einige Daten, aber nach einem reload oder neustart ist sie immer leer! Was muss ic tun damit die Daten richtig gesaved sind?

Code Save:

{
                            FileConfiguration config = Main.getPlugin().getConfig();
                            config.set("PositionName." + count, args[0]);
                            config.set("Player." + count + "." + args[0], player.getUniqueId());
                            config.set("World." + count + "." + args[0],player.getWorld().getName());
                            config.set("X." + args[0], player.getLocation().getX());
                            config.set("Y." + args[0], player.getLocation().getY());
                            config.set("Z." + args[0], player.getLocation().getZ());
                            count++;
                            Main.getPlugin().saveConfig();
                            }

Main Code:

private static Main plugin;

    public void onEnable() {
        plugin = this;
        
        System.out.println("§aThe plugin§6 ChocolateCore §ais enabled"); {
        loadConfig();
        getCommand("positionlist").setExecutor(new PositionListCommand());
        getCommand("position").setExecutor(new PositionCommand());
        }
    }
    public void loadConfig() {
        getConfig().options().copyDefaults(true);
        saveConfig();
    }
    public static Main getPlugin() {
        return plugin;
        
    }
}
Computer, Minecraft, Plug-in, Minecraft plugin, minecraft plugin programmieren, Plugin Programmieren
An internal error occured while attempting to perform this command, was muss ich ändern?

An internal error occured while attempting to perform this command, was muss ich ändern?

Ich Code gerade ein Plugin, ein teil davon ist ein /position [name] command aber wenn ich den Command ausführe funktioniert es nicht!

Code:

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            if(args.length == 0) {
                player.getLocation(); {
                player.sendMessage("§cPlease use §6/position <pos,p> [NAME]§c!");
                }
            } else if(args.length == 1) {
                player.sendMessage("§aPosition §6" + args[1] + "§a is set to §6" + player.getLocation() + "§a!");
                    
                    }else {
                        player.sendMessage("§cPlease use §6/position <pos,p> [NAME]§c!");
                }
            } else {
                sender.sendMessage("§cYou can't this command in a §6" + sender.getName() + "§c! You need to be a player to use this command!");
        }
        
        return false;
    }

}

ERROR:

An internal error occured while attempting to perform this command, was muss ich ändern?
Computer, Programmieren, Coden, Minecraft, Minecraft plugin, minecraft plugin programmieren, Minecraft Programmieren
/god funktion programieren?

Hi, Ich beschäftige mich grad mit Plugin Programierung in Minecraft. Ich wollte eine god funktion in mein plugin einbauen. Hab dies auch gemacht hier der code:

package de.TreftCraft;
import java.util.ArrayList; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player;

public class God
  implements CommandExecutor
{
  public static ArrayList<String> god = new ArrayList();
 
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
  {
    Player p = (Player)sender;
    if (p.hasPermission("system.god"))
    {
      if (args.length == 0)
      {
        if (god.contains(p.getName()))
        {
          god.remove(p.getName());
          p.sendMessage("Du bist nun nicht mehr im Godmode!");
        }
        else
        {
          god.add(p.getName());
          p.sendMessage("Du bist nun im Godmode!");
        }
      }
      else {
        p.sendMessage("Benutze /God");
      }
    }
    else {
      p.sendMessage("Dazu hast du keine Rechte!");
    }
    return false;
  }
}

Und der EntityDamageListener:

package de.TreftCraft;
import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent;


public class EntityDamage implements Listener {     @EventHandler     public void onDamage(EntityDamageEvent e) {         Player p = (Player) e.getEntity();         if (God.god.contains(p.getName())) {             e.setCancelled(true);         } else {             e.setCancelled(false);         }     } }


Ich hab alles in der Main.java hinzugefügt es geht auch alles aber in der Console wird dieser Fehler angezeigt:

[10:44:17 ERROR]: Could not pass event EntityDamageEvent to System v1.0
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot_server.jar:git-Spigot-c3093ef-7e94e65]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot_server.jar:git-Spigot-c3093ef-7e94e65]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot_server.jar:git-Spigot-c3093ef-7e94e65]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot_server.jar:git-Spigot-c3093ef-7e94e65]
        at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:93) [spigot_server.jar:git-Spigot-c3093ef-7e94e65] .......

EDIT: Ich muss mich entschuldigen das es hier so komisch angezeigt wird

Programmieren, Java, JavaScript, Minecraft, Minecraft Server, Plug-in, Minecraft plugin, minecraft plugin programmieren, plugins programmieren

Meistgelesene Fragen zum Thema Minecraft plugin programmieren