Solved Economy error

Discussion in 'Plugin Development' started by Jaaakee224, Mar 2, 2014.

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

    Jaaakee224

    Got an error while running my new Economy plugin.

    Error:
    Code:
    9:25:59 PM [javastacktrace] java.lang.ClassCastException: me.Jaaakee224.Economy.commands.Add cannot be cast to java.util.Collection
    9:25:59 PM [javastacktrace]    at me.Jaaakee224.Economy.CommandManager.<init>(CommandManager.java:23) ~[?:?]
    9:25:59 PM [javastacktrace]    at me.Jaaakee224.Economy.Main.onEnable(Main.java:14) ~[?:?]
    9:25:59 PM [javastacktrace]    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:350) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:389) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:439) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:375) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at net.minecraft.server.v1_7_R1.MinecraftServer.m(MinecraftServer.java:342) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at net.minecraft.server.v1_7_R1.MinecraftServer.g(MinecraftServer.java:319) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at net.minecraft.server.v1_7_R1.MinecraftServer.a(MinecraftServer.java:275) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:175) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    9:26:00 PM [javastacktrace]    at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:424) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-42-g0551358-b3015jnks]
    
    It appears that the error is in my CommandManager and/or my Main file, here they are..

    Main
    Code:java
    1. package me.Jaaakee224.Economy;
    2.  
    3. import net.milkbowl.vault.economy.Economy;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.plugin.ServicePriority;
    7. import org.bukkit.plugin.java.JavaPlugin;
    8.  
    9. public class Main extends JavaPlugin {
    10.  
    11. public void onEnable() {
    12. SettingsManager.getInstance().setup(this);
    13.  
    14. CommandManager cm = new CommandManager();
    15. getCommand("eco").setExecutor(cm);
    16.  
    17. if (Bukkit.getServer().getPluginManager().getPlugin("Vault") != null) {
    18. Bukkit.getServer().getServicesManager().register(Economy.class, new VaultConnector(), this, ServicePriority.Highest);
    19. }
    20.  
    21. ScoreboardManager.getInstance().setup();
    22. }
    23. }


    CommandManager
    Code:java
    1. package me.Jaaakee224.Economy;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.Arrays;
    5. import java.util.Collection;
    6.  
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.command.Command;
    9. import org.bukkit.command.CommandExecutor;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12.  
    13. import commands.Add;
    14. import commands.EcoCommand;
    15. import commands.Remove;
    16.  
    17. public class CommandManager implements CommandExecutor {
    18.  
    19. private ArrayList<EcoCommand> cmds = new ArrayList<EcoCommand>();
    20.  
    21. @SuppressWarnings("unchecked")
    22. public CommandManager() {
    23. cmds.addAll((Collection<? extends EcoCommand>) new Add());
    24. cmds.addAll((Collection<? extends EcoCommand>) new Remove());
    25. }
    26.  
    27. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    28. if (cmd.getName().equalsIgnoreCase("eco")) {
    29. if (args.length == 0) {
    30. if (sender instanceof Player) {
    31. Player p = (Player) sender;
    32. p.sendMessage(ChatColor.GREEN + "Your balance is $" + SettingsManager.getInstance().getBalance(p.getName()));
    33. }
    34.  
    35. for (EcoCommand c : cmds) {
    36. sender.sendMessage("/eco " + c.getName() + " " + c.getArgs() + " - " + c.getDescription());
    37. }
    38.  
    39. return true;
    40. }
    41.  
    42. ArrayList<String> a = new ArrayList<String>(Arrays.asList(args));
    43. a.remove(0);
    44.  
    45. for (EcoCommand c : cmds) {
    46. if (c.getName().equalsIgnoreCase(args[0])) {
    47. try { c.run(sender, a.toArray(new String[a.size()])); }
    48. catch (Exception e) { sender.sendMessage(ChatColor.RED + "An error has occurred."); e.printStackTrace(); }
    49. return true;
    50. }
    51. }
    52.  
    53. sender.sendMessage(ChatColor.RED + "Invalid command!");
    54. }
    55.  
    56. return true;
    57. }
    58. }


    Please help me figure this out! :)
     
  2. Offline

    caseif

    What exactly are you trying to do in this code?
    Code:java
    1. cmds.addAll((Collection<?extends EcoCommand>)new Add());
    2. cmds.addAll((Collection<?extends EcoCommand>)new Remove());

    Because whatever it is, you're doing it wrong. Additionally, you may find this post to be of some use.

    EDIT: Okay, I see now. You don't need a type when instantiating an object unless you're storing it in a variable. Just remove the Collection type and you should be find. Seriously though, check out that thread I linked. It'll make debugging a lot easier in the future.
     
  3. Offline

    Jaaakee224

    ShadyPotato
    Before I added the cmds.addAll(//stuff)

    I had this..
    cmds.add(new Add());
    cmds.add(new Remove());

    I had been given an error at the cmds.add, the bold showing where I received the error. As I looked more into this code, I found out that someone else did the same thing, but with no error whatsoever.
     
  4. Offline

    caseif

    What exactly is your problem at this point?
     
  5. Offline

    Jaaakee224

    ShadyPotato I removed the Collection part, and I get an error in eclipse on the line cmds.addAll(//code)
     
  6. Offline

    Wolfey

    Why don't you ask PogoStick29 about this, I mean, it is from his tutorial...
     
    PogoStick29 likes this.
  7. Offline

    Jaaakee224

    Wolfey Seeing as how small the error was, I didn't feel like it had to go that way, but I've never worked with economy before, so I will tag him. PogoStick29

    If you need to see more of my code, please ask.

    Solved. Figured this out by doing some random gibberish and managed it to work, don't really know what went wrong. Anyways, solved. No need to comment anymore :p

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 7, 2016
Thread Status:
Not open for further replies.

Share This Page