Арбузный кот
Ньюби
- Баллы
- 1
Добрый день. Я написал свой плагин на bukkit который добавляет в игру команды /cuff и /uncuff, которые сковывают и расковывают игрока в наручники при этом запрещая атаковать и использовать инвентарь. Почему-то при старте плагина выдает ошибку NullPointerException. Что делать?
Код плагина:
Консоль:
Код плагина:
Код:
package org.structures.policeplugin;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.HashMap;
import java.util.Map;
public class PolicePlugin extends JavaPlugin implements Listener, CommandExecutor {
private Map<Player, Boolean> handcuffedPlayers;
@Override
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(this, this);
this.handcuffedPlayers = new HashMap<>();
getCommand("cuff").setExecutor(this);
getCommand("uncuff").setExecutor(this);
}
@Override
public void onDisable() {
handcuffedPlayers.clear();
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (label.equalsIgnoreCase("cuff")) {
if (args.length == 1) {
String targetName = args[0];
Player target = Bukkit.getPlayer(targetName);
if (target != null && target.isOnline()) {
handcuffPlayer(target);
sender.sendMessage(ChatColor.GREEN + "Player " + target.getName() + " has been handcuffed.");
return true;
} else {
sender.sendMessage(ChatColor.RED + "Invalid player.");
return true;
}
} else {
sender.sendMessage(ChatColor.RED + "Usage: /cuff <player>");
return true;
}
} else if (label.equalsIgnoreCase("uncuff")) {
if (args.length == 1) {
String targetName = args[0];
Player target = Bukkit.getPlayer(targetName);
if (target != null && target.isOnline()) {
uncuffPlayer(target);
sender.sendMessage(ChatColor.GREEN + "Player " + target.getName() + " has been uncuffed.");
return true;
} else {
sender.sendMessage(ChatColor.RED + "Invalid player.");
return true;
}
} else {
sender.sendMessage(ChatColor.RED + "Usage: /uncuff <player>");
return true;
}
}
return false;
}
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof Player) {
Player attacker = (Player) event.getDamager();
if (handcuffedPlayers.containsKey(attacker) && handcuffedPlayers.get(attacker)) {
event.setCancelled(true);
}
}
}
private void handcuffPlayer(Player player) {
handcuffedPlayers.put(player, true);
player.setGameMode(GameMode.ADVENTURE);
player.sendMessage(ChatColor.RED + "You have been handcuffed. You cannot attack or interact with the inventory.");
}
private void uncuffPlayer(Player player) {
handcuffedPlayers.remove(player);
player.setGameMode(GameMode.SURVIVAL);
player.sendMessage(ChatColor.GREEN + "You have been uncuffed. You can now attack and interact with the inventory.");
}
}
Код:
[22:12:44 INFO]: [PolicePlugin] Loading PolicePlugin v1.0-SNAPSHOT
[22:12:44 INFO]: Server permissions file permissions.yml is empty, ignoring it
[22:12:44 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
[22:12:46 INFO]: [PolicePlugin] Enabling PolicePlugin v1.0-SNAPSHOT
[22:12:47 ERROR]: Error occurred while enabling PolicePlugin v1.0-SNAPSHOT (Is i
t up to date?)
java.lang.NullPointerException: null
at org.verdantrp.policeplugin.PolicePlugin.onEnable(PolicePlugin.java:27
) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[p
atched_1.16.5.jar:git-Paper-782]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
.java:370) ~[patched_1.16.5.jar:git-Paper-782]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
r.java:500) ~[patched_1.16.5.jar:git-Paper-782]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.
java:518) ~[patched_1.16.5.jar:git-Paper-782]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer
.java:432) ~[patched_1.16.5.jar:git-Paper-782]
at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServ
er.java:594) ~[patched_1.16.5.jar:git-Paper-782]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.ja
va:298) ~[patched_1.16.5.jar:git-Paper-782]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:
1069) ~[patched_1.16.5.jar:git-Paper-782]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftSer
ver.java:291) ~[patched_1.16.5.jar:git-Paper-782]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_302]
[22:12:47 INFO]: [PolicePlugin] Disabling PolicePlugin v1.0-SNAPSHOT