Hallo,
Ich grade ein bisschen verzweifelt. Mein Plugin lässt sich einfach nicht mehr laden und funktioniert so gut wie
gar nicht mehr. Das Plugin ist ein ServerSystem (Reallife) das bisher reibungs geklappt hat bis jetzt. Ich kann kurz erläutern was ich vor dem Fehler
gemacht habe. - Intelli installiert.
- Intelli deinstalliert (Falsches Programm: Community)
- Projekt importiert
- Mit vielen Fehlern versucht das Plugin einzurichten
- Intelli deinstalliert
- Plugin exportiert und...
Es hat nicht mehr funktioniert. Folgender Fehler wird ausgeführt wenn man das Plugin laden lässt.
Nun ich habe wirklich überall gesucht. Und ich weiss ürbigens was ne NPE ist...
Ich vermute es hat was mit der Main zu tun.
Ich sende jetzt noch folgende Dokumente:
- Main
- ReportCommand Klasse
- PluginYML
Ich wäre bereit das Plugin (Eclipse Projekt & Exportierte Datei) zu senden.
~NiciToni
Ich grade ein bisschen verzweifelt. Mein Plugin lässt sich einfach nicht mehr laden und funktioniert so gut wie
gar nicht mehr. Das Plugin ist ein ServerSystem (Reallife) das bisher reibungs geklappt hat bis jetzt. Ich kann kurz erläutern was ich vor dem Fehler
gemacht habe. - Intelli installiert.
- Intelli deinstalliert (Falsches Programm: Community)
- Projekt importiert
- Mit vielen Fehlern versucht das Plugin einzurichten
- Intelli deinstalliert
- Plugin exportiert und...
Es hat nicht mehr funktioniert. Folgender Fehler wird ausgeführt wenn man das Plugin laden lässt.
Fehlermeldung:
[23:35:42 INFO]: Reallife: Plugin wurde deaktiviert
[23:35:42 ERROR]: Error occurred while disabling ServerSystem v2.0 (Is it up to date?)
java.lang.ExceptionInInitializerError: null
at me.nicitoni.Main.onDisable(Main.java:154) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:266) ~[spigot.jar:git-Spigot-dcd1643-e60fc34]
at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:361) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:422) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at me.nicitoni.Main.onEnable(Main.java:76) [ban.jar:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:403) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:381) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:330) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.t(MinecraftServer.java:422) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.l(MinecraftServer.java:383) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.a(MinecraftServer.java:338) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.DedicatedServer.init(DedicatedServer.java:272) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:545) [spigot.jar:git-Spigot-dcd1643-e60fc34]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
Caused by: java.lang.NullPointerException
at anticheat.ReportCommand.<clinit>(ReportCommand.java:26) ~[?:?]
Nun ich habe wirklich überall gesucht. Und ich weiss ürbigens was ne NPE ist...
Ich vermute es hat was mit der Main zu tun.
Ich sende jetzt noch folgende Dokumente:
- Main
- ReportCommand Klasse
- PluginYML
Main:
package me.nicitoni;
import anticheat.*;
import anticheat.Error;
import fessel.Command;
import fessel.FesselListener;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import prefix.PrefixListener;
import rp.PayDay;
import system.ReloadPlugin;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
public class Main extends JavaPlugin {
public static File messageFILE;
public static HashMap<String, String> messageData = new HashMap<String, String>();
private static Economy econ = null;
private static Permission perms = null;
private static Chat chat = null;
private static Main plugin;
private static YamlConfiguration message;
public int taskID;
String chatN = "§f[§5Security]§f:";
public static Main getPlugin() {
return plugin;
}
public static Economy getEconomy() {
return econ;
}
public static Permission getPermissions() {
return perms;
}
public static Chat getChat() {
return chat;
}
public static void save() {
getPlugin().reloadConfig();
getPlugin().saveConfig();
}
public static void error(Player p, String errormessage) {
p.playSound(p.getLocation(), Sound.BLOCK_NOTE_PLING, 100, 1);
p.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent("§c➥ §e" + errormessage));
}
public static void actionBar(Player p, String msg) {
p.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(msg));
}
public void onEnable() {
if (!setupEconomy()) {
getServer().getPluginManager().disablePlugin(this);
return;
}
setupPermissions();
setupChat();
plugin = this;
System.out.println("[Reallife] Plugin wurde geladen");
getCommand("artzt").setExecutor(new Medic());
getCommand("medic").setExecutor(new Krankenwagen());
getCommand("buss").setExecutor(new Stationen());
getCommand("timer").setExecutor(new Timer());
getCommand("report").setExecutor(new ReportCommand());
getCommand("artzt").setPermission("artzt.run");
getCommand("punish").setExecutor(new BanManager());
getCommand("reason").setExecutor(new Reasons());
getCommand("error").setExecutor(new Error());
getCommand("token").setExecutor(new TokenCommand());
getCommand("clearchat").setExecutor(new ClearChat());
getCommand("clearchat").setPermission("power.mod");
getCommand("fessel").setExecutor(new Command());
getCommand("prl").setExecutor(new ReloadPlugin());
getCommand("pgui").setExecutor(new BanGUI());
getCommand("spectate").setExecutor(new Spectate());
File f = new File(getDataFolder() + File.separator + "messages.yml");
if (!f.exists()) {
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
setMessage("bill", "§f[§4Server§f]: Ihnen wurde soeben ihre Rechnung abgezogen. Der Betrag beträgt: ");
FileConfiguration config = YamlConfiguration.loadConfiguration(f);
for (String message : config.getConfigurationSection("").getKeys(false)) {
messageData.put(message, config.getString(message));
}
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new KrangenwagenListener(), this);
pm.registerEvents(new HealerListener(), this);
pm.registerEvents(new HandcuffListener(), this);
pm.registerEvents(new ReportInv(), this);
pm.registerEvents(new PrefixListener(), this);
pm.registerEvents(new DistanceListener(), this);
pm.registerEvents(new TNTProtecterListener(), this);
pm.registerEvents(new FesselListener(), this);
pm.registerEvents(new CPSListener(), this);
pm.registerEvents(new BanGuiListener(), this);
for (int i = 0; i < Bestrafungen.values().length; i++) {
Bestrafungen[] b = Bestrafungen.values();
BanGUI.add(b[i].getBanName().toString(), b[i].getId().toString());
System.out.println(b[i].getId().toString());
}
for (Player ich : Bukkit.getOnlinePlayers()) {
ich.showPlayer(ich);
}
PayDay p = new PayDay();
p.startRunnbale();
}
public void onDisable() {
System.out.println("Reallife: Plugin wurde deaktiviert ");
ReportCommand.saveHashMap(ReportCommand.contentMap);
getPlugin().saveConfig();
}
private void setMessage(String name, String message) {
File f = new File(getDataFolder() + File.separator + "messages.yml");
FileConfiguration config = YamlConfiguration.loadConfiguration(f);
if (!config.isSet(name)) {
config.set(name, message);
try {
config.save(f);
} catch (IOException e) {
e.printStackTrace();
}
}
}
private boolean setupEconomy() {
if (getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}
RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}
econ = rsp.getProvider();
return econ != null;
}
private boolean setupChat() {
RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
chat = rsp.getProvider();
return chat != null;
}
private boolean setupPermissions() {
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
perms = rsp.getProvider();
return perms != null;
}
}
ReportCommand:
package anticheat;
import me.nicitoni.Main;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import presets.Presets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ReportCommand implements CommandExecutor {
public static Map<Player, ItemStack> contentMap = new HashMap<>();
public static List<Player> loggedMods = new ArrayList<>();
static FileConfiguration cfg = Main.getPlugin().getConfig();
public int id;
public static ItemStack[] getContentMap() {
return contentMap.values().toArray(new ItemStack[contentMap.size()]);
}
public static void setContentMap(Map<Player, ItemStack> contentMap) {
ReportCommand.contentMap = contentMap;
}
public static void add(Player hacker, Player reporter, String grund, String zeit, int id) {
ItemStack is = new ItemStack(Material.SKULL_ITEM, 1, (byte) 3);
SkullMeta meta = (SkullMeta) is.getItemMeta();
meta.setOwner(hacker.getName());
meta.setDisplayName(hacker.getName());
List<String> lore = new ArrayList<>();
lore.add("§eReportet von §4" + reporter.getName() + "§e wegen §4" + grund);
lore.add("§e" + zeit);
lore.add("§eID " + id);
meta.setLore(lore);
is.setItemMeta(meta);
contentMap.put(hacker, is);
cfg.set("reports", getContentMap());
Main.getPlugin().saveConfig();
}
public static void errorMSG(Player p, String message) {
p.sendMessage("§4 " + message);
}
public static void sendAlert(String hacker, String message) {
for (Player reporter : Bukkit.getOnlinePlayers()) {
if (loggedMods.contains(reporter)) {
reporter.sendMessage(message);
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + reporter.getName()
+ " [\"\",{\"text\":\"Klick hier f§r weitere Infos\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/report info "
+ hacker + "\"}}]");
}
}
}
public static void saveHashMap(Map<Player, ItemStack> hm) {
cfg.set("hashmap", hm);
System.out.println("SAVED");
Main.getPlugin().getConfig();
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player reporter = (Player) sender;
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
if (sender.hasPermission("report.send")) {
if (args[0].equals("list")) {
Inventory i = Bukkit.getServer().createInventory(reporter, 54, "§4Reports");
i.setContents(getContentMap());
reporter.openInventory(i);
System.out.println(cfg.get("reports"));
} else if (args[0].equals("clear")) {
} else if (args[0].equals("remove")) {
if (args[2] != null) {
Player spieler = Bukkit.getPlayer(args[1]);
if (spieler != null) {
id--;
contentMap.remove(Bukkit.getPlayer(args[1]));
sender.sendMessage(
"§aDas Ticket vom dem Spieler " + args[1] + "§a wurde erfolgreich geschlossen.");
cfg.set("reports.geschlossen." + args[1], args[1] + " " + args[2]);
Main.save();
sendAlert(Bukkit.getPlayer(args[1]).getName(),
"§5[§fReportSystem§5]§c: Der Spieler §e[" + args[1]
+ "] §cwurde von der Reportliste entfernt wegen §e[" + args[2]
+ "] §cgemeldet.");
} else {
errorMSG((Player) sender, "Leider existiert Spieler nicht");
}
} else {
errorMSG((Player) sender, "Bitte gib einen Grund ein");
}
} else if (args[0].equals("reload")) {
sender.sendMessage("§aDie Config wurde erfolreich neugeladen");
Main.getPlugin().reloadConfig();
Bukkit.getServer().getPluginManager().getPlugin("Reallife").reloadConfig();
Main.getPlugin().reloadConfig();
Main.save();
} else if (args[0].equals("info")) {
Player target = Bukkit.getPlayer(args[1]);
sender.sendMessage("§c - " + target.getName() + "§4 -");
sender.sendMessage("§c Displayname " + target.getDisplayName() + "§4 -");
sender.sendMessage("§c UUID " + target.getUniqueId() + "§4 -");
sender.sendMessage("§c Addresse " + target.getAddress() + "§4 -");
} else if (args[0].equals("login")) {
Player sp = (Player) sender;
if (sp.hasPermission(Presets.PERMMOD)) {
if (!loggedMods.contains(sp)) {
loggedMods.add(sp);
sender.sendMessage(Presets.PREFIX + "§a Du bist nun eingeloggt");
sender.sendMessage(Presets.PREFIX + "§cAktuell sind §e" + loggedMods.size() + "§c Moderatoren online");
} else
Main.error((Player) sp, "§e Du bist bereits eingeloggt");
} else
Main.error((Player) sp, Presets.NOPERMISSION);
} else if (args[0].equals("logout")) {
Player sp = (Player) sender;
if (sp.hasPermission(Presets.PERMMOD)) {
System.out.println(Presets.PERMMOD);
if (loggedMods.contains(sp)) {
loggedMods.remove(sp);
sp.sendMessage(Presets.PREFIX + "§a Du bist nun ausgeloggt");
} else
Main.error((Player) sp, "§e Du bist bereits ausgeloggt");
} else
Main.error((Player) sp, Presets.NOPERMISSION);
} else {
Player hacker = Bukkit.getPlayer(args[0]);
String grund = args[1];
if (hacker != null) {
if (reporter instanceof Player) {
if (sender != hacker) {
if (cfg.isSet("report.reason")) {
List<String> grunde = (List<String>) cfg.get("report.reason");
if (grunde.contains(grund)) {
add(hacker, reporter, grund, "§4" + dtf.format(now), id);
sendAlert(hacker.getName(), "§5[§fReportSystem§5]§c: Der Spieler §e["
+ hacker.getName() + "] §cwurde wegen §e[" + grund + "] §cgemeldet.");
reporter.sendMessage("§4Vielen Dank f§r deine Mitthilfe");
id++;
} else {
sender.sendMessage("§4Error: Diesen Grund gibt es nicht");
}
} else {
List<String> reasons = new ArrayList<>();
reasons.add("HACKING");
reasons.add("BUGUSING");
reasons.add("CHAT");
reasons.add("TEAMING");
reasons.add("EXMAPLE1");
reasons.add("EXAMPLE2");
cfg.set("report.reason", reasons);
Main.getPlugin().saveConfig();
List<String> grunde = (List<String>) cfg.get("report.reason");
if (grunde.contains(grund)) {
add(hacker, reporter, grund, "§4" + dtf.format(now), id);
reporter.sendMessage("§4Vielen Dank f§r deine Mitthilfe");
sendAlert(hacker.getName(), "§5[§fReportSystem§5]§c: Der Spieler §e["
+ hacker.getName() + "] §cwurde wegen §e[" + grund + "] §cgemeldet.");
id++;
Main.getPlugin().saveConfig();
} else {
sender.sendMessage("§4Error: Diesen Grund gibt es nicht");
}
}
} else
Main.error((Player) sender, " Du kannst du nicht selbst reporten.");
}
}
}
}
return false;
}
public HashMap<Player, ItemStack> loadHashMap() {
HashMap<Player, ItemStack> hm = new HashMap<Player, ItemStack>();
return hm;
}
}
Plugin YML:
name: ServerSystem
version: 2.0
main: me.nicitoni.Main
commands:
artzt:
medic:
buss:
timer:
report:
punish:
reason:
error:
token:
clearchat:
fessel:
prl:
pgui:
spectate:
Ich wäre bereit das Plugin (Eclipse Projekt & Exportierte Datei) zu senden.
~NiciToni