gpt4 book ai didi

java - 在范围 bukkit 编码中无法访问该类型的封闭实例

转载 作者:行者123 更新时间:2023-12-01 14:07:26 25 4
gpt4 key购买 nike

我需要有关上述错误的帮助我的代码是

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以使我op再次感谢任何帮助。请加入我的 Minecraft 服务器:mamnas.darktech.org

最佳答案

FirstClass.this.executeAsConsole(Befehl, sender);//But this doesn't (No enclosing instance of the type FirstClass is accessible in scope)

符号

FirstClass.this

正在尝试访问外部类实例,但您的情况下没有。声明 onCommand 方法的 SexyIce 类不是 FirstClass 的内部类。

我不知道 FirstClass 应该是什么,所以我不能提出太多建议,但您可以实例化它并在实例上调用您的方法。

以下内容

public void onDisable(){
this.sendConsole("Sexy Time Plugin Disabled");//Why does this work...
}

之所以有效,是因为 this 引用了当前实例(该方法被调用的实例),它扩展了 JavaPlugin 并且可能有一个 sendConsole 方法。

关于java - 在范围 bukkit 编码中无法访问该类型的封闭实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com