diff --git a/nbproject/project.properties b/nbproject/project.properties index be75a2a8..87f54b6e 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -25,7 +25,7 @@ dist.dir=dist dist.jar=${dist.dir}/TotalFreedomMod.jar dist.javadoc.dir=${dist.dir}/javadoc excludes= -file.reference.bukkit-0.0.1-SNAPSHOT.jar=C:\\Users\\Steven\\Documents\\NetBeansProjects\\bukkit-0.0.1-SNAPSHOT.jar +file.reference.bukkit-0.0.1-SNAPSHOT.jar=C:\\Documents and Settings\\Steven\\github\\bukkit-0.0.1-SNAPSHOT.jar includes=** jar.compress=false javac.classpath=\ diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 12f77a6a..ab33c71d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -18,29 +18,43 @@ import org.bukkit.util.config.Configuration; public class TotalFreedomMod extends JavaPlugin { + private final TotalFreedomModEntityListener entityListener = new TotalFreedomModEntityListener(this); + private final TotalFreedomModBlockListener blockListener = new TotalFreedomModBlockListener(this); + //private final TotalFreedomModPlayerListener playerListener = new TotalFreedomModPlayerListener(this); + private static final Logger log = Logger.getLogger("Minecraft"); + protected static Configuration CONFIG; private List superadmins = new ArrayList(); - private final TotalFreedomModEntityListener entityListener = new TotalFreedomModEntityListener(this); public Boolean allowExplosions = false; + public Boolean allowLavaDamage = false; + public Boolean allowFireDamage = false; public void onEnable() { CONFIG = getConfiguration(); CONFIG.load(); - if (CONFIG.getString("superadmins", null) == null) + if (CONFIG.getString("superadmins", null) == null) //Generate config file: { log.log(Level.INFO, "[Total Freedom Mod] - Generating default config file (plugins/TotalFreedomMod/config.yml)..."); CONFIG.setProperty("superadmins", new String[] {"Madgeek1450", "markbyron"}); CONFIG.setProperty("allow_explosions", false); + CONFIG.setProperty("allow_lava_damage", false); + CONFIG.setProperty("allow_fire", false); CONFIG.save(); CONFIG.load(); } superadmins = CONFIG.getStringList("superadmins", null); allowExplosions = CONFIG.getBoolean("allow_explosions", false); + allowLavaDamage = CONFIG.getBoolean("allow_lava_damage", false); + allowFireDamage = CONFIG.getBoolean("allow_fire", false); PluginManager pm = this.getServer().getPluginManager(); pm.registerEvent(Event.Type.ENTITY_EXPLODE, entityListener, Event.Priority.High, this); + pm.registerEvent(Event.Type.ENTITY_COMBUST, entityListener, Event.Priority.High, this); + pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Event.Priority.High, this); + pm.registerEvent(Event.Type.BLOCK_IGNITE, blockListener, Event.Priority.High, this); + pm.registerEvent(Event.Type.BLOCK_BURN, blockListener, Event.Priority.High, this); log.log(Level.INFO, "[Total Freedom Mod] - Enabled! - Version: " + this.getDescription().getVersion() + " by Madgeek1450"); log.log(Level.INFO, "[Total Freedom Mod] - Loaded superadmins: " + implodeStringList(", ", superadmins)); diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModBlockListener.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModBlockListener.java new file mode 100644 index 00000000..bd06f89c --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModBlockListener.java @@ -0,0 +1,35 @@ +package me.StevenLawson.TotalFreedomMod; + +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockListener; + +public class TotalFreedomModBlockListener extends BlockListener +{ + public static TotalFreedomMod plugin; + + TotalFreedomModBlockListener(TotalFreedomMod instance) + { + plugin = instance; + } + + @Override + public void onBlockBurn(BlockBurnEvent event) + { + if (!plugin.allowFireDamage) + { + event.setCancelled(true); + return; + } + } + + @Override + public void onBlockIgnite(BlockIgniteEvent event) + { + if (!plugin.allowFireDamage) + { + event.setCancelled(true); + return; + } + } +} diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModEntityListener.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModEntityListener.java index ea50a16d..84874c7c 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModEntityListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModEntityListener.java @@ -1,5 +1,8 @@ package me.StevenLawson.TotalFreedomMod; +import org.bukkit.event.entity.EntityCombustEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityListener; @@ -15,6 +18,30 @@ public class TotalFreedomModEntityListener extends EntityListener @Override public void onEntityExplode(EntityExplodeEvent event) { - event.setCancelled(!plugin.allowExplosions); + if (!plugin.allowExplosions) + { + event.setCancelled(true); + return; + } + } + + @Override + public void onEntityCombust(EntityCombustEvent event) + { + if (!plugin.allowFireDamage) + { + event.setCancelled(true); + return; + } + } + + @Override + public void onEntityDamage(EntityDamageEvent event) + { + if (event.getCause() == DamageCause.LAVA && !plugin.allowLavaDamage) + { + event.setCancelled(true); + return; + } } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModPlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModPlayerListener.java new file mode 100644 index 00000000..9b40a45d --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomModPlayerListener.java @@ -0,0 +1,13 @@ +package me.StevenLawson.TotalFreedomMod; + +import org.bukkit.event.player.PlayerListener; + +class TotalFreedomModPlayerListener extends PlayerListener +{ + public static TotalFreedomMod plugin; + + TotalFreedomModPlayerListener(TotalFreedomMod instance) + { + plugin = instance; + } +}