@Johannes_C25
Wieso kriege ich in der Zeile 101 von "CommandAPvP.java" eine NullPointerException?
CommandAPvP
Code:
public boolean run() {
if (player.isOp() || player.hasPermission("event.leiter")) {
if (args.length == 0) {
player.sendMessage(darkgreen + "Welcome to the Admin-Menu");
player.sendMessage("");
player.sendMessage(darkgreen + "/apvp " + green + "addpoints");
player.sendMessage(darkgreen + "/apvp " + green + "createzone <Name>");
player.sendMessage(darkgreen + "/apvp " + green + "delzone <Name>");
player.sendMessage(darkgreen + "/apvp " + green + "listpvp [<World>]");
player.sendMessage(darkgreen + "/apvp " + green + "master");
return true;
}
if (args[0].equalsIgnoreCase("addpoints")) {
if (args.length == 1) {
if (ListHandler.point1.contains(player.getName()) || ListHandler.point2.contains(player.getName())) {
player.sendMessage(red + "You already creating an arena!");
return false;
}
if (ListHandler.point3.contains(player.getName())) {
player.sendMessage(green + "Please use /apvp createzone <Name> to create the arena!");
}
player.sendMessage(darkgreen + "Please select vertical points to create the arena!");
ListHandler.point1.add(player.getName());
return true;
}
}
if (args[0].equalsIgnoreCase("createzone")) {
if (args.length == 2) {
if (ListHandler.point1.contains(player.getName()) || ListHandler.point2.contains(player.getName())) {
player.sendMessage(red + "Please select vertical points to create the arena!");
return false;
}
if (ListHandler.point3.contains(player.getName())) {
String zoneName = args[1];
try {
ListHandler.point1.remove(player.getName());
ListHandler.point2.remove(player.getName());
ListHandler.point3.remove(player.getName());
player.sendMessage(green + "You successfully created the arena " + gold + zoneName);
plugin.zc.createZone(player, plugin.l1, plugin.l2);
plugin.saveFile.set(zoneName + ".L1.X", plugin.l1.getBlockX());
plugin.saveFile.set(zoneName + ".L1.Y", plugin.l1.getBlockY());
plugin.saveFile.set(zoneName + ".L1.Z", plugin.l1.getBlockZ());
plugin.saveFile.set(zoneName + ".L2.X", plugin.l2.getBlockX());
plugin.saveFile.set(zoneName + ".L2.Y", plugin.l2.getBlockY());
plugin.saveFile.set(zoneName + ".L2.Z", plugin.l2.getBlockZ());
plugin.saveConfig();
} catch (Exception e) {
player.sendMessage(ChatColor.RED + "Failed to create the arena!");
player.sendMessage(ChatColor.RED + "You can find the error in the console!");
e.printStackTrace();
}
} else {
player.sendMessage(red + "You can't create an arena before selecting vertical points!");
}
}
}
} else {
player.sendMessage(red + "You aren't allowed to do this!");
}
return false;
}
ZoneListener
Code:
@Event Handler
public void onPlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
if (ListHandler.point1.contains(player.getName())) {
if (event.getAction() == Action.LEFT_CLICK_BLOCK && player.getItemInHand().getType() == Material.STICK) {
try {
plugin.l1 = event.getClickedBlock().getLocation();
player.sendMessage(ChatColor.DARK_GREEN + "Position 1: " + ChatColor.GOLD + plugin.m.showBlockCoords(plugin.l1));
event.setCancelled(true);
ListHandler.point1.remove(player.getName());
ListHandler.point2.add(player.getName());
} catch (Exception e) {
player.sendMessage(ChatColor.RED + "Failed to create a point!");
player.sendMessage(ChatColor.RED + "You can find the error in the console!");
e.printStackTrace();
}
}
}
if (ListHandler.point2.contains(player.getName())) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK && player.getItemInHand().getType() == Material.STICK) {
try {
plugin.l2 = event.getClickedBlock().getLocation();
player.sendMessage(ChatColor.DARK_GREEN + "Position 2: " + ChatColor.GOLD + plugin.m.showBlockCoords(plugin.l2));
player.sendMessage(ChatColor.GREEN + "Now use /apvp createzone <Name> to create the arena!");
event.setCancelled(true);
ListHandler.point2.remove(player.getName());
ListHandler.point3.add(player.getName());
} catch (Exception e) {
player.sendMessage(ChatColor.RED + "Failed to create a point!");
player.sendMessage(ChatColor.RED + "You can find the error in the console!");
e.printStackTrace();
}
}
}
}
ZoneCreator
Code:
public static int volumen = 0;
public void createZone(Player player, Location l1, Location l2) {
int mix, max, miy, may, miz, maz;
if (l1.getBlockX() < l2.getBlockX()) {
mix = l1.getBlockX();
max = l2.getBlockX();
} else {
mix = l2.getBlockX();
max = l1.getBlockX();
}
if (l1.getBlockY() < l2.getBlockY()) {
miy = l1.getBlockY();
may = l2.getBlockY();
} else {
miy = l2.getBlockY();
may = l1.getBlockY();
}
if (l1.getBlockZ() < l2.getBlockZ()) {
miz = l1.getBlockZ();
maz = l2.getBlockZ();
} else {
miz = l2.getBlockZ();
maz = l1.getBlockZ();
}
for (int x = mix; x <= max; x++) {
for (int y = miy; y <= may; y++) {
for (int z = miz; z <= maz; z++) {
volumen ++;
}
}
}
}
Hauptklasse (der "plugin." - Instanz)
Code:
package xxxxx
import java.io.File;
import java.io.IOException;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import Commands.CommandAPvP;
import Commands.CommandPvP;
import Generator.ZoneCreator;
import Generator.ZoneListener;
public class xxxx extends JavaPlugin {
public YamlConfiguration saveFile;
private String build = "devAlpha#";
public Location l1;
public Location l2;
public final ZoneCreator zc = new ZoneCreator(this);
public final Methods m = new Methods(this);
public void onEnable() {
System.out.println("xxxxx");
this.getServer().getPluginManager().registerEvents(new ZoneListener(this), this);
}
public void onDisable() {
System.out.println("xxxxxxx");
}
/* -----------------------------------------------------------------------------------------------------------------------------------------*/
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
System.out.println("This is a player command!");
return false;
} else {
Player player = (Player) sender;
if (cmd.getName().equalsIgnoreCase("pvp")) {
return new CommandPvP(cmd, player, args).run();
}
if (cmd.getName().equalsIgnoreCase("apvp")) {
return new CommandAPvP(cmd, player, args).run();
}
}
return false;
}
public boolean loadZones() {
File f = new File("xxxxxx");
if (f.exists()) {
saveFile = YamlConfiguration.loadConfiguration(f);
} else {
f.mkdir();
try {
f.createNewFile();
} catch (IOException e) {
System.out.println("xxxxx");
e.printStackTrace();
}
}
return true;
}