Help with invisible line

Discussion in 'Plugin Development' started by wxwsk8er, May 28, 2014.

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

    wxwsk8er

    Hello, I get an error on my server log when I try to run a plugin. Basically it says that there is a Metrics type declaration when theres not. Anyway here is the log:

    Code:java
    1. [22:54:00 ERROR]: Error occurred while enabling Annihilation v0.0.1 (Is it up to date?)
    2. java.lang.NoClassDefFoundError: net/milkbowl/vault/Metrics
    3. at net.coasterman10.Annihilation.Annihilation.onEnable(Annihilation.java:132) ~[?:?]
    4. at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    5. at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    6. at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    7. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:298) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    8. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:280) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    9. at net.minecraft.server.v1_7_R1.MinecraftServer.m(MinecraftServer.java:338) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    10. at net.minecraft.server.v1_7_R1.MinecraftServer.g(MinecraftServer.java:315) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    11. at net.minecraft.server.v1_7_R1.MinecraftServer.a(MinecraftServer.java:275) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    12. at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:175) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    13. at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:420) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    14. at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    15. Caused by: java.lang.ClassNotFoundException: net.milkbowl.vault.Metrics
    16. at java.net.URLClassLoader$1.run(URLClassLoader.java:202) ~[?:1.6.0_65]
    17. at java.security.AccessController.doPrivileged(Native Method) ~[?:1.6.0_65]
    18. at java.net.URLClassLoader.findClass(URLClassLoader.java:190) ~[?:1.6.0_65]
    19. at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    20. at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-38-g4b4e2cc-b2953jnks]
    21. at java.lang.ClassLoader.loadClass(ClassLoader.java:306) ~[?:1.6.0_65]
    22. at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ~[?:1.6.0_65]
    23. ... 12 more
    24.  


    The class:

    Code:java
    1. /*******************************************************************************
    2. * Copyright 2014 stuntguy3000 (Luke Anderson) and coasterman10.
    3. *
    4. * This program is free software; you can redistribute it and/or modify
    5. * it under the terms of the GNU General Public License as published by
    6. * the Free Software Foundation; either version 2 of the License, or
    7. * (at your option) any later version.
    8. *
    9. * This program is distributed in the hope that it will be useful,
    10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
    12. * GNU General Public License for more details.
    13. *
    14. * You should have received a copy of the GNU General Public License
    15. * along with this program; if not, write to the Free Software
    16. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
    17. * MA 02110-1301, USA.
    18. ******************************************************************************/
    19. package net.coasterman10.Annihilation;
    20.  
    21. import static net.coasterman10.Annihilation.Translation._;
    22.  
    23. import java.io.File;
    24. import java.util.ArrayList;
    25. import java.util.HashMap;
    26. import java.util.HashSet;
    27. import java.util.List;
    28. import java.util.Set;
    29. import java.util.logging.Level;
    30.  
    31. import net.coasterman10.Annihilation.api.GameStartEvent;
    32. import net.coasterman10.Annihilation.api.PhaseChangeEvent;
    33. import net.coasterman10.Annihilation.bar.BarUtil;
    34. import net.coasterman10.Annihilation.chat.ChatListener;
    35. import net.coasterman10.Annihilation.chat.ChatUtil;
    36. import net.coasterman10.Annihilation.commands.AnnihilationCommand;
    37. import net.coasterman10.Annihilation.commands.ClassCommand;
    38. import net.coasterman10.Annihilation.commands.DistanceCommand;
    39. import net.coasterman10.Annihilation.commands.MapCommand;
    40. import net.coasterman10.Annihilation.commands.StatsCommand;
    41. import net.coasterman10.Annihilation.commands.TeamCommand;
    42. import net.coasterman10.Annihilation.commands.TeamShortcutCommand;
    43. import net.coasterman10.Annihilation.commands.VoteCommand;
    44. import net.coasterman10.Annihilation.listeners.BossListener;
    45. import net.coasterman10.Annihilation.listeners.ClassAbilityListener;
    46. import net.coasterman10.Annihilation.listeners.CraftingListener;
    47. import net.coasterman10.Annihilation.listeners.EnderBrewingStandListener;
    48. import net.coasterman10.Annihilation.listeners.EnderChestListener;
    49. import net.coasterman10.Annihilation.listeners.EnderFurnaceListener;
    50. import net.coasterman10.Annihilation.listeners.PlayerListener;
    51. import net.coasterman10.Annihilation.listeners.ResourceListener;
    52. import net.coasterman10.Annihilation.listeners.SoulboundListener;
    53. import net.coasterman10.Annihilation.listeners.WandListener;
    54. import net.coasterman10.Annihilation.listeners.WorldListener;
    55. import net.coasterman10.Annihilation.manager.BossManager;
    56. import net.coasterman10.Annihilation.manager.ConfigManager;
    57. import net.coasterman10.Annihilation.manager.DatabaseManager;
    58. import net.coasterman10.Annihilation.manager.MapManager;
    59. import net.coasterman10.Annihilation.manager.PhaseManager;
    60. import net.coasterman10.Annihilation.manager.RestartHandler;
    61. import net.coasterman10.Annihilation.manager.ScoreboardManager;
    62. import net.coasterman10.Annihilation.manager.SignManager;
    63. import net.coasterman10.Annihilation.manager.VotingManager;
    64. import net.coasterman10.Annihilation.maps.MapLoader;
    65. import net.coasterman10.Annihilation.object.Boss;
    66. import net.coasterman10.Annihilation.object.GameTeam;
    67. import net.coasterman10.Annihilation.object.Kit;
    68. import net.coasterman10.Annihilation.object.PlayerMeta;
    69. import net.coasterman10.Annihilation.object.Shop;
    70. import net.coasterman10.Annihilation.stats.StatType;
    71. import net.coasterman10.Annihilation.stats.StatsManager;
    72. import org.apache.commons.lang.WordUtils;
    73. import org.bukkit.Bukkit;
    74. import org.bukkit.ChatColor;
    75. import org.bukkit.Location;
    76. import org.bukkit.Material;
    77. import org.bukkit.OfflinePlayer;
    78. import org.bukkit.World;
    79. import org.bukkit.command.CommandSender;
    80. import org.bukkit.configuration.Configuration;
    81. import org.bukkit.configuration.ConfigurationSection;
    82. import org.bukkit.configuration.file.FileConfiguration;
    83. import org.bukkit.configuration.file.YamlConfiguration;
    84. import org.bukkit.entity.Player;
    85. import org.bukkit.inventory.ItemStack;
    86. import org.bukkit.inventory.PlayerInventory;
    87. import org.bukkit.inventory.meta.ItemMeta;
    88. import org.bukkit.plugin.PluginManager;
    89. import org.bukkit.plugin.java.JavaPlugin;
    90. import org.bukkit.potion.PotionEffect;
    91. import org.bukkit.scoreboard.Team;
    92.  
    93. public final class Annihilation extends JavaPlugin {
    94. private ConfigManager configManager;
    95. private VotingManager voting;
    96. private MapManager maps;
    97. private PhaseManager timer;
    98. private ResourceListener resources;
    99. private EnderFurnaceListener enderFurnaces;
    100. private EnderBrewingStandListener enderBrewingStands;
    101. private EnderChestListener enderChests;
    102. private StatsManager stats;
    103. private SignManager sign;
    104. private ScoreboardManager sb;
    105. private DatabaseManager db;
    106. private BossManager boss;
    107.  
    108. public static HashMap<String, String> messages = new HashMap<String, String>();
    109.  
    110. public boolean useMysql = false;
    111. public boolean updateAvailable = false;
    112. public boolean motd = true;
    113. public String newVersion;
    114.  
    115. public int build = 1;
    116. public int lastJoinPhase = 2;
    117. public int respawn = 10;
    118.  
    119. public boolean runCommand = false;
    120. public List<String> commands = new ArrayList<String>();
    121.  
    122. public String mysqlName = "annihilation";
    123.  
    124. @Override
    125. public void onEnable() {
    126.  
    127. configManager = new ConfigManager(this);
    128. configManager.loadConfigFiles("config.yml", "maps.yml", "shops.yml",
    129. "stats.yml", "messages.yml");
    130.  
    131. MapLoader mapLoader = new MapLoader(getLogger(), getDataFolder());
    132.  
    133. runCommand = getConfig().contains("commandsToRunAtEndGame");
    134.  
    135. if (runCommand) {
    136. commands = getConfig().getStringList("commandsToRunAtEndGame");
    137. } else commands = null;
    138.  
    139. maps = new MapManager(this, mapLoader,
    140. configManager.getConfig("maps.yml"));
    141.  
    142. Configuration shops = configManager.getConfig("shops.yml");
    143. new Shop(this, "Weapon", shops);
    144. new Shop(this, "Brewing", shops);
    145.  
    146. stats = new StatsManager(this, configManager);
    147. resources = new ResourceListener(this);
    148. enderFurnaces = new EnderFurnaceListener(this);
    149. enderBrewingStands = new EnderBrewingStandListener(this);
    150. enderChests = new EnderChestListener();
    151. sign = new SignManager(this);
    152. Configuration config = configManager.getConfig("config.yml");
    153. timer = new PhaseManager(this, config.getInt("start-delay"),
    154. config.getInt("phase-period"));
    155. voting = new VotingManager(this);
    156. sb = new ScoreboardManager();
    157. boss = new BossManager(this);
    158.  
    159. PluginManager pm = getServer().getPluginManager();
    160.  
    161. File messagesFile = new File("plugins/" + getDescription().getName() + "/messages.yml");
    162. YamlConfiguration yml = YamlConfiguration.loadConfiguration(messagesFile);
    163.  
    164. for (String id : yml.getKeys(false))
    165. messages.put(id, yml.getString(id));
    166.  
    167. sign.loadSigns();
    168.  
    169. sb.resetScoreboard(ChatColor.DARK_AQUA + "Voting" + ChatColor.WHITE
    170. + " | " + ChatColor.GOLD + "/vote <name>");
    171.  
    172. build = this.getConfig().getInt("build", 5);
    173. lastJoinPhase = this.getConfig().getInt("lastJoinPhase", 2);
    174. respawn = this.getConfig().getInt("bossRespawnDelay", 10);
    175.  
    176. pm.registerEvents(resources, this);
    177. pm.registerEvents(enderFurnaces, this);
    178. pm.registerEvents(enderBrewingStands, this);
    179. pm.registerEvents(enderChests, this);
    180. pm.registerEvents(new ChatListener(this), this);
    181. pm.registerEvents(new PlayerListener(this), this);
    182. pm.registerEvents(new WorldListener(), this);
    183. pm.registerEvents(new SoulboundListener(), this);
    184. pm.registerEvents(new WandListener(this), this);
    185. pm.registerEvents(new CraftingListener(), this);
    186. pm.registerEvents(new ClassAbilityListener(this), this);
    187. pm.registerEvents(new BossListener(this), this);
    188.  
    189. getCommand("annihilation").setExecutor(new AnnihilationCommand(this));
    190. getCommand("class").setExecutor(new ClassCommand());
    191. getCommand("stats").setExecutor(new StatsCommand(stats));
    192. getCommand("team").setExecutor(new TeamCommand(this));
    193. getCommand("vote").setExecutor(new VoteCommand(voting));
    194. getCommand("red").setExecutor(new TeamShortcutCommand());
    195. getCommand("green").setExecutor(new TeamShortcutCommand());
    196. getCommand("yellow").setExecutor(new TeamShortcutCommand());
    197. getCommand("blue").setExecutor(new TeamShortcutCommand());
    198. getCommand("distance").setExecutor(new DistanceCommand(this));
    199. getCommand("map").setExecutor(new MapCommand(this, mapLoader));
    200.  
    201. BarUtil.init(this);
    202.  
    203. if (config.getString("stats").equalsIgnoreCase("sql"))
    204. useMysql = true;
    205.  
    206. motd = config.getBoolean("enableMotd", true);
    207.  
    208. if (useMysql) {
    209. String host = config.getString("MySQL.host");
    210. Integer port = config.getInt("MySQL.port");
    211. String name = config.getString("MySQL.name");
    212. String user = config.getString("MySQL.user");
    213. String pass = config.getString("MySQL.pass");
    214. db = new DatabaseManager(host, port, name, user, pass, this);
    215.  
    216. db.query("CREATE TABLE IF NOT EXISTS `" + mysqlName + "` ( `username` varchar(16) NOT NULL, "
    217. + "`kills` int(16) NOT NULL, `deaths` int(16) NOT NULL, `wins` int(16) NOT NULL, "
    218. + "`losses` int(16) NOT NULL, `nexus_damage` int(16) NOT NULL, "
    219. + "UNIQUE KEY `username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;");
    220. } else
    221. db = new DatabaseManager(this);
    222.  
    223. if (getServer().getPluginManager().isPluginEnabled("Vault")) {
    224. VaultHooks.vault = true;
    225. if (!VaultHooks.instance().setupPermissions()) {
    226. VaultHooks.vault = false;
    227. getLogger().warning("Unable to load Vault: No permission plugin found.");
    228. } else {
    229. if (!VaultHooks.instance().setupChat()) {
    230. VaultHooks.vault = false;
    231. getLogger().warning("Unable to load Vault: No chat plugin found.");
    232. } else {
    233. getLogger().info("Vault hook initalized!");
    234. }
    235. }
    236. } else {
    237. getLogger().warning("Vault not found! Permissions features disabled.");
    238. }
    239.  
    240. reset();
    241.  
    242. ChatUtil.setRoman(getConfig().getBoolean("roman", false));
    243. }
    244.  
    245. public boolean startTimer() {
    246. if (timer.isRunning())
    247. return false;
    248.  
    249. timer.start();
    250.  
    251. return true;
    252. }
    253.  
    254. public void loadMap(final String map) {
    255. FileConfiguration config = configManager.getConfig("maps.yml");
    256. ConfigurationSection section = config.getConfigurationSection(map);
    257.  
    258. World w = getServer().getWorld(map);
    259.  
    260. for (GameTeam team : GameTeam.teams()) {
    261. String name = team.name().toLowerCase();
    262. if (section.contains("spawns." + name)) {
    263. for (String s : section.getStringList("spawns." + name))
    264. team.addSpawn(Util.parseLocation(getServer().getWorld(map),
    265. s));
    266. }
    267. if (section.contains("nexuses." + name)) {
    268. Location loc = Util.parseLocation(w,
    269. section.getString("nexuses." + name));
    270. team.loadNexus(loc, 75);
    271. }
    272. if (section.contains("furnaces." + name)) {
    273. Location loc = Util.parseLocation(w,
    274. section.getString("furnaces." + name));
    275. enderFurnaces.setFurnaceLocation(team, loc);
    276. loc.getBlock().setType(Material.FURNACE);
    277. }
    278. if (section.contains("brewingstands." + name)) {
    279. Location loc = Util.parseLocation(w,
    280. section.getString("brewingstands." + name));
    281. enderBrewingStands.setBrewingStandLocation(team, loc);
    282. loc.getBlock().setType(Material.BREWING_STAND);
    283. }
    284. if (section.contains("enderchests." + name)) {
    285. Location loc = Util.parseLocation(w,
    286. section.getString("enderchests." + name));
    287. enderChests.setEnderChestLocation(team, loc);
    288. loc.getBlock().setType(Material.ENDER_CHEST);
    289. }
    290. }
    291.  
    292. if (section.contains("bosses")) {
    293. HashMap<String, Boss> bosses = new HashMap<String, Boss>();
    294. ConfigurationSection sec = section
    295. .getConfigurationSection("bosses");
    296. for (String boss : sec.getKeys(false))
    297. bosses.put(
    298. boss,
    299. new Boss(boss, sec.getInt(boss + ".hearts") * 2, sec
    300. .getString(boss + ".name"), Util.parseLocation(
    301. w, sec.getString(boss + ".spawn")), Util
    302. .parseLocation(w,
    303. sec.getString(boss + ".chest"))));
    304. boss.loadBosses(bosses);
    305. }
    306.  
    307. if (section.contains("diamonds")) {
    308. Set<Location> diamonds = new HashSet<Location>();
    309. for (String s : section.getStringList("diamonds"))
    310. diamonds.add(Util.parseLocation(w, s));
    311. resources.loadDiamonds(diamonds);
    312. }
    313. }
    314.  
    315. public void startGame() {
    316. for (Player p : Bukkit.getOnlinePlayers()) {
    317. for (Player pp : Bukkit.getOnlinePlayers()) {
    318. p.showPlayer(pp);
    319. pp.showPlayer(p);
    320. }
    321. }
    322.  
    323. Bukkit.getPluginManager().callEvent(
    324. new GameStartEvent(maps.getCurrentMap()));
    325. sb.scores.clear();
    326.  
    327. for (OfflinePlayer score : sb.sb.getPlayers())
    328. sb.sb.resetScores(score);
    329.  
    330. sb.obj.setDisplayName(ChatColor.DARK_AQUA + "Map: "
    331. + WordUtils.capitalize(voting.getWinner()));
    332.  
    333. for (GameTeam t : GameTeam.teams()) {
    334. sb.scores.put(t.name(), sb.obj.getScore(Bukkit
    335. .getOfflinePlayer(WordUtils.capitalize(t.name()
    336. .toLowerCase() + " Nexus"))));
    337. sb.scores.get(t.name()).setScore(t.getNexus().getHealth());
    338.  
    339. Team sbt = sb.sb.registerNewTeam(t.name() + "SB");
    340. sbt.addPlayer(Bukkit.getOfflinePlayer(WordUtils
    341. .capitalize(WordUtils.capitalize(t.name().toLowerCase()
    342. + " Nexus"))));
    343. sbt.setPrefix(t.color().toString());
    344. }
    345.  
    346. sb.obj.setDisplayName(ChatColor.DARK_AQUA + "Map: "
    347. + WordUtils.capitalize(voting.getWinner()));
    348.  
    349. for (Player p : getServer().getOnlinePlayers())
    350. if (PlayerMeta.getMeta(p).getTeam() != GameTeam.NONE)
    351. Util.sendPlayerToGame(p, this);
    352.  
    353. sb.update();
    354.  
    355. getServer().getScheduler().runTaskTimer(this, new Runnable() {
    356. public void run() {
    357. for (Player p : getServer().getOnlinePlayers()) {
    358. if (PlayerMeta.getMeta(p).getKit() == Kit.SCOUT) {
    359. PlayerMeta.getMeta(p).getKit().addScoutParticles(p);
    360. }
    361. }
    362. }
    363. }, 0L, 1200L);
    364.  
    365. getServer().getScheduler().runTaskTimer(this, new Runnable() {
    366. public void run() {
    367. for (GameTeam t : GameTeam.values()) {
    368. if (t != GameTeam.NONE && t.getNexus().isAlive()) {
    369. Location nexus = t.getNexus().getLocation().clone();
    370. nexus.add(0.5, 0, 0.5);
    371. Util.ParticleEffects.sendToLocation(Util.ParticleEffects.ENDER, nexus, 1F, 1F, 1F, 0, 20);
    372. Util.ParticleEffects.sendToLocation(Util.ParticleEffects.ENCHANTMENT_TABLE, nexus, 1F, 1F, 1F, 0, 20);
    373. }
    374. }
    375. }
    376. }, 100L, 5L);
    377. }
    378.  
    379. public void advancePhase() {
    380. ChatUtil.phaseMessage(timer.getPhase());
    381.  
    382. if (timer.getPhase() == 2)
    383. boss.spawnBosses();
    384.  
    385. if (timer.getPhase() == 3)
    386. resources.spawnDiamonds();
    387.  
    388. Bukkit.getPluginManager().callEvent(
    389. new PhaseChangeEvent(timer.getPhase()));
    390.  
    391. getSignHandler().updateSigns(GameTeam.RED);
    392. getSignHandler().updateSigns(GameTeam.BLUE);
    393. getSignHandler().updateSigns(GameTeam.GREEN);
    394. getSignHandler().updateSigns(GameTeam.YELLOW);
    395. }
    396.  
    397. public void onSecond() {
    398. long time = timer.getTime();
    399.  
    400. if (time == -5L) {
    401. String winner = voting.getWinner();
    402. maps.selectMap(winner);
    403. getServer().broadcastMessage(
    404. ChatColor.GREEN + WordUtils.capitalize(winner)
    405. + " was chosen!");
    406. loadMap(winner);
    407.  
    408. voting.end();
    409. }
    410.  
    411. if (time == 0L)
    412. startGame();
    413. }
    414.  
    415. public int getPhase() {
    416. return timer.getPhase();
    417. }
    418.  
    419. public MapManager getMapManager() {
    420. return maps;
    421. }
    422.  
    423. public StatsManager getStatsManager() {
    424. return stats;
    425. }
    426.  
    427. public DatabaseManager getDatabaseHandler() {
    428. return db;
    429. }
    430.  
    431. public ConfigManager getConfigManager() {
    432. return configManager;
    433. }
    434.  
    435. public int getPhaseDelay() {
    436. return configManager.getConfig("config.yml").getInt("phase-period");
    437. }
    438.  
    439. public void log(String m, Level l) {
    440. getLogger().log(l, m);
    441. }
    442.  
    443. public VotingManager getVotingManager() {
    444. return voting;
    445. }
    446.  
    447. public ScoreboardManager getScoreboardHandler() {
    448. return sb;
    449. }
    450.  
    451. public void endGame(GameTeam winner) {
    452. if (winner == null)
    453. return;
    454.  
    455. ChatUtil.winMessage(winner);
    456. timer.stop();
    457.  
    458. for (Player p : getServer().getOnlinePlayers()) {
    459. if (PlayerMeta.getMeta(p).getTeam() == winner)
    460. stats.incrementStat(StatType.WINS, p);
    461. }
    462.  
    463. long restartDelay = configManager.getConfig("config.yml").getLong(
    464. "restart-delay");
    465. RestartHandler rs = new RestartHandler(this, restartDelay);
    466. rs.start(timer.getTime(), winner.getColor(winner));
    467. }
    468.  
    469. public void reset() {
    470. sb.resetScoreboard(ChatColor.DARK_AQUA + "Voting" + ChatColor.WHITE
    471. + " | " + ChatColor.GOLD + "/vote <name>");
    472. maps.reset();
    473. timer.reset();
    474. PlayerMeta.reset();
    475. for (Player p : getServer().getOnlinePlayers()) {
    476. PlayerMeta.getMeta(p).setTeam(GameTeam.NONE);
    477. p.teleport(maps.getLobbySpawnPoint());
    478. BarUtil.setMessageAndPercent(p, ChatColor.DARK_AQUA
    479. + "Welcome to Annihilation!", 0.01F);
    480. p.setMaxHealth(20D);
    481. p.setHealth(20D);
    482. p.setFoodLevel(20);
    483. p.setSaturation(20F);
    484. }
    485.  
    486. voting.start();
    487. sb.update();
    488.  
    489. for (Player p : Bukkit.getOnlinePlayers()) {
    490. for (Player pp : Bukkit.getOnlinePlayers()) {
    491. p.showPlayer(pp);
    492. pp.showPlayer(p);
    493. }
    494. }
    495.  
    496. Bukkit.getScheduler().runTaskLater(this, new Runnable() {
    497. @SuppressWarnings("deprecation")
    498. public void run() {
    499. for (Player p : getServer().getOnlinePlayers()) {
    500. PlayerInventory inv = p.getInventory();
    501. inv.setHelmet(null);
    502. inv.setChestplate(null);
    503. inv.setLeggings(null);
    504. inv.setBoots(null);
    505.  
    506. p.getInventory().clear();
    507.  
    508. for (PotionEffect effect : p.getActivePotionEffects())
    509. p.removePotionEffect(effect.getType());
    510.  
    511. p.setLevel(0);
    512. p.setExp(0);
    513. p.setSaturation(20F);
    514.  
    515. ItemStack selector = new ItemStack(Material.FEATHER);
    516. ItemMeta itemMeta = selector.getItemMeta();
    517. itemMeta.setDisplayName(ChatColor.AQUA
    518. + "Right click to select class");
    519. selector.setItemMeta(itemMeta);
    520.  
    521. p.getInventory().setItem(0, selector);
    522.  
    523. p.updateInventory();
    524. }
    525.  
    526. for (GameTeam t : GameTeam.values())
    527. if (t != GameTeam.NONE)
    528. sign.updateSigns(t);
    529.  
    530. checkStarting();
    531. }
    532. }, 2L);
    533. }
    534.  
    535. public void checkWin() {
    536. int alive = 0;
    537. GameTeam aliveTeam = null;
    538. for (GameTeam t : GameTeam.teams()) {
    539. if (t.getNexus().isAlive()) {
    540. alive++;
    541. aliveTeam = t;
    542. }
    543. }
    544. if (alive == 1) {
    545. endGame(aliveTeam);
    546. }
    547. }
    548.  
    549. public SignManager getSignHandler() {
    550. return sign;
    551. }
    552.  
    553. public void setSignHandler(SignManager sign) {
    554. this.sign = sign;
    555. }
    556.  
    557. public void checkStarting() {
    558. if (!timer.isRunning()) {
    559. if (Bukkit.getOnlinePlayers().length >= getConfig().getInt(
    560. "requiredToStart"))
    561. timer.start();
    562. }
    563. }
    564.  
    565. public BossManager getBossManager() {
    566. return boss;
    567. }
    568.  
    569. public PhaseManager getPhaseManager() {
    570. return timer;
    571. }
    572.  
    573. public void listTeams(CommandSender sender) {
    574. sender.sendMessage(ChatColor.GRAY + "============[ "
    575. + ChatColor.DARK_AQUA + "Teams" + ChatColor.GRAY
    576. + " ]============");
    577. for (GameTeam t : GameTeam.teams()) {
    578. int size = 0;
    579.  
    580. for (Player p : Bukkit.getOnlinePlayers()) {
    581. PlayerMeta meta = PlayerMeta.getMeta(p);
    582. if (meta.getTeam() == t)
    583. size++;
    584. }
    585.  
    586. if (size != 1) {
    587. sender.sendMessage(t.coloredName() + " - " + size + " " + _("INFO_TEAM_LIST_PLAYERS") + _("DYNAMIC_S"));
    588. } else {
    589. sender.sendMessage(t.coloredName() + " - " + size + " " + _("INFO_TEAM_LIST_PLAYERS"));
    590. }
    591. }
    592. sender.sendMessage(ChatColor.GRAY + "===============================");
    593. }
    594.  
    595. public void joinTeam(Player player, String team) {
    596. PlayerMeta meta = PlayerMeta.getMeta(player);
    597. if (meta.getTeam() != GameTeam.NONE && !player.hasPermission("annihilation.bypass.teamlimitor")) {
    598. player.sendMessage(ChatColor.DARK_AQUA + _("ERROR_PLAYER_NOSWITCHTEAM"));
    599. return;
    600. }
    601.  
    602. GameTeam target;
    603. try {
    604. target = GameTeam.valueOf(team.toUpperCase());
    605. player.sendMessage(ChatColor.RED + _("ERROR_GAME_INVALIDTEAM"));
    606. listTeams(player);
    607. return;
    608. }
    609.  
    610. if (Util.isTeamTooBig(target)
    611. && !player.hasPermission("annihilation.bypass.teamlimit")) {
    612. player.sendMessage(ChatColor.RED + _("ERROR_GAME_TEAMFULL"));
    613. return;
    614. }
    615.  
    616. if (target.getNexus() != null) {
    617. if (target.getNexus().getHealth() == 0 && getPhase() > 1) {
    618. player.sendMessage(ChatColor.RED + _("ERROR_GAME_TEAMNONEXUS"));
    619. return;
    620. }
    621. }
    622.  
    623. if (getPhase() > lastJoinPhase
    624. && !player.hasPermission("annhilation.bypass.phaselimiter")) {
    625. player.kickPlayer(ChatColor.RED
    626. + "You cannot join the game in this phase!");
    627. return;
    628. }
    629.  
    630. player.sendMessage(ChatColor.DARK_AQUA + "You joined "
    631. + target.coloredName());
    632. meta.setTeam(target);
    633.  
    634. getScoreboardHandler().teams.get(team.toUpperCase()).addPlayer(
    635. player);
    636.  
    637. if (getPhase() > 0) {
    638. Util.sendPlayerToGame(player, this);
    639. }
    640.  
    641. getSignHandler().updateSigns(GameTeam.RED);
    642. getSignHandler().updateSigns(GameTeam.BLUE);
    643. getSignHandler().updateSigns(GameTeam.GREEN);
    644. getSignHandler().updateSigns(GameTeam.YELLOW);
    645. }
    646. }
    647.  
     
  2. Offline

    CarPet

    Is this your plugin?
     
  3. Offline

    mythbusterma

    The error is most likely caused because that plugin is looking for Vault and cannot find it. Try adding it to your server.
     
Thread Status:
Not open for further replies.

Share This Page