package me.gtacraft.plugins.melondrop; import com.google.common.collect.Lists; import lombok.Getter; import me.gtacraft.plugins.melondrop.item.ItemData; import me.gtacraft.plugins.melondrop.listener.GTAMelonListener; import me.gtacraft.plugins.melondrop.task.MelonDropTask; import me.gtacraft.plugins.melondrop.util.FireworkEffectPlayer; import org.bukkit.*; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; import java.util.List; /** * Created by Connor on 7/7/14. Designed for the GTA-Melondrop project. */ public class GTAMelondrop extends JavaPlugin { private static GTAMelondrop instance; @Getter private static List<ItemData> drops = Lists.newArrayList(); public static Location min; public static Location max; public static int run_interval; public static FireworkEffectPlayer fireworks = new FireworkEffectPlayer(); public static GTAMelondrop get() { return instance; } public void onEnable() { instance = this; saveDefaultConfig(); World world = Bukkit.getWorld(getConfig().getString("worldBounds.name")); min = new Location(world, getConfig().getInt("worldBounds.xMin"), 100, getConfig().getInt("worldBounds.zMin")); max = new Location(world, getConfig().getInt("worldBounds.xMax"), 100, getConfig().getInt("worldBounds.zMax")); for (String item : getConfig().getStringList("items")) { drops.add(new ItemData(item)); } run_interval = getConfig().getInt("runInterval"); Runnable task = new MelonDropTask(); Bukkit.getScheduler().scheduleSyncRepeatingTask(this, task, 20l, 20l); getServer().getPluginManager().registerEvents(new GTAMelonListener(), this); } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { CommandSender player = sender; if (args.length == 0) { Location at = (MelonDropTask.wrapped == null ? null : MelonDropTask.wrapped.getLocation()); if (at == null) { player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c&l(!) &aThe &a&lGiant Magical Melon &ais nowhere to be found.")); } else { player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a&l(!) &aThe &a&lGiant Magical Melon &ais at &e&n(X: "+at.getBlockX()+", Y: "+at.getBlockY()+", Z: "+at.getBlockZ()+")&r&a!")); } return true; } else { if (!(sender.isOp())) { sender.sendMessage(ChatColor.RED+"You do not have permission to use this command!"); return true; } if (MelonDropTask.wrapped != null) { player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cThe &a&lGiant Magical Melon&r &cis still out in the wild! Destroy it before spawning another one!")); return true; } player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a&l(!) &aThe melon is dropping!")); MelonDropTask.seconds = getConfig().getInt("runInterval"); return true; } } public void onDisable() { saveDefaultConfig(); if (MelonDropTask.wrapped != null) MelonDropTask.wrapped.setType(Material.AIR); MelonDropTask.wrapped = null; } }