From 8ab502183444068af7ffe27bd27dbd870dca5276 Mon Sep 17 00:00:00 2001 From: alisolarflare Date: Mon, 26 Dec 2016 22:42:41 -0500 Subject: [PATCH] Adjusted fireworks and dungeon --- .../dungeons/dungeons/GenericDungeonA1.java | 186 +++++++++--------- .../hotfix/hotfixes/ElytraFireworks.java | 36 ++++ 2 files changed, 131 insertions(+), 91 deletions(-) create mode 100644 src/buttondevteam/alipresents/components/hotfix/hotfixes/ElytraFireworks.java diff --git a/src/buttondevteam/alipresents/components/dungeons/dungeons/GenericDungeonA1.java b/src/buttondevteam/alipresents/components/dungeons/dungeons/GenericDungeonA1.java index b8ad2bd..c04e93d 100644 --- a/src/buttondevteam/alipresents/components/dungeons/dungeons/GenericDungeonA1.java +++ b/src/buttondevteam/alipresents/components/dungeons/dungeons/GenericDungeonA1.java @@ -1,91 +1,95 @@ -package buttondevteam.alipresents.components.dungeons.dungeons; - -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.plugin.java.JavaPlugin; - -public class GenericDungeonA1 extends Dungeon{ - private Location entrance; - private Location exit; - private JavaPlugin plugin; - - public GenericDungeonA1(JavaPlugin plugin){ - if(!initDungeon(plugin)){ - plugin.getServer().broadcastMessage("DungeonA1 cant be initialized!"); - } - this.plugin = plugin; - } - private boolean initDungeon(JavaPlugin plugin){ - /* - if (plugin.getServer().getWorld("Dungeons") == null || plugin.getServer().getWorld("world") == null){ - plugin.getServer().broadcastMessage("GenericDungeonA1Error! One of the worlds is null!"); - plugin.getServer().broadcastMessage("Available Worlds... " + plugin.getServer().getWorlds().toString()); - return false; - }*/ - Location temp; - if ((temp = loadLocation(plugin, "dungeons.dungeona1.enter")) != null){ - entrance = temp; - }else if(plugin.getServer().getWorld("Dungeons") != null){ - entrance = new Location(plugin.getServer().getWorld("Dungeons"), -7.5, 138.0, -91.5); - }else{ - plugin.getServer().broadcastMessage("There is no working default dungeon entrance for A1, setting to null"); - entrance = null; - } - - temp = null; - if ((temp = loadLocation(plugin, "dungeons.dungeona1.exit")) != null){ - exit = temp; - }else if (plugin.getServer().getWorld("world") != null){ - exit = plugin.getServer().getWorld("world").getSpawnLocation().clone(); - }else{ - plugin.getServer().broadcastMessage("There is no working default dungeon exit for A1, setting to null"); - exit = null; - } - - if (entrance == null || exit == null){ - plugin.getServer().broadcastMessage("DungeonA1Error! Dungeon Entrance or Exit is null!"); - plugin.getServer().broadcastMessage("Dungeon Entrance: " + entrance.toString()); - plugin.getServer().broadcastMessage("Dungeon Exit: " + exit.toString()); - return false; - } - return true; - } - @Override - public void setEntrance(Location location){ - saveLocation(plugin, "dungeons.dungeona1.enter", location); - entrance = location; - } - @Override - public void setExit(Location location){ - saveLocation(plugin, "dungeons.dungeona1.exit", location); - exit = location; - } - @Override - public Location getDungeonEntrance() { - return entrance; - } - @Override - public Location getDungeonExit() { - return exit; - } - private void saveLocation(JavaPlugin plugin, String path, Location location){ - plugin.getConfig().set(path+".world", location.getWorld().getName()); - plugin.getConfig().set(path+".x", location.getX()); - plugin.getConfig().set(path+".y", location.getY()); - plugin.getConfig().set(path+".z", location.getZ()); - plugin.saveConfig(); - } - private Location loadLocation(JavaPlugin plugin, String path){ - try{ - World world = plugin.getServer().getWorld(plugin.getConfig().getString(path+".world")); - double x = plugin.getConfig().getDouble(path+".x"); - double y = plugin.getConfig().getDouble(path+".y"); - double z = plugin.getConfig().getDouble(path+".z"); - - return new Location(world, x, y, z); - }catch(Exception e){ - e.printStackTrace(); - return null; - } - } -} +package buttondevteam.alipresents.components.dungeons.dungeons; + +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.plugin.java.JavaPlugin; + +public class GenericDungeonA1 extends Dungeon{ + private Location entrance; + private Location exit; + private JavaPlugin plugin; + + public GenericDungeonA1(JavaPlugin plugin){ + if(!initDungeon(plugin)){ + plugin.getServer().broadcastMessage("DungeonA1 cant be initialized!"); + } + this.plugin = plugin; + } + private boolean initDungeon(JavaPlugin plugin){ + /* + if (plugin.getServer().getWorld("Dungeons") == null || plugin.getServer().getWorld("world") == null){ + plugin.getServer().broadcastMessage("GenericDungeonA1Error! One of the worlds is null!"); + plugin.getServer().broadcastMessage("Available Worlds... " + plugin.getServer().getWorlds().toString()); + return false; + }*/ + Location temp; + if ((temp = loadLocation(plugin, "dungeons.dungeona1.enter")) != null){ + entrance = temp; + }else if(plugin.getServer().getWorld("Dungeons") != null){ + entrance = new Location(plugin.getServer().getWorld("Dungeons"), -7.5, 138.0, -91.5); + }else{ + plugin.getServer().broadcastMessage("There is no working default dungeon entrance for A1, setting to null"); + entrance = null; + } + + temp = null; + if ((temp = loadLocation(plugin, "dungeons.dungeona1.exit")) != null){ + exit = temp; + }else if (plugin.getServer().getWorld("world") != null){ + exit = plugin.getServer().getWorld("world").getSpawnLocation().clone(); + }else{ + plugin.getServer().broadcastMessage("There is no working default dungeon exit for A1, setting to null"); + exit = null; + } + + if (entrance == null || exit == null){ + plugin.getServer().broadcastMessage("DungeonA1Error! Dungeon Entrance or Exit is null!"); + plugin.getServer().broadcastMessage("Dungeon Entrance: " + entrance.toString()); + plugin.getServer().broadcastMessage("Dungeon Exit: " + exit.toString()); + return false; + } + return true; + } + @Override + public void setEntrance(Location location){ + saveLocation(plugin, "dungeons.dungeona1.enter", location); + entrance = location; + } + @Override + public void setExit(Location location){ + saveLocation(plugin, "dungeons.dungeona1.exit", location); + exit = location; + } + @Override + public Location getDungeonEntrance() { + return entrance; + } + @Override + public Location getDungeonExit() { + return exit; + } + private void saveLocation(JavaPlugin plugin, String path, Location location){ + plugin.getConfig().set(path+".world", location.getWorld().getName()); + plugin.getConfig().set(path+".x", location.getX()); + plugin.getConfig().set(path+".y", location.getY()); + plugin.getConfig().set(path+".z", location.getZ()); + plugin.saveConfig(); + } + private Location loadLocation(JavaPlugin plugin, String path){ + try{ + String worldname = plugin.getConfig().getString(path+".world"); + if(worldname == null) return null; + + World world = plugin.getServer().getWorld(worldname); + double x = plugin.getConfig().getDouble(path+".x"); + double y = plugin.getConfig().getDouble(path+".y"); + double z = plugin.getConfig().getDouble(path+".z"); + if (world == null) return null; + + return new Location(world, x, y, z); + }catch(Exception e){ + e.printStackTrace(); + return null; + } + } +} diff --git a/src/buttondevteam/alipresents/components/hotfix/hotfixes/ElytraFireworks.java b/src/buttondevteam/alipresents/components/hotfix/hotfixes/ElytraFireworks.java new file mode 100644 index 0000000..c7101a7 --- /dev/null +++ b/src/buttondevteam/alipresents/components/hotfix/hotfixes/ElytraFireworks.java @@ -0,0 +1,36 @@ +package buttondevteam.alipresents.components.hotfix.hotfixes; + +import org.bukkit.FireworkEffect; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.FireworkMeta; +import org.bukkit.plugin.java.JavaPlugin; + +public class ElytraFireworks implements Listener { + JavaPlugin plugin; + public ElytraFireworks(JavaPlugin plugin) { + this.plugin = plugin; + } + public void onRightClick(PlayerInteractEvent event){ + //ACTION SANITATION + if(!(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK)) return; + if(!(event.getPlayer().isGliding())) return; + if(!(event.getMaterial() == Material.FIREWORK)) return; + + //BOW SANITATION + ItemStack firework = event.getItem(); + FireworkMeta fireworkMeta= (FireworkMeta) firework.getItemMeta(); + for (FireworkEffect effect : fireworkMeta.getEffects()){ + event.getPlayer().sendMessage(effect.toString()); + } + + //PLAYER SANITATION + Player player = event.getPlayer(); + if(player.getGameMode().equals(GameMode.SPECTATOR))return; + } +}