Add spaces in commands

Discussion in 'Plugin Development' started by mentin2, Oct 13, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    mentin2

    Hm srry, for posting on a kinda old thread,
    But I can't find the fix anywhere, and you've already helped me on 50% of the way...

    I want commands that all start with
    /bless
    but that the word after changes with what you type
    Here's my Main file:

    Code:
    package me.mentin2.Blessing;
     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Random;
    import java.util.logging.Logger;
     
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.block.Block;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Main extends JavaPlugin
    {
      public static Main plugin;
      public final Logger log = Logger.getLogger("Minecraft");
      public boolean enabled = false;
      public String lol = "[Blessings] ";
      public final MyBlockListener bl = new MyBlockListener();
      public final MyPlayerListener pl = new MyPlayerListener();
      public final HashMap<Player, ArrayList<Block>> hashmap = new HashMap<Player, ArrayList<Block>>();
     
      @Override
      public void onEnable()
      {
          PluginDescriptionFile pdfFile = this.getDescription();
          this.log.info("[" + pdfFile.getVersion() + "]" + this.lol + "has been enabled.");
          PluginManager pm = getServer().getPluginManager();
          pm.registerEvents(this.bl, this);
          pm.registerEvents(this.pl, this);
      }
     
      @Override
      public void onDisable()
      {
          this.log.info(this.log + "has been disabled.");
      }
     
      public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
      {
        Player player = (Player) sender;
     
        //BLESSINGS
     
        if(commandLabel.equalsIgnoreCase("bless") && args[0].equalsIgnoreCase("help"))
        {   
            if(args.length == 0)
            {
            player.sendMessage(ChatColor.WHITE + "----" + ChatColor.GOLD + "Blesssings" + ChatColor.WHITE + "----");
            player.sendMessage(ChatColor.GREEN + "/bless help" + ChatColor.WHITE + " | " + ChatColor.GOLD + "Shows this screen!");
            player.sendMessage(ChatColor.GREEN + "/bless heal" + ChatColor.WHITE + " | " + ChatColor.GOLD + "Heal a player");
            player.sendMessage(ChatColor.GREEN + "/bless teleport" + ChatColor.WHITE + " | " + ChatColor.GOLD + "Teleport players");
            player.sendMessage(ChatColor.GREEN + "/bless freeze" + ChatColor.WHITE + " | " + ChatColor.GOLD + "Freeze a player");
            //player.sendMessage(ChatColor.GREEN + "/bless " + ChatColor.WHITE + " | " + ChatColor.GOLD + "");
            }
        }
       
     
        if(commandLabel.equalsIgnoreCase("bless") && args[0].equalsIgnoreCase("heal"))
        {   
            if(args.length == 0)
            {
            }
            else if(args.length == 1)
            {
                if(player.hasPermission("bless.heal"))
                {
                    if(player.getServer().getPlayer(args[0])!=null);
                    Player targetPlayer = player.getServer().getPlayer(args[0]);
                    targetPlayer.setHealth(20);
                    targetPlayer.setFireTicks(0);
                    player.sendMessage(ChatColor.GOLD + this.lol + "You have been Healed!");
                }
                else
                {
                    player.setHealth(4);
                    player.setFoodLevel(4);
                    player.sendMessage(ChatColor.RED + this.lol + "You may not bless others, without being a Priest!");
                }
            }
            else
            {
                player.sendMessage(ChatColor.DARK_RED + "That player is not online!");
            }
        }
     
        if(commandLabel.equalsIgnoreCase("bless") && args[0].equalsIgnoreCase("teleport"))
        {
            if(args.length == 0)
            {
                player.sendMessage(ChatColor.DARK_RED + this.lol + "Too little Arguments!");
            }
            else if(args.length == 1)
            {
                player.sendMessage(ChatColor.RED + this.lol + "You cannot Teleport yourself!");
            }
            else if(args.length == 2)
            {
                if(player.hasPermission("bless.heal"))
                {
                    Player targetPlayer = player.getServer().getPlayer(args[0]);
                    Player targetPlayer1 = player.getServer().getPlayer(args[1]);
                    Location targetPlayer1Location = targetPlayer1.getLocation();
                    targetPlayer.teleport(targetPlayer1Location);
                    player.sendMessage(ChatColor.GOLD + this.lol + "You have teleported " + targetPlayer.getDisplayName() + "to" + targetPlayer1.getDisplayName());
                }
                else
                {
                    player.sendMessage(ChatColor.RED + this.lol + "You may not bless others, without being a Priest!");
                }
            }
        }
     
        if(commandLabel.equalsIgnoreCase("bless") && args[0].equalsIgnoreCase("freeze"))
        {
            if(args.length == 0)
            {
                player.sendMessage(ChatColor.DARK_RED + this.lol + "Too little Arguments!");
            }
            else if(args.length == 1)
            if(sender.hasPermission("bless.freeze"))
            {
                {
                    if(hashmap.containsKey(sender))
                    {
                        if(sender.getServer().getPlayer(args[0])!= null)
                        {
                            Player targetPlayer = player.getServer().getPlayer(args[0]);
                            if(!hashmap.containsKey(targetPlayer))
                            {
                                sender.sendMessage(ChatColor.GOLD + this.lol + "You froze " + targetPlayer.getDisplayName() + "!");
                                hashmap.put(targetPlayer, null);
                                targetPlayer.sendMessage(ChatColor.GOLD + this.lol + "You were frozen by " + sender.getName() + "!");
                            }
                            else
                            {
                                sender.sendMessage(ChatColor.GOLD + this.lol + "You unfroze " + targetPlayer.getDisplayName() + "!");
                                hashmap.remove(targetPlayer);
                                targetPlayer.sendMessage(ChatColor.GOLD + this.lol + "You were unfrozen by " + sender.getName() + "!");
                            }
                        }
                   
                    }
                }
            }
     
        //PRAYERS
     
        if(commandLabel.equalsIgnoreCase("prayer") && args[0].equalsIgnoreCase("help"))
        {   
            if(args.length == 0)
            {
        player.sendMessage(ChatColor.WHITE + "----" + ChatColor.RED + "Prayers" + ChatColor.WHITE + "----");
        player.sendMessage(ChatColor.GREEN + "/prayer help" + ChatColor.WHITE + " | " + ChatColor.GOLD + "Show this screen");
        player.sendMessage(ChatColor.GREEN + "/prayer heal" + ChatColor.WHITE + " | " + ChatColor.GOLD + "Pray for heal");
        }
    }
     
        if(commandLabel.equalsIgnoreCase("prayer") && args[0].equalsIgnoreCase("heal"))
        {
            Random rand = new Random();
            int mentin2;
     
            for(int counter =1; counter<=1;counter++)
            {
                mentin2 = 1+rand.nextInt(2);
                if(mentin2 == 1)
                {
                    player.setHealth(20);
                    player.sendMessage(ChatColor.GOLD + this.lol + "The God accepts your request!");
                }
                else if(mentin2 == 2)
                    {
                        player.sendMessage(ChatColor.DARK_RED + this.lol + "The God declines your request!");
                        player.setFireTicks(150);
                        return true;
                    }
                }
            }
        }
     
        return false;
      }
     
    }
    And here is my pluging.yml:

    Code:
    name: BlessingPrayers
    main: me.mentin2.Blessing.Main
    author: mentin2
    version: 1.0
    commands:
        bless help:
            description: Help about Blessings
            usage: |
                /bless help
        bless heal:
            description: Heal players
            usage: |
                /bless heal
        bless teleport:
            description: Teleport players
            usage: |
                /bless teleport
        bless freeze:
            description: Freeze players
            usage: |
                /bless freeze
        prayer help:
            description: Help about Prayers
            usage: |
                /prayer help
        prayer heal:
            description: Pray for Healing
            usage: |
                /prayer heal
    permissions:
        bless.priest:
            description: Gives access to all commands
            children:
                bless.help: true
                bless.heal: true
                bless.teleport: true
                bless.freeze: true
        bless.help:
            description: Allows you to see the blessings help menu
            default: true
        bless.heal:
            description: Allows you to heal players
            default: op
        bless.teleport:
            description: Allows you to teleport players
            default: op
        bless.freeze:
            description: Allows you to freeze players
            default: op
        prayer.default:
            description: Gives access to all commands
            children:
                prayer.help: true
                prayer.heal: true
                prayer.speed: true
        prayer.help:
            description: Allows you to see the prayers help menu
            default: true
        prayer.heal:
            description: Allows you to pray for healing
            default: op
        prayer.speed:
            description: Allows you to pray for speed buff
            default: op
    I've tried different stuff from only putting
    Code:
    commands:
        bless:
            description: Help about Blessings
            usage: |
                /bless help
    
    to
    Code:
    commands:
        blesshelp:
            description: Help about Blessings
            usage: |
                /bless help
    


    Please help me :)
     
  2. Offline

    TnT

    Moved to your own thread. No reason to necro bump an old thread.
     
  3. was the correct way to write it inside config, from now, I should printing out the contents of the arg[] variable, so you will see how its build up, so its easier to use it to find the arguments passed
     
  4. Offline

    CevinWa

    The eisiest way is to set an executor acording to me

    public void onEnable(){
    this.getCommand("your_first_command").setExecutor(new YourCommandClass(this));



    in YourCommandClass:


    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;


    public class YourCommandClass implements CommandExecutor{

    private YourMainClass plugin;

    public YourCommandClass(YourMainClass plugin){
    this.plugin = plugin;
    }

    public boolean onCommand(CommandSender sender, Command command, String label,String[] args){
    if (sender instanceof Player == false){
    sender.sendMessage(ChatColor.RED + "Sorry this command can only be used ingame.");
    return true;

    }



    Player player = (Player) sender;
    String PlayerName = player.getName;
    if(args[0].equalsIgnoreCase("Your_Second_Argument")){

    player.sendMessage("Hi it's working");
    return true;
    }
    }
    now the command is /Your_First_Command Your_Second_Argument
    This should display "Hi it's working" for the sender.
     
  5. Offline

    mentin2

    Okay thank you.


    Hm I tried it:

    Main.class
    Code:
    package me.mentin2.PrayersPlus;
     
    import java.util.logging.Logger;
     
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Main extends JavaPlugin
    {
        public static Main plugin;
        public final Logger log = Logger.getLogger("Minecraft");
       
        //public final MyBlockListener bl = new MyBlockListener();
        //public final MyPlayerListener pl = new MyPlayerListener();
       
        public String Title = "[PrayerPlus] ";
       
       
        @Override
          public void onEnable()
          {
              PluginDescriptionFile pdfFile = this.getDescription();
              this.log.info("[" + pdfFile.getVersion() + "]" + this.Title + "has been enabled.");
            //PluginManager pm = getServer().getPluginManager();
            //pm.registerEvents(this.bl, this);
            //pm.registerEvents(this.pl, this);
             
              //Commands
              //help
              this.getCommand("prayerplus").setExecutor(new PrayerHelpClass(this));
             
              //prayers
              this.getCommand("prayerplus").setExecutor(new PrayerHealClass(this));
          }
     
          @Override
          public void onDisable()
          {
              PluginDescriptionFile pdfFile = this.getDescription();
              this.log.info("[" + pdfFile.getVersion() + "]" + this.Title + "has been disabled.");
          }
    }
    
    PrayerHelpClass.class
    Code:
    package me.mentin2.PrayersPlus;
     
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
     
    public class PrayerHelpClass implements CommandExecutor
    {
        public Main plugin;
        public String Title = "[PrayerPlus] ";
     
        public PrayerHelpClass(Main plugin)
        {
            this.plugin = plugin;
        }
       
        public boolean onCommand(CommandSender sender, Command command, String label,String[] args)
        {
            if (sender instanceof Player == false)
            {
                sender.sendMessage(ChatColor.RED + "Sorry this command can only be used ingame.");
                return true;
            }
     
            Player player = (Player) sender;
            player.getDisplayName();
            if(args[0].equalsIgnoreCase("help"))
            {
                player.sendMessage(ChatColor.WHITE + "---------" + ChatColor.GOLD + "Help: Prayers" + ChatColor.WHITE + "---------------------------");
                player.sendMessage(ChatColor.GREEN + "/prayerplus help" + ChatColor.WHITE + " : " + ChatColor.RED + "Help screen for this plugin");
                player.sendMessage(ChatColor.GREEN + "/prayerplus heal" + ChatColor.WHITE + " : " + ChatColor.RED + "Pray for healing");
                //player.sendMessage(ChatColor.GREEN + "/prayerplus " + ChatColor.WHITE + " | " + ChatColor.RED + "");
                //player.sendMessage(ChatColor.GREEN + "/prayerplus " + ChatColor.WHITE + " | " + ChatColor.RED + "");
                //player.sendMessage(ChatColor.GREEN + "/prayerplus " + ChatColor.WHITE + " | " + ChatColor.RED + "");
                return true;
            }
            return true;
        }
    }
    
    PrayerHealClass.class
    Code:
    package me.mentin2.PrayersPlus;
     
    import java.util.Random;
     
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
     
    public class PrayerHealClass implements CommandExecutor
    {
        public Main plugin;
        public String Title = "[PrayerPlus] ";
     
        public PrayerHealClass(Main plugin)
        {
            this.plugin = plugin;
        }
       
        public boolean onCommand(CommandSender sender, Command command, String label,String[] args)
        {
            if (sender instanceof Player == false)
            {
                sender.sendMessage(ChatColor.RED + "Sorry this command can only be used ingame.");
                return true;
            }
     
            Player player = (Player) sender;
            player.getDisplayName();
            if(args[0].equalsIgnoreCase("heal"))
            {
                Random rand = new Random();
                int mentin2;
               
                for(int counter =1; counter<=1;counter++)
                    {
                    mentin2 = 1+rand.nextInt(2);
                        if(mentin2 == 1)
                        {
                            player.setHealth(20);
                            player.sendMessage(ChatColor.GOLD + this.Title + "The God accepts your request!");
                        }
                        else if(mentin2 == 2)
                            {
                                player.sendMessage(ChatColor.DARK_RED + this.Title + "The God declines your request!");
                                player.setFireTicks(150);
                                return true;
                            }
                    }
            }
            return true;
        }
    }
    
    Now the problem is that:
    1. If I remove everything related to the Heal command (CommandHealClass.class), The small errors that i get in the Main.class (I don't have errors for the moment, but if I remove the CommandHealClass.class, I do get errors)
    The command: /prayerplus help
    Works perfectly

    2. a) If I have it like above, both classes (CommandHealClass.class and CommandHelpClass.class),
    only the command: /prayerplus heal Works.
    While: /prayerplus help doesn't work.
    (Nothing shows in the chat, and the console says: [INFO] mentin2 issued server command: /prayerplus help)
    Meanwhile: /prayerplus tells me: "An internal error occured while attempting to perform this command"
    (while console tells me:
    Code:
    [INFO] mentin2 issued server command: /prayerplus
    [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'prayerplus' in plugin PrayersPlus v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:498)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:880)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:826)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:808)
        at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:282)
        at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
        at net.minecraft.server.ServerConnection.b(SourceFile:35)
        at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:577)
        at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
        at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at me.mentin2.PrayersPlus.PrayerHealClass.onCommand(PrayerHealClass.java:31)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
        ... 15 more
    )

    3. Here is my plugin.yml file:
    Code:
    name: PrayersPlus
    main: me.mentin2.PrayersPlus.Main
    author: mentin2
    version: 1.0
    commands:
        prayerplus:
            description: Help about Blessings
            usage: |
                /prayerplus help
     
  6. Offline

    CevinWa

    Instead of dublicating the command executor just do }else{ like so
    Player player = (Player) sender;
    String PlayerName = player.getName;
    if(args[0].equalsIgnoreCase("Your_Second_Argument")){

    player.sendMessage("Hi it's working");
    return true;
    }else{
    if(args[0].equalsIgnoreCase("Your_Second_Argument2")){
    return true;
    } Then you could have the same base command.

    when you get internal error just define what it going to do when you don't have arguments
    if(args.length !=1){
    return true;
    }else{
    if(args[0].equalsIgnoreCase("Your_Second_Argument")){

    player.sendMessage("Hi it's working");
    return true;
    }
    }else{

    if(args[0].equalsIgnoreCase("Your_Second_Argument2")){
    return true;
    }
    }

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 29, 2016
  7. Offline

    mentin2

    Thank You a lot :)
    Everything works smoothly now :D

    Well even if your text was hard to "decrypt"
    I finnaly got it :p

    Thank you a lot.
    "You sir, just save my day!"
     
  8. Offline

    CevinWa

    Np. Just like helping ppl out.
     
  9. Offline

    mentin2

    Hm, But with your fix,
    There's something I don't know how to do now.
    I have the "PrayerCommands.class"
    Code:
    package me.mentin2.PrayersPlus;
     
    import java.util.Random;
     
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
     
    public class PrayerCommands implements CommandExecutor
    {
        public Main plugin;
        public String Title = "[PrayerPlus] ";
     
        public PrayerCommands(Main plugin)
        {
            this.plugin = plugin;
        }
       
        public boolean onCommand(CommandSender sender, Command command, String label,String[] args)
        {
            Player player = (Player) sender;
            player.getDisplayName();
           
            if(args.length !=1)
            {
                return true;
            }
           
            //help
            else if (sender instanceof Player == false)
            {
                sender.sendMessage(ChatColor.RED + "Sorry this command can only be used ingame.");
                return true;
            }
     
            if(args[0].equalsIgnoreCase("help"))
            {
                player.sendMessage(ChatColor.WHITE + "---------" + ChatColor.GOLD + "Help: Prayers" + ChatColor.WHITE + "---------------------------");
                player.sendMessage(ChatColor.GREEN + "/prayerplus help" + ChatColor.WHITE + " : " + ChatColor.RED + "Shows this screen");
                player.sendMessage(ChatColor.GREEN + "/prayerplus heal" + ChatColor.WHITE + " : " + ChatColor.RED + "Pray for healing");
                //player.sendMessage(ChatColor.GREEN + "/prayerplus " + ChatColor.WHITE + " | " + ChatColor.RED + "");
                //player.sendMessage(ChatColor.GREEN + "/prayerplus " + ChatColor.WHITE + " | " + ChatColor.RED + "");
                //player.sendMessage(ChatColor.GREEN + "/prayerplus " + ChatColor.WHITE + " | " + ChatColor.RED + "");
                return true;
            }
           
            //heal
            else if(args[0].equalsIgnoreCase("heal"))
            {
                Random rand = new Random();
                int mentin2;
               
                for(int counter =1; counter<=1;counter++)
                    {
                    mentin2 = 1+rand.nextInt(2);
                        if(mentin2 == 1)
                        {
                            player.setHealth(20);
                            player.sendMessage(ChatColor.GOLD + this.Title + "The God accepts your request!");
                        }
                        else if(mentin2 == 2)
                            {
                                player.sendMessage(ChatColor.DARK_RED + this.Title + "The God declines your request!");
                                player.setFireTicks(150);
                                return true;
                            }
                    }
            }
            return true;
        }
    }
    
    So this enabled the commands:
    /Prayerplus help
    /Prayerplus heal
    (perfect)

    But now I want something as:
    /Prayerplus buff "name1"
    /Prayerplus buff "name2"
    ...

    How would I do that please?

    Here is the small part on my "Main.class"
    Code:
    //Commands
              //Normal
              this.getCommand("prayerplus").setExecutor(new PrayerCommands(this));
             
              //Buffs
              this.getCommand("prayerplus").setExecutor(new PrayerCommandsBuffs(this));
    Is this right?


    Here is "PrayerCommandsBuff.class"
    Code:
    package me.mentin2.PrayersPlus;
     
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
     
    public class PrayerCommandsBuffs implements CommandExecutor
    {
        public Main plugin;
        public String Title = "[PrayerPlus] ";
     
        public PrayerCommandsBuffs(Main plugin)
        {
            this.plugin = plugin;
        }
       
        public boolean onCommand(CommandSender sender, Command command, String label,String[] args)
        {
            Player player = (Player) sender;
            player.getDisplayName();
           
            if(args.length !=1)
            {
                return true;
            }
            //Speed Buff
            else if(args[0].equalsIgnoreCase("speed"))
            {
                player.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 500, 1));
            }
            return true;
        }
    }
    
    I love minecraft community, nearly everyone helps each other :D
    I love that!
     
  10. Offline

    CevinWa

    God i'l try to make that don't have it in my head.
     
  11. Offline

    mentin2

    okay :) ty, please tell me if you find the solution :D
    I've tried some stuff, but haven't really found out,
    Oh and if you know, is it possible to put those "Commands" class inside a folder?
    So that I have the main class and the listeners:
    And a folder containing the files with the commands :)
     
  12. Offline

    CevinWa

    Package you mean?

    Just make args[1] and get target player

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 29, 2016
  13. Offline

    mentin2

    what do you mean? could you give me an example please?

    Yes? not sure...
    Here is a perfect example:
    https://github.com/slipcor/pvparena/tree/master/src/net/slipcor/pvparena
    There is a folder called "command"
    which contains all the "commands.class"

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 29, 2016
  14. Offline

    CevinWa

    Then you'll have to import the things you whant
    But that's quite alright
     
  15. Offline

    mentin2

    what do you mean by that?
    I've tried a little, but I'm sorry, I'm not so good with modding :) still learning...
    Well I do know how to import, but I can't figure out how to import the classes inside a folder....
     
  16. Offline

    CevinWa

    go to create new package place your classes in package go back to main in executor the Commandclass will go red hover over it and import. i think. Im just working with one separate package in my plugin and that's quite neet.
    :D
     
Thread Status:
Not open for further replies.

Share This Page