Error in code? (total confusion)

Discussion in 'Plugin Development' started by thapengwin, Jun 27, 2013.

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

    thapengwin

    I've compiled my plugin and upon launching the test-server, I got this error:
    Code:
    [SEVERE] Could not load 'plugins\SuperCraftBros.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NoSuchMethodException: me.slideroller.Supercraftbros.Supercraftbros.<init>()
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
    at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugins(CraftServer.java:239)
    at org.bukkit.craftbukkit.v1_5_R3.CraftServer.<init>(CraftServer.java:217)
    at net.minecraft.server.v1_5_R3.PlayerList.<init>(PlayerList.java:55)
    at net.minecraft.server.v1_5_R3.DedicatedPlayerList.<init>(SourceFile:11)
    at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:106)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:382)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
    Caused by: java.lang.NoSuchMethodException: me.slideroller.Supercraftbros.Supercraftbros.<init>()
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getConstructor(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:176)
    ... 9 more
    
    The class it points to (get ready, it's long):
    Code:java
    1. package me.slideroller.Supercraftbros;
    2.  
    3. import java.io.IOException;
    4. import java.util.HashMap;
    5. import java.util.HashSet;
    6. import java.util.Iterator;
    7. import java.util.Map;
    8. import java.util.Set;
    9.  
    10. import listeners.Disconnect;
    11. import listeners.Equip;
    12. import listeners.Interact;
    13.  
    14. import org.bukkit.Bukkit;
    15. import org.bukkit.ChatColor;
    16. import org.bukkit.Location;
    17. import org.bukkit.Server;
    18. import org.bukkit.World;
    19. import org.bukkit.block.Block;
    20. import org.bukkit.command.PluginCommand;
    21. import org.bukkit.configuration.ConfigurationSection;
    22. import org.bukkit.configuration.file.FileConfiguration;
    23. import org.bukkit.entity.Player;
    24. import org.bukkit.plugin.PluginManager;
    25. import org.bukkit.plugin.java.JavaPlugin;
    26. import org.bukkit.scheduler.BukkitScheduler;
    27.  
    28. @SuppressWarnings("unused")
    29. public class Supercraftbros extends JavaPlugin
    30. {
    31. public Map<String, Arena> arenas = new HashMap<String, Arena>();
    32. public Map<Player, String> playerArena = new HashMap<Player, String>();
    33. public Set<String> allowedCommands = new HashSet<String>();
    34.  
    35. public Supercraftbros(Supercraftbros supercraftbros) {
    36. }
    37. public String prefix = "[" + ChatColor.GREEN + "SCB" + ChatColor.RESET + "] ";
    38.  
    39. public void onEnable() {
    40. PluginManager pm = getServer().getPluginManager();
    41. BukkitScheduler ss = getServer().getScheduler();
    42.  
    43. this.allowedCommands.add("/scb");
    44. getCommand("Supercraftbros").setExecutor(new Supercraftbros(this));
    45. pm.registerEvents(new Interact(this), this);
    46. pm.registerEvents(new Disconnect(this), this);
    47. pm.registerEvents(new Equip(this), this);
    48. ss.scheduleSyncRepeatingTask(this, new Runnable()
    49. {
    50. public void run() {
    51. Iterator<String> list = Supercraftbros.this.arenas.keySet().iterator();
    52. while (list.hasNext()) {
    53. String name = (String)list.next();
    54. ((Arena)Supercraftbros.this.arenas.get(name)).ArenaTimer();
    55. }
    56. }
    57. }
    58. , 0L, 20L);
    59. if (getConfig().getConfigurationSection("arenas") != null)
    60. {
    61. Iterator<String> localIterator1 = getConfig()
    62. .getConfigurationSection("arenas").getKeys(false).iterator();
    63.  
    64. while (localIterator1.hasNext()) {
    65. String arenaName = (String)localIterator1.next();
    66. Arena arena1 = new Arena(Integer.valueOf(0), "Waiting", arenaName);
    67. this.arenas.put(arena1.getName().toLowerCase(), arena1);
    68. Arena arena = (Arena)this.arenas.get(arenaName.toLowerCase());
    69. if (getConfig().getConfigurationSection(
    70. "arenas." + arenaName + ".end") != null) {
    71. World world = Bukkit.getWorld(getConfig().getString(
    72. "arenas." + arenaName + ".end.World"));
    73. Location loc = world.getBlockAt(0, 0, 0).getLocation();
    74. loc.setX(getConfig().getDouble(
    75. "arenas." + arenaName + ".end.X"));
    76. loc.setY(getConfig().getDouble(
    77. "arenas." + arenaName + ".end.Y"));
    78. loc.setZ(getConfig().getDouble(
    79. "arenas." + arenaName + ".end.Z"));
    80. loc.setPitch(getConfig().getInt(
    81. "arenas." + arenaName + ".end.Pitch"));
    82. loc.setYaw(getConfig().getInt(
    83. "arenas." + arenaName + ".end.Yaw"));
    84. arena.setEnd(loc);
    85. }
    86. if (getConfig().getConfigurationSection(
    87. "arenas." + arenaName + ".lobby") != null) {
    88. World world = Bukkit.getWorld(getConfig().getString(
    89. "arenas." + arenaName + ".lobby.World"));
    90. Location loc = world.getBlockAt(0, 0, 0).getLocation();
    91. loc.setX(getConfig().getDouble(
    92. "arenas." + arenaName + ".lobby.X"));
    93. loc.setY(getConfig().getDouble(
    94. "arenas." + arenaName + ".lobby.Y"));
    95. loc.setZ(getConfig().getDouble(
    96. "arenas." + arenaName + ".lobby.Z"));
    97. loc.setPitch(getConfig().getInt(
    98. "arenas." + arenaName + ".lobby.Pitch"));
    99. loc.setYaw(getConfig().getInt(
    100. "arenas." + arenaName + ".lobby.Yaw"));
    101. arena.setLobby(loc);
    102. }
    103. if (getConfig().getIntegerList(
    104. "arenas." + arenaName + ".spawns") != null) {
    105. World world = Bukkit.getWorld(getConfig().getString("arenas." + arenaName + ".spawnsWorld"));
    106.  
    107. Iterator<?> localIterator2 = getConfig()
    108. .getConfigurationSection(
    109. "arenas." + arenaName + ".spawns")
    110. .getKeys(false).iterator();
    111.  
    112. while (localIterator2.hasNext())
    113. {
    114. String num = (String)localIterator2.next();
    115. Location loc = world.getBlockAt(0, 0, 0).getLocation();
    116. loc.setX(getConfig()
    117. .getDouble(
    118. "arenas." + arenaName + ".spawns." +
    119. num + ".X"));
    120. loc.setY(getConfig()
    121. .getDouble(
    122. "arenas." + arenaName + ".spawns." +
    123. num + ".Y"));
    124. loc.setZ(getConfig()
    125. .getDouble(
    126. "arenas." + arenaName + ".spawns." +
    127. num + ".Z"));
    128. loc.setPitch(getConfig().getInt(
    129. "arenas." + arenaName + ".spawns." + num +
    130. ".Pitch"));
    131. loc.setYaw(getConfig().getInt(
    132. "arenas." + arenaName + ".spawns." + num +
    133. ".Yaw"));
    134. arena.getSpawns()
    135. .put(Integer.valueOf(arena.getSpawns().size() + 1), loc);
    136. }
    137. }
    138. }
    139. }
    140. }
    141.  
    142. public void onDisable() {
    143. for (String arenaName : this.arenas.keySet()) {
    144. Arena arena = (Arena)this.arenas.get(arenaName);
    145. arenaName = arena.getName();
    146. if (arena.getEnd() != null) {
    147. Location loc = arena.getEnd();
    148. getConfig().set("arenas." + arenaName + ".end.X",
    149. Double.valueOf(loc.getX()));
    150. getConfig().set("arenas." + arenaName + ".end.Y",
    151. Double.valueOf(loc.getY()));
    152. getConfig().set("arenas." + arenaName + ".end.Z",
    153. Double.valueOf(loc.getZ()));
    154. getConfig().set("arenas." + arenaName + ".end.World",
    155. loc.getWorld().getName());
    156. getConfig().set("arenas." + arenaName + ".end.Yaw",
    157. Float.valueOf(loc.getYaw()));
    158. getConfig().set("arenas." + arenaName + ".end.Pitch",
    159. Float.valueOf(loc.getPitch()));
    160. }
    161. if (arena.getLobby() != null) {
    162. Location loc = arena.getLobby();
    163. getConfig().set("arenas." + arenaName + ".lobby.X",
    164. Double.valueOf(loc.getX()));
    165. getConfig().set("arenas." + arenaName + ".lobby.Y",
    166. Double.valueOf(loc.getY()));
    167. getConfig().set("arenas." + arenaName + ".lobby.Z",
    168. Double.valueOf(loc.getZ()));
    169. getConfig().set("arenas." + arenaName + ".lobby.World",
    170. loc.getWorld().getName());
    171. getConfig().set("arenas." + arenaName + ".lobby.Yaw",
    172. Float.valueOf(loc.getYaw()));
    173. getConfig().set("arenas." + arenaName + ".lobby.Pitch",
    174. Float.valueOf(loc.getPitch()));
    175. }
    176. if (!arena.getSpawns().isEmpty()) {
    177. for (Integer num : arena.getSpawns().keySet()) {
    178. Location loc = (Location)arena.getSpawns().get(num);
    179. getConfig().set(
    180. "arenas." + arenaName + ".spawns." + num + ".X",
    181. Double.valueOf(loc.getX()));
    182. getConfig().set(
    183. "arenas." + arenaName + ".spawns." + num + ".Y",
    184. Double.valueOf(loc.getY()));
    185. getConfig().set(
    186. "arenas." + arenaName + ".spawns." + num + ".Z",
    187. Double.valueOf(loc.getZ()));
    188. getConfig()
    189. .set("arenas." + arenaName + ".spawns." + num +
    190. ".Pitch", Float.valueOf(loc.getPitch()));
    191. getConfig().set(
    192. "arenas." + arenaName + ".spawns." + num + ".Yaw",
    193. Float.valueOf(loc.getYaw()));
    194. }
    195. getConfig().set("arenas." + arenaName + ".spawnsWorld",
    196. ((Location)arena.getSpawns().get(Integer.valueOf(1))).getWorld().getName());
    197. }
    198. try {
    199. getConfig().save(
    200. getDataFolder() +
    201. System.getProperty("SCB.FILE") +
    202. "config.yml");
    203. } catch (IOException e) {
    204. e.printStackTrace();
    205. }
    206. }
    207. }
    208. }

    I am completely confused, because the error points to me.slideroller.Supercraftbros.Supercraftbros.<init>(). Please help!
     
  2. Offline

    chasechocolate

    Remove the constructor.
     
  3. Offline

    dillyg10

    You need to add
    public Supercraftbros(){}

    Somewhere... (also the other constructor won't be called ;)).
     
Thread Status:
Not open for further replies.

Share This Page