BreedingLimiter
HOW TO USE THE PLUGIN
- Step 1: Download the plugin.
- Step 2: Drag the plugin (i.e BreedingLimiter.jar) from your download location and drop it into your Minecraft plugins folder.
- Step 3: Run your Minecraft server so the config.yml gets generated in the plugins/BreedingLimiter folder. You can take down your server once this has been generated.
- Step 4: Edit your config.yml
- Step 5: Bring your server back up again.
- Step 6: Play Minecraft.
Overview
This is a small plugin that allows the server admin to limit the number of animals that can be bred within an area that the server admin can specify. Individual limits can be set for any animal. If the limit has been reached for a particular animal, attempting to breed it will display a customizable breeding-failed message to the player.
This plugin does not affect normal spawn rates or spawns from chunk generation. Also, please note that this only affects breedable animals.
Features
- Limits the number of animals that can be bred within a configurable area.
- Displays a customizable breeding-failed message if the player fails to breed due to limit restrictions.
- Allows players to check the number of a type of animal and its breed limit by typing "/breedlimit [animal]"
Requirements
A server running JDK 1.7 is required to use this plugin.
Commands
/breedlimit [animal] This will display the number of [animal] currently in your area, as well as the breeding limit.
commands: breedlimit: description: A command to check the number of animals currently in the chunk and the breeding limit of that animal. Also works with villagers. usage: /breedlimit [animal] (example /breedlimit cow) permission: breedlimit.breedlimit permission-message: You don't have permission to use this command.
Permissions
permissions: breedlimit.*: description: Gives access to all the breedlimit commands. children: breedlimit.breedlimit: true breedlimit.breedlimit: description: Allows you to check the number of animals in the current chunk. default: true
Configuration
Edit the configuration by navigating to the BreedingLimiter folder (found in your plugins folder) and editing the config.yml file.
breed-limit: A list of animals and their breeding limits. Animals and limits are separated by an equal sign.
villager-limit: The limit on the number of villagers within an area.
breeding-failed-msg: The message that the player sees when they are unable to breed an animal.
area-size: The size of the area centered around the player that will have the breed limit enforced.
Configuration example
breed-limit:
- cow = 10
- pig = 20
- chicken = 30
- sheep = 20
- wolf = 5
- mushroomcow = 10
- ozelot = 5
villager-limit: 10
breeding-failed-msg: You cannot breed this animal.
area-size: 16, 16, 256
This configuration limits 10 cows, 20 pigs, 30 chickens, 20 sheep, 5 wolves, 10 mushroom cows, 5 ocelots, and 10 villagers per 16 x 16 x 256 area of land centered around the player. If you don't want the animal to have a limit, just remove it from the list.
Important Note: In order for ocelots to work, you need to spell them as "ozelot" in the config file. I'm still looking into why this is, but I think it's a problem with the API.
Current Version
3/10/13 Version 1.3
- Fixed bug with spawning baby animals from spawn eggs.
- Enforced breeding limit on chickens spawned from chicken eggs.
- Added limit for villagers.
- Added "/breedlimit villager" command that returns the count and limit of nearby villagers.
Disclaimer
The idea for this plugin came from Ephemeralis' ChunkBreedLimit, which does not currently work correctly and is out-of-date. However, I have completely rewritten and improved the plugin, and the code is 100% my own.
@Varunax
That would be greatly appreciated, thanks!
@x_clucky
Thanks for finding this error. Fixed with Version 1.2. Just waiting for the file to be approved. Also fixed an error with mushroom cows I didn't catch initially.
I hate to do this to you, but I found an NPE when i was right clicking a chicken with MONSTER_EGG:0 :/
[code]2013-03-07 20:55:37 [SEVERE] Could not pass event PlayerInteractEvent to BreedingLimiter v1.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:148) at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:627) at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.CGLIB$handle$0(<generated>) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505$$FastClassByCGLIB$$737daf3f.invoke(<generated>) at com.comphenix.net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.comphenix.protocol.injector.packet.ReadPacketModifier.intercept(ReadPacketModifier.java:109) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.handle(<generated>) at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at emikodo.breedinglimiter.BreedingListener.onPlayerInteractEvent(BreedingListener.java:56) at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 21 more 2013-03-07 20:55:37 [SEVERE] Could not pass event PlayerInteractEvent to BreedingLimiter v1.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:148) at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:627) at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.CGLIB$handle$0(<generated>) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505$$FastClassByCGLIB$$737daf3f.invoke(<generated>) at com.comphenix.net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.comphenix.protocol.injector.packet.ReadPacketModifier.intercept(ReadPacketModifier.java:109) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.handle(<generated>) at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at emikodo.breedinglimiter.BreedingListener.onPlayerInteractEvent(BreedingListener.java:56) at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 21 more 2013-03-07 20:55:38 [SEVERE] Could not pass event PlayerInteractEvent to BreedingLimiter v1.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178) at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.java:376) at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657) at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.CGLIB$handle$0(<generated>) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505$$FastClassByCGLIB$$737daf3f.invoke(<generated>) at com.comphenix.net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.comphenix.protocol.injector.packet.ReadPacketModifier.intercept(ReadPacketModifier.java:109) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.handle(<generated>) at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at emikodo.breedinglimiter.BreedingListener.onPlayerInteractEvent(BreedingListener.java:56) at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 21 more 2013-03-07 20:55:38 [SEVERE] Could not pass event PlayerInteractEvent to BreedingLimiter v1.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:148) at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:627) at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.CGLIB$handle$0(<generated>) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505$$FastClassByCGLIB$$737daf3f.invoke(<generated>) at com.comphenix.net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.comphenix.protocol.injector.packet.ReadPacketModifier.intercept(ReadPacketModifier.java:109) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.handle(<generated>) at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at emikodo.breedinglimiter.BreedingListener.onPlayerInteractEvent(BreedingListener.java:56) at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 21 more 2013-03-07 20:55:38 [SEVERE] Could not pass event PlayerInteractEvent to BreedingLimiter v1.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178) at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:148) at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:627) at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.CGLIB$handle$0(<generated>) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505$$FastClassByCGLIB$$737daf3f.invoke(<generated>) at com.comphenix.net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.comphenix.protocol.injector.packet.ReadPacketModifier.intercept(ReadPacketModifier.java:109) at net.minecraft.server.v1_4_R1.Packet15Place$$EnhancerByCGLIB$$e20ea505.handle(<generated>) at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at emikodo.breedinglimiter.BreedingListener.onPlayerInteractEvent(BreedingListener.java:56) at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 21 more[/code]
If it's any help, I'm using Otherdrops.
@x_clucky
Yes, babies are counted toward the limit.
@zorac_
I get the number of animals in an area centered around the player. That is, if you enter 16, 16, 256 in the config, the number of animals within that area centered around the player will be limited. Basically player location is used to determine the center of the area. The distance is whatever distance you configure it to be.
This might be what I've been looking for to limit player farms!
How is player location used to determine current animal count? Is it a radius, and if so, what's the distance?
Is source code available somewhere? That seems to be a pretty universal practice for plugins.
Thanks!
We originally had eggs limited but then decided to just leave them out since we didn't thoroughly test it. Might put them back in if it's demanded.
Also, I don't think it would be that much of a problem to add in villager limits.
Do you think, if you haven't already, also limit eggs from being broken in chunks that already have the cap full of mobs. Also, are babies also counted towards the limit?
Am about to add this to my server as it look great. Thanks for making a replacement to ChunkBreedLimit.
Could you add in support to limit the number of Villagers that can breed? A couple of my players have some VERY efficient villager farms which easily breed a few hundred in a day or two.
@zzt4
Yeah I'll add it to the description as being a requirement. Apologies for the confusion and glad we got it figured out!
@FreeJAC1310
I just tested this issue and couldn't find a problem with it. Are you typing in "/breedlimit chicken" or "/breedlimit chickens"? It needs to be the animal type (i.e. chicken). "Chickens" won't be recognized.
Thanks for adding the counter. One issue I discovered when testing is if you go over the limit with chickens by breaking eggs, /breedlimit chickens then says there is no limit on this animal. It would be nice if it would show the over number instead. Not sure if that is easy to change or not. Thanks again for a great plug-in.
@emikodo
Ah, I'm running Java 1.6. That explains it I bet. I'll try updating to Java 7. Could you list that as a requirement in the description to prevent this happening in the future? I'll let you know if that fixes the problem for me.
@emikodo
Well, thanks for removing the chunk limitation, more efficient this way :3
@zzt4
What version of Java is your server running? I wrote the plugin to be compatible with jdk 1.7. If you're running 1.6, this might be the problem. If not, just post your config file so I can take a closer look.
@jommeke
You can't breed zombies, skeletons, or hostile mobs, so I won't be adding them to this plugin.
@x_clucky
Ah no, the very first version had it limited by chunk. I updated it and I think you posted around the time it was being updated/approved haha. No problem!
@emikodo
I just relied that your plugin's limitations aren't by chunk. Haha, disregard me.
add zombie's skeletons and hostile mobs to to limet them
The only plugins I have installed are Multiverse-Core and Multiverse-Portals.
Here's the stack trace when I try to install BreedingLimiter:
12:14:16 [INFO] This server is running CraftBukkit version git-Bukkit-1.4.7-R1.0 -b2624jnks (MC: 1.4.7) (Implementing API version 1.4.7-R1.0) 12:14:16 [SEVERE] Could not load 'plugins\BreedingLimiter1.1.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError : emikodo/breedinglimiter/BreedingLimiter : Unsupported major.minor version 51.0
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugins(CraftServer.java:239) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.<init>(CraftServer.java:217) at net.minecraft.server.v1_4_R1.PlayerList.<init>(PlayerList.java:55) at net.minecraft.server.v1_4_R1.DedicatedPlayerList.<init>(SourceFile:11) at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.java:104) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:399) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.UnsupportedClassVersionError: emikodo/breedinglimiter/BreedingLimiter : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173) ... 9 more 12:14:17 [INFO] [Multiverse-Core] Loading Multiverse-Core v2.4-b527
@x_clucky "For example, being able to set a max of 10 animals breeded in a radius of 2 chunks."
Not sure what you mean by this. You can set the radius to be whatever size you want. Since a chunk is 16 x 16 x 256, if you want it the size of 2 chunks you can just change the area-size to be 32 x 32 x 256 and set the breed limit of an animal to 10. Are you talking about a general limit (like only 10 animals total, regardless of the type)?
@twetwetwetwe
Yes, it is possible. I won't be adding that to this plugin though. This plugin is specifically to limit breeding animals.
@zzt4
Yes it works for 1.4.7. I'd like to see the stack trace and your config file when you get the chance to post it. Could you also let me know what other plugins you have on your server? Thanks!
I installed this on my 1.4.7 server and I'm getting a Java error. I'll post the stack trace when I get home. Is this supposed to work with 1.4.7?
lol Clucky I'm stalking you again ;D
is it possible to make a limit on villagers???