Bukkit - 其他类错误

时间:2017-02-13 10:10:18

标签: java bukkit

我的插件确实存在问题。当我想组织课程时,我试图把它们放在其他课程中,但它仍然没有用。所以我需要某人的帮助。

错误是:http://pastebin.com/cYXygQZe

但我认为我拥有一切,但我不知道我错过了什么。

主类(称为: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{

	public void onEnable(){
		System.out.print("Hai");
		getCommand("ts3").setExecutor(new information(this));
		getCommand("heal").setExecutor(new healc(this));
	}
	
}
	
	



 第二类(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{

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




第三课(information.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{

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




我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

只有一个类可以扩展JavaPlugin,你可以扩展它。

还有其他一些修正:

  • 您可以执行Bukkit#getPlayer并检查它是否为null,而不是循环遍历所有玩家并使用布尔值。
  • 不要在没有检查发件人是否是Player的实例的情况下播放播放器,它可以是控制台,这会导致错误。