Intro: Hello! This is my first plugin submission, and am trying to get it off on the right track. I give you, WorldConfig! This little baby allows you to, in multiple worlds,: Turn on and off fire Turn on and off monsters and passive mobs Prevent illegal blocks Stop explosions If you have any ideas for this, please post them! Supports Permissions! Commands Code: /god - Makes you invincible. /clear - Clears your inventory. /heal [player] - Heals you or other. /wolfpower # - Spawn wolves! /wcreload - Reloads worlds.yml. Files: worlds.yml (false to disable): Code: ## # Default Configuration for WorldConfig 1.2 ## worlds: # World Name world: # Disable certain mobs mobs: aggressive: true passive: true # Disable Explosions explosions: true # Disable Fire fire: flint: true lava: true spread: true # Illegal Blocks (list) that a player cannot put down illegalblocks: - 46 # Prevent Water/Lava from destroying these blocks (list) flow: lava: - 50 water: - 50 # Disable certain types of damage health: # All fall, suffocation, and cactus damage block: true # All damage from mobs monster: true # All damage from fire and lava fire: true # All damage from drowning drowning: true nether: mobs: aggressive: true passive: true explosions: false fire: flint: false lava: false spread: false illegalblocks: - 46 flow: lava: - 50 water: - 50 health: block: true monster: true fire: true drowning: true Change Log: [v1.0] Initial Release [v1.1] Added more control, added permissions [v1.2] Added health control, as well as /god, /heal, and /wcreload [v1.2.1] Fixed for bukkit 602, removed water flow control due to problems Download: Download here!
Would it be possible to seperately control if lava can set fire to blocks, and what blocks lava is allowed to spread on. Kinda like WorldGuard does it already.
Please check your Plugin Release/Submission Guidelines. [EDIT] WorldConfig v1.0 - Your Description [556] Be welcome
@sillyrosster not at all, it works as advertised, i would just preferr having finer control over lava. In case you are having trouble, settings things to false in the config disables them in world, so to enable fire you have to set it to true. It's a bit counter intuitive, especially if you used WorldGuard before, where on (true) means that the protection is on, and off (false) means its off, while here false means protection is on, and true means its off. Its not a wrong way to put it, just a different way to think, false = the event not allowed (i.e. fire) and true = event allowed. Feature requests: More control over fire: Should fire be blocked from flint & steel? Should fire be blocked from lava? Should fire be allowed to spread? (this way people can still set fire to 1 block, but it wont spread) What blocks should lava be able to flow on? (empty for default SMP lava behavior) Re-wording of the config file, or include a simple comment that explains "Set to false to prevent the event" or something similar. Add permissions for each individual protection so that those who have them will be able to bypass them, for example anyone with "WorldGuard.bypass.flintandsteel" would be able to set fire with flint and steel, and if they then also have "WorldGuard.bypass.firespread" they could set whole forest on fire instead of just 1 block. I can almost guess some of the functionality wont be possible, as i doubt the server tells you who started the initial fire on every time it spreads, but i make these requests so that you could hopefully add some of them (#1 mostly)
I am currently adding these features! (That first one was sort of a rough draft...) There is one problem... You cannot bypass fire spread with permissions, because the world does that, not the player. You could trace it, but that would take quite a bit of storage and computation for a large fire. Here is a sneak peak of the latest config file! Code: permissions: true worlds: world: mobs: aggressive: true passive: false explosions: false fire: flint: true lava: true spread: true illegalblocks: - 90 - 46 - 16 flow: lava: false water: true nether: mobs: aggressive: true passive: true explosions: true fire: flint: true lava: true spread: true illegalblocks: - 90 - 16 flow: lava: false water: true
1.1 generates this error when i set fire to a tree in a world that should have been protected, it works 100% with 1.0, but not with 1.1: Code: 09:16:17 [SEVERE] Could not pass event BLOCK_IGNITE to WorldConfig java.lang.NullPointerException at com.nijiko.permissions.Control.permission(Control.java:295) at com.nijiko.permissions.Control.has(Control.java:269) at com.bukkit.meta1203.WorldConfig.WorldConfigBlockListener.onBlockIgnite(WorldConfigBlockListener.java:71) at org.bukkit.plugin.java.JavaPluginLoader$27.execute(JavaPluginLoader.java:294) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255) at net.minecraft.server.BlockFire.a(BlockFire.java:102) at net.minecraft.server.World.a(World.java:1540) at net.minecraft.server.World.g(World.java:1439) at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:348) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272) at net.minecraft.server.ThreadServerApplication.run(SourceFile:366) i run Permissions 2.5.4, on CB#551, since i see some mentions of Permissions in it EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Updated to 1.2. Added /god, /heal, and /wcreload. The permissions are: WorldConfig.etc.(god|heal|reload) Also added damage prevention (fall, monster,fire,water)
Already have it. The Permissions for bypassing are Code: WorldConfig.bypass.(flint|illegal) . It falls under the "block" damage type. Just disable that to get rid of all fall, suffocation, and cactus damage.
I decided to make a world full of wool but the fire spread anyway... It did limit the spreading but not completely. It still spreads from block to block. Would be nice if all "fire blocks" just turned into air blocks immediatly after "placing them".
If you want this to be moved to Plugin Releases please read the guidelines and change the post accordingly. http://forums.bukkit.org/threads/plugin-release-submission-guidelines.1755/
New fix being uploaded now! (NOTE!!! All water/lava flow has been removed. Will be added back once I figure out how... =/)
I would like to see option to block creeper explosions (damage to players, but not destroying blocks around)
Lava and water will flow. I disabled the system to prevent water breaking certain blocks, such as torches.
You might want to change the title...it's very misleading. This is certainly not a multiworld version of WorldGuard...
stop fire spreading works intermittently, same problem with vstopfire.... maybe a change in bukkit or so?
Your right, since WorldGuard is an amazing plugin, but this plugin is a "World Guard". 'Cause ya know..it protects your World =p
WorldGuard as it is in the title implies the plugin WorldGuard. If you mean "world guard" don't say "WorldGuard" :\
This looks interesting. Does it conflict with and/or overwrite the MultiVerse plugin world configuration files?
Code: 15:13:28 [SEVERE] Could not pass event BLOCK_PLACE to WorldConfig java.lang.NoClassDefFoundError: com/nijiko/permissions/PermissionHandler at com.bukkit.meta1203.WorldConfig.WorldConfigBlockListener.onBlockPlace(WorldConfigBlockListener.java:24) at org.bukkit.plugin.java.JavaPluginLoader$25.execute(JavaPluginLoader.java:352) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:257) at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:84) at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:68) at net.minecraft.server.ItemBlock.a(ItemBlock.java:74) at net.minecraft.server.ItemStack.placeItem(ItemStack.java:56) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:217) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:521) at net.minecraft.server.Packet15Place.a(SourceFile:57) at net.minecraft.server.NetworkManager.a(NetworkManager.java:195) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:74) at net.minecraft.server.NetworkListenThread.a(SourceFile:100) at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:370) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285) at net.minecraft.server.ThreadServerApplication.run(SourceFile:394) Caused by: java.lang.ClassNotFoundException: com.nijiko.permissions.PermissionHandler at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24) at java.lang.ClassLoader.loadClass(ClassLoader.java:319) at java.lang.ClassLoader.loadClass(ClassLoader.java:254) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:399) ... 17 more