2017-02-13 5 views
-2

Ich habe ein Problem mit meinem Plugin, das ich erstelle. Wenn ich organisierten Unterricht haben möchte, habe ich versucht, sie in andere Klassen zu bringen, aber es funktioniert immer noch nicht. also brauche ich Hilfe von jemandem.Bukkit - andere Klasse Fehler

Der Fehler ist: http://pastebin.com/cYXygQZe

Aber ich glaube, ich habe alles, aber ich weiß nicht, was mir fehlt.

Hauptklasse (genannt: heal.java):

package me.hoopless; 
 

 
import org.bukkit.Bukkit; 
 
import org.bukkit.event.Listener; 
 
import org.bukkit.plugin.PluginManager; 
 
import org.bukkit.plugin.java.JavaPlugin; 
 

 
public class heal extends JavaPlugin implements Listener{ 
 

 
\t public void onEnable(){ 
 
\t \t System.out.print("Hai"); 
 
\t \t getCommand("ts3").setExecutor(new information(this)); 
 
\t \t getCommand("heal").setExecutor(new healc(this)); 
 
\t } 
 
\t 
 
} 
 
\t 
 
\t
zweiter Klasse (healc.java):

package me.hoopless; 
 

 
import org.bukkit.Bukkit; 
 
import org.bukkit.ChatColor; 
 
import org.bukkit.command.Command; 
 
import org.bukkit.command.CommandExecutor; 
 
import org.bukkit.command.CommandSender; 
 
import org.bukkit.entity.Player; 
 
import org.bukkit.event.Listener; 
 
import org.bukkit.plugin.java.JavaPlugin; 
 

 
public class healc extends JavaPlugin implements CommandExecutor, Listener{ 
 

 
\t heal plugin; 
 
\t 
 
\t public healc(heal passedplugin){ 
 
\t \t this.plugin = passedplugin; 
 
\t } 
 
\t public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){ 
 
\t \t 
 
\t \t String prefix = ChatColor.DARK_GRAY + "[" + ChatColor.AQUA + "Server" + ChatColor.DARK_GRAY + "] "; 
 
\t \t 
 
\t \t Player player = (Player) sender; 
 
\t \t 
 
\t \t if (cmd.getName().equalsIgnoreCase("heal") || cmd.getName().equalsIgnoreCase("eat") && sender instanceof Player){ 
 
\t \t \t 
 
\t \t \t 
 
\t \t \t 
 
\t \t \t // /healplayer 1 2 3 
 
\t \t \t 
 
\t 
 
\t \t \t int length = args.length; 
 
\t \t \t \t 
 
\t \t \t \t if (length == 0){ 
 
\t \t \t \t \t player.setHealth(20.0); 
 
\t \t \t \t \t player.setFoodLevel(20); 
 
\t \t \t \t \t player.sendMessage(prefix + ChatColor.GRAY + "Your health has been updated"); 
 
\t \t \t \t }else if (length == 1){ 
 
\t \t \t \t \t 
 
\t \t \t \t \t boolean playerFound = false; 
 
\t \t \t \t \t 
 
\t \t \t \t \t for (Player playerToHeal : Bukkit.getServer().getOnlinePlayers()){ 
 
\t \t \t \t \t \t if (playerToHeal.getName().equalsIgnoreCase(args[0])){ 
 
\t \t \t \t \t \t \t playerToHeal.setHealth(20.0); 
 
\t \t \t \t \t \t \t playerToHeal.setFoodLevel(20); 
 
\t \t \t \t \t \t \t playerToHeal.sendMessage(prefix + ChatColor.GRAY + "You have been healed by " +ChatColor.RED + player.getName()); 
 
\t \t \t \t \t \t \t player.sendMessage(prefix + ChatColor.RED + playerToHeal.getName() + ChatColor.GRAY +" Was healed."); 
 
\t \t \t \t \t \t \t playerFound = true; 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t \t \t } 
 
\t \t \t \t \t } 
 
\t \t \t \t \t if (playerFound == false){ 
 
\t \t \t \t \t \t player.sendMessage(prefix + ChatColor.RED + args[0] + ChatColor.GRAY + " was not found!"); 
 
\t \t \t \t \t } 
 
\t \t \t \t } else player.sendMessage(prefix + ChatColor.GRAY + "Command typed incorrectly."); 
 
\t \t \t \t \t 
 
\t \t \t \t 
 
\t \t \t 
 
\t \t \t 
 
\t \t \t return true; 
 
\t \t } 
 
\t \t 
 
\t \t return false; 
 
\t } 
 
}

Dritte Klasse (Informationen. Java):

package me.hoopless; 
 

 
import org.bukkit.ChatColor; 
 
import org.bukkit.command.Command; 
 
import org.bukkit.command.CommandExecutor; 
 
import org.bukkit.command.CommandSender; 
 
import org.bukkit.entity.Player; 
 
import org.bukkit.event.Listener; 
 
import org.bukkit.plugin.java.JavaPlugin; 
 

 
public class information extends JavaPlugin implements CommandExecutor, Listener{ 
 

 
\t heal plugin; 
 
\t public information(heal passedplugin){ 
 
\t \t this.plugin = passedplugin; 
 
\t } 
 
\t \t @Override 
 
\t \t public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){ 
 
\t \t \t \t 
 
\t \t \t String prefix = ChatColor.DARK_GRAY + "[" + ChatColor.AQUA + "Server" + ChatColor.DARK_GRAY + "] "; 
 
\t \t \t Player player = (Player) sender; 
 
\t \t \t 
 
\t \t \t if (cmd.getName().equalsIgnoreCase("ts3")) 
 
\t \t \t \t player.sendMessage(prefix +ChatColor.GRAY + "Our Teamspeak IP is: " + ChatColor.AQUA + "ts3.server.net"); 
 
\t \t \t \t 
 
\t \t \t \t return false; 
 
\t \t \t } 
 
\t \t }

Ich hoffe, dass mir jemand helfen kann.

+0

[Verwenden Sie keine JS-Snippets für Java, sie sind nicht dasselbe.] (Http://javascriptisnotjava.io/) – Moira

Antwort

0

Nur 1 Klasse kann JavaPlugin erweitern, Sie erweitern es.

Auch einige andere Korrekturen:

  • Sie können Bukkit # getPlayer tun und überprüfen, ob es eher null ist, als Sie alle Spieler Schleifen und einen boolean haben.
  • Sie können Player nicht abspielen, ohne zu prüfen, ob der Sender eine Instanz des Players ist. Dies kann eine Konsole sein, die einen Fehler verursacht.