Crash pluginu, aneb dělám si vlastní plugin..
-
- Příspěvky: 176
- Registrován: 24 zář 2014, 16:33
- Reputation: 0
Re: Crash pluginu, aneb dělám si vlastní plugin..
Takže si mam udělat package a tam to nějak systematicky roztřídit? a ještě.. nepotřebuju te Main říct něco jako že má čerpat z jiných package, třeba z "me.nathan.listener.listener" ?
MODRA - název package
Fialová - třída.java
MODRA - název package
Fialová - třída.java
-
- Příspěvky: 176
- Registrován: 24 zář 2014, 16:33
- Reputation: 0
Re: Crash pluginu, aneb dělám si vlastní plugin..
Kód: Vybrat vše
> [19:27:28 ERROR]: Error occurred while enabling StevesWar v1.0 (Is it up to date?)
java.lang.NullPointerException
at me.nathan.plugin.Main.onEnable(Main.java:20) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.craftbukkit.v1_8_R2.CraftServer.loadPlugin(CraftServer.java:356) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.craftbukkit.v1_8_R2.CraftServer.enablePlugins(CraftServer.java:316) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.craftbukkit.v1_8_R2.CraftServer.reload(CraftServer.java:746) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.Bukkit.reload(Bukkit.java:534) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:646) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchServerCommand(CraftServer.java:632) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.DedicatedServer.aN(DedicatedServer.java:405) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:369) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
Kde je chyba ted ?
-
- Příspěvky: 176
- Registrován: 24 zář 2014, 16:33
- Reputation: 0
Re: Crash pluginu, aneb dělám si vlastní plugin..
na 20. řádku je toto:
Zde je Commands.java
Kód: Vybrat vše
getCommand("setspawn").setExecutor(new Commands(this));
Zde je Commands.java
Kód: Vybrat vše
package me.nathan.commandy;
import me.nathan.plugin.Main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
public class Commands implements CommandExecutor {
public Main plugin;
public Commands(Main instance) {
plugin = instance;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player)sender;
Plugin pl = plugin;
if(!(sender instanceof Player)) {
System.out.println("Tento prikaz mohou pouzit jenom hraci!");
return true;
}
if(cmd.getName().equalsIgnoreCase("setspawn")) {
if(!(sender.hasPermission("sv.setspawn"))) {
sender.sendMessage(ChatColor.RED + plugin.getConfig().getString("setspawn_no_permission"));
} else {
plugin.getConfig().set("spawn.svet", p.getLocation().getWorld().getName());
plugin.getConfig().set("spawn.x", p.getLocation().getBlockX());
plugin.getConfig().set("spawn.y", p.getLocation().getBlockY());
plugin.getConfig().set("spawn.z", p.getLocation().getBlockZ());
p.sendMessage(ChatColor.GREEN + pl.getConfig().getString("setspawn_message"));
} if (cmd.getName().equalsIgnoreCase("spawn")) {
if(pl.getConfig().getConfigurationSection("spawn") == null) {
p.sendMessage(ChatColor.RED + pl.getConfig().getString("no_spawn_created"));
} else {
World w = Bukkit.getServer().getWorld(pl.getConfig().getString("spawn.svet"));
double x = pl.getConfig().getInt("spawn.x");
double y = pl.getConfig().getInt("spawn.y");
double z = pl.getConfig().getInt("spawn.z");
p.teleport(new Location(w, x, y, z));
p.sendMessage(ChatColor.GREEN + pl.getConfig().getString("tp_spawn_message"));
}
}
}
return true;
}
}
-
- Příspěvky: 823
- Registrován: 30 bře 2014, 10:05
- Reputation: 28
Re: Crash pluginu, aneb dělám si vlastní plugin..
Kód: Vybrat vše
getCommand("setspawn").setExecutor(new Commands(this));
getCommand("setspawn") ti vrátí null v případě že tvůj plugin nedefinuje příkaz setspawn v souboru plugin.yml
-
- Příspěvky: 176
- Registrován: 24 zář 2014, 16:33
- Reputation: 0
Re: Crash pluginu, aneb dělám si vlastní plugin..
Takže řešení ?...
-
- Příspěvky: 823
- Registrován: 30 bře 2014, 10:05
- Reputation: 28
Re: Crash pluginu, aneb dělám si vlastní plugin..
no řešení bude v plugin.yml definovat ten příkaz....
http://wiki.bukkit.org/Plugin_Tutorial# ... Plugin.yml
Kód: Vybrat vše
commands:
setspawn:
description: popis prikazu setspawn
usage: /<command>
http://wiki.bukkit.org/Plugin_Tutorial# ... Plugin.yml
-
- Příspěvky: 176
- Registrován: 24 zář 2014, 16:33
- Reputation: 0
Re: Crash pluginu, aneb dělám si vlastní plugin..
Tak jo.. fungovat to funguje a když dam /setspawn tak mi to napíše co se má, jenže když dam spawn tak se nic nestane..
-- 31 kvě 2015, 15:25 --
ani se mi config.yml nezobrazí, prázdný soubor.
-- 31 kvě 2015, 15:25 --
ani se mi config.yml nezobrazí, prázdný soubor.
-
- Příspěvky: 823
- Registrován: 30 bře 2014, 10:05
- Reputation: 28
Re: Crash pluginu, aneb dělám si vlastní plugin..
Kód: Vybrat vše
getCommand("setspawn").setExecutor(new Commands(this));
tohle říká že příkaz /setspawn má být "obsloužen" třídou Commands
příkaz /spawn máš definovaný kde?
v kódu ve třídě Commands kontroluješ jestli příkaz náhodou není /spawn, ale pokud tu třídu nepřiřadíš příkazu (stejně jako si to udělal pro /setspawn) tak se ta část kódu nikdy nevykoná
a config.yml že máš prázdný... a ukládáš do něj vůbec něco? zapisujes konfig při ukončování pluginu (metoda onDisable) ?
-
- Příspěvky: 176
- Registrován: 24 zář 2014, 16:33
- Reputation: 0
Re: Crash pluginu, aneb dělám si vlastní plugin..
sepsal jsem tu funkci znova:
Spawn..
Main..
config:
plugin.yml
Chyba (Při použítí obou příkazů)
Spawn..
Kód: Vybrat vše
package me.nathan.commandy;
import me.nathan.plugin.Main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
public class Commands implements CommandExecutor {
public Main plugin;
public Commands(Main instance) {
plugin = instance;
}
Plugin pl = plugin;
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player)sender;
if(cmd.getName().equalsIgnoreCase("setspawn")) {
if(!(sender instanceof Player)) {
System.out.println("Tento prikaz smi pouzit jen hraci!");
} else if (sender.hasPermission("sv.setspawn")) {
pl.getConfig().set("spawn.svet", p.getLocation().getWorld().getName());
pl.getConfig().set("spawn.x", p.getLocation().getBlockX());
pl.getConfig().set("spawn.y", p.getLocation().getBlockY());
pl.getConfig().set("spawn.z", p.getLocation().getBlockZ());
p.sendMessage(ChatColor.GREEN + pl.getConfig().getString("spawn_created"));
}
} else if (cmd.getName().equalsIgnoreCase("spawn")) {
if(!(sender instanceof Player)) {
System.out.println("Tento prikaz smi pouzit jen hraci!");
} else {
World w = Bukkit.getServer().getWorld(pl.getConfig().getString("spawn.world"));
double x = pl.getConfig().getDouble("spawn.x");
double y = pl.getConfig().getDouble("spawn.y");
double z = pl.getConfig().getDouble("spawn.z");
p.teleport(new Location(w, x, y, z));
p.sendMessage(ChatColor.GREEN + pl.getConfig().getString("spawn_teleported"));
}
return true;
}
return true;
}
}
Main..
Kód: Vybrat vše
package me.nathan.plugin;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import me.nathan.listener.PlayerListener;
import me.nathan.commandy.Commands;
public class Main extends JavaPlugin {
private PlayerListener PlayerListener = new PlayerListener();
public void onEnable() {
System.out.println("Plugin aktivovan!");
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(this.PlayerListener, this);
getConfig().options().copyDefaults(true);
saveConfig();
getCommand("setspawn").setExecutor(new Commands(this));
getCommand("spawn").setExecutor(new Commands(this));
}
public void onDisable() {
saveConfig();
System.out.println("Plugin deaktivovan!");
}
}
config:
Kód: Vybrat vše
spawn_created: 'Spawn ulozen!'
spawn_teleported: 'Byl jsi teleportován!'
spawn.world: 'world'
plugin.yml
Kód: Vybrat vše
name: StevesWar
version: 1.0
description: Simple plugin
author: NathanCZ
website: www.recandplay.fakaheda.eu
main: me.nathan.plugin.Main
database: false
commands:
spawn:
description: Teleport to spawn
setspawn:
description: Set your spawn
permissions:
sv.setspawn:
description: Set up your spawn
Chyba (Při použítí obou příkazů)
Kód: Vybrat vše
> [16:07:44 INFO]: NathanCZ issued server command: /setspawn
> [16:07:44 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'setspawn' in plugin StevesWar v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:646) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PlayerConnection.handleCommand(PlayerConnection.java:1139) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:974) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_51]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_51]
at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:712) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at java.lang.Thread.run(Thread.java:744) [?:1.7.0_51]
Caused by: java.lang.NullPointerException
at me.nathan.commandy.Commands.onCommand(Commands.java:30) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
... 15 more
> [16:07:46 INFO]: NathanCZ issued server command: /spawn
> [16:07:46 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'spawn' in plugin StevesWar v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:646) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PlayerConnection.handleCommand(PlayerConnection.java:1139) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:974) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_51]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_51]
at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:712) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [minecraft_server.jar:git-Spigot-870264a-0a645a2]
at java.lang.Thread.run(Thread.java:744) [?:1.7.0_51]
Caused by: java.lang.NullPointerException
at me.nathan.commandy.Commands.onCommand(Commands.java:40) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]
... 15 more
-
- Příspěvky: 823
- Registrován: 30 bře 2014, 10:05
- Reputation: 28
Re: Crash pluginu, aneb dělám si vlastní plugin..
Kód: Vybrat vše
public class Commands implements CommandExecutor {
public Main plugin;
public Commands(Main instance) {
plugin = instance;
}
Plugin pl = plugin;
v konstruktoru ukládáš instanci pluginu do promeny plugin, ale v metode onCommand se odkazujes na pl (která je prázdná, proto ti to hází null exception)
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 14 hostů