Merge pull request #49 from TBMCPlugins/development

Adjusted fireworks and dungeon
This commit is contained in:
alisolarflare 2016-12-29 20:47:48 -05:00 committed by GitHub
commit 6b53cc00ed
2 changed files with 131 additions and 91 deletions

View file

@ -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;
}
}
}

View file

@ -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;
}
}