Solved Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Iterable

Discussion in 'Plugin Development' started by Qaisar101, Aug 19, 2014.

?

What is better?

  1. Cake!

    50.0%
  2. TNT!

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

    Qaisar101

    HELP! I got this error in my plugin:
    Code:java
    1. [14:56:27 ERROR]: Could not load 'plugins\Vitals.jar' in folder 'plugins'
    2. org.bukkit.plugin.InvalidDescriptionException: depend is of wrong type
    3. at org.bukkit.plugin.PluginDescriptionFile.makePluginNameList(PluginDescriptionFile.java:1046) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    4. at org.bukkit.plugin.PluginDescriptionFile.loadMap(PluginDescriptionFile.java:950) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    5. at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.java:232) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    6. at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:155) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    7. at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:133) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    8. at org.bukkit.craftbukkit.v1_7_R3.CraftServer.loadPlugins(CraftServer.java:371) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    9. at net.minecraft.server.v1_7_R3.DedicatedServer.init(DedicatedServer.java:135) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    10. at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:457) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    11. at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    12. Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Iterable
    13. at org.bukkit.plugin.PluginDescriptionFile.makePluginNameList(PluginDescriptionFile.java:1042) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1517]
    14. ... 8 more


    Here is my plugin.yml:
    Code:java
    1. name: Vitals
    2. author: BukkitQaisar
    3. version: 1.04
    4. description: Adds a lot of VITAL commands. /HUB, Fireworks, BanLists and etc.!
    5. prefix: Vitals
    6. main: me.BukkitQaisar.Vitals.main
    7. depend: Essentials
    8. commands:
    9. hub:
    10. description: Teleports player to hub/spawn!
    11. usage: §c§lUSAGE is /HUB.


    Here is the main.class:
    Code:java
    1. package me.BukkitQaisar.Vitals;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.plugin.java.JavaPlugin;
    9.  
    10. public class main extends JavaPlugin{
    11.  
    12. public void onEnable() {
    13. getLogger().info("Successfully enabled plugin! :)");
    14. Bukkit.getPluginManager().registerEvents(new fireworkListener (this), this);
    15. Bukkit.getPluginManager().registerEvents(new blockListener (this), this);
    16. }
    17.  
    18. public void onDisable() {
    19. getLogger().info("Successfully disabled plugin! :(");
    20. }
    21.  
    22. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    23. if(sender instanceof Player) {
    24. Player player = (Player) sender;
    25. if(cmd.getName().equalsIgnoreCase("hub")) {
    26. String hub = "spawn " + player.getName();
    27. Bukkit.dispatchCommand(Bukkit.getConsoleSender(), hub);
    28. player.sendMessage(ChatColor.AQUA + "Teleporting to " + ChatColor.DARK_AQUA + "Hub" + ChatColor.AQUA + "!");
    29.  
    30. }
    31. }
    32. return false;
    33.  
    34. }
    35. }


    Here is the fireworkListener.class:
    Code:java
    1. package me.BukkitQaisar.Vitals;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Color;
    5. import org.bukkit.FireworkEffect;
    6. import org.bukkit.FireworkEffect.Type;
    7. import org.bukkit.entity.Firework;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerJoinEvent;
    11. import org.bukkit.inventory.meta.FireworkMeta;
    12. import org.bukkit.plugin.java.JavaPlugin;
    13.  
    14. public class fireworkListener extends JavaPlugin implements Listener
    15. {
    16. public main plugin;
    17.  
    18. public fireworkListener(main main)
    19. {
    20. this.plugin = main;
    21. }
    22.  
    23. @EventHandler
    24. public void onPlayerJoin (final PlayerJoinEvent pje) {
    25. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
    26. public void run(){
    27.  
    28. Firework f = (Firework) pje.getPlayer().getWorld().spawn(pje.getPlayer().getLocation(), Firework.class);
    29.  
    30. FireworkMeta fm = f.getFireworkMeta();
    31. fm.addEffect(FireworkEffect.builder()
    32. .flicker(true)
    33. .trail(true)
    34. .with(Type.BALL)
    35. .with(Type.BALL_LARGE)
    36. .withColor(Color.AQUA)
    37. .withColor(Color.BLUE)
    38. .withColor(Color.PURPLE)
    39. .withFade(Color.TEAL)
    40. .build());
    41. fm.setPower(2);
    42. f.setFireworkMeta(fm);
    43.  
    44. }
    45. }, 30);
    46. }
    47. }


    Here is the blockListener.class:
    Code:java
    1. package me.BukkitQaisar.Vitals;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.block.BlockPlaceEvent;
    9. import org.bukkit.plugin.java.JavaPlugin;
    10.  
    11. public class blockListener extends JavaPlugin implements Listener
    12. {
    13. public main plugin;
    14.  
    15. public blockListener(main main)
    16. {
    17. this.plugin = main;
    18. }
    19.  
    20. public static Material[] banList = {Material.BEDROCK, Material.TNT};
    21.  
    22. @EventHandler
    23.  
    24. public void onBlockPlace(BlockPlaceEvent event) {
    25. Material block = event.getBlock().getType();
    26. Player player = event.getPlayer();
    27. for(Material blocked : banList) {
    28. if(blocked == block){
    29. if(player.isOp()){
    30. //BAN LIST OVERRIDE
    31. }
    32. else {
    33. event.getBlock().setType(Material.CAKE_BLOCK);
    34. player.sendMessage(ChatColor.RED + "You are forbidden to place that! Your dreams have been turned to CAKE!");
    35. }
    36. }
    37. }
    38. }
    39. }
     
  2. Offline

    sparta417

    Change your description to:

    1. description: Adds a lot of vital commands.
     
  3. Offline

    Konato_K

    The problem is
    Code:
    depend: Essentials
    , you're using a String while it should be a String list.
    Change it for
    Code:
    depend: [Essentials]
    Refer to http://wiki.bukkit.org/Plugin_YAML
     
  4. Offline

    Qaisar101

    Konato_K Oh, I thought you use that when you need multiple plugins! OOPS! Let me try that... Wow, thank you! Let me change it to solved!
     
Thread Status:
Not open for further replies.

Share This Page