UVVillagers
Note from the author:
This was my first plugin, built for use on the survival server I run for a few friends. It's far from the robust village infrastructure I originally envisioned, mainly because I didn't want to completely rewrite all of the core minecraft village code and villager behavior... but I think it accomplishes enough. Since it reached a point that I'm fairly happy with several months ago, most of the time the only updates I do are to address major bugs or bukkit upgrades.
This was also my first foray into Java. As such, the code can be a bit of a mess in places. If you want to poke around to see how I did what I did, or fork it and add functionality (or fix bugs!) check out the git repository on GitHub. You might have to poke me extra hard with pull requests merging functionality back in unless I'm expecting them. And hey, if you've looked at the code and aren't completely turned off by it, a co-maintainer would be welcomed to the project. I'm sure some of my users would appreciate your contributions! ;)
- James
The Goal
To make NPC Villages (and the expansion and defense thereof) a more integral part of the game.
Installation and Documentation
https://github.com/jcornwellshiel/uvvillagers/wiki - Lots of details here, and it's almost up to date! Go go go!
Important note on bukkit versions:
This plugin hits core minecraft classes, and thus can be only run on the appropriate bukkit versions. You can't use UVVillagers for CB1.6.4 on a 1.7.2 server, or vice versa. Starting January 2014, if there is not a recommended build for the latest minor bukkit version (for example, at the time of this writing, 1.7 only has dev, alpha, and beta builds available) I will publish two copies of this plugin for each update I do:
- One for the current Recommended Build (Currently 1.6.4-R2.0)
- One for the most stable recent build (currently Beta 1.7.2-R0.2).
If you need more than this, feel free to contact me.
Basic Features
- Player popularity tracking with villages.
- Greeting displayed on entering villages.
- Receive daily tributes from villages that you maintain and defend, based on population and popularity.
- Extra-awesome zombie sieges.
- Rewards for defending villagers from zombie sieges.
Details
- Villages: Villages expand the core minecraft NPC Village functionality to include:
- Villages are named after the first player to discover them (after installing the plugin), and can be renamed by whomever is most popular with the village.
- Per-village-per-player reputation, broken down into configurable tiers.
- Information about physical size, population, etc is reported to users.
- Notifications are displayed upon entering a village, a village being abandoned, etc.
- Commands to get information about villages are accessible via /uvv
- Villages will pay nearby players a configurable daily tribute every day at dawn based on the players' reputation and the village's population.
- Sieges: Zombie Sieges expand on the core minecraft Zombie Siege functionality, and are strongly enhanced and configurable.
- Any mob can potentially spawn. Yes, including withers and ender dragons.
- Siege statistics are tracked, and killing mobs that are part of a siege grants reputation with the village under siege.
Currently working: (version 1.3.8)
- Citizens support
- Configuration files! (All values and % chances can be changed!)
- Configurable messages!
- Village population and reputation announced upon nearing a village.
- Zombie Sieges can spawn all sorts of crazy stuff.
- Override core Zombie Siege mechanic in favor of ours.
- Spawn a siege on-demand.
- Village-Player reputation tracking
- Villager tributes! (Player receiving tribute must be near the village at exactly dawn)
- 0-3 emerald tribute per 20 villagers in nearby villages every day at dawn.
- 1 emerald tribute bonus per 20 villagers.
- 1-2 emerald tribute bonus per zombie siege kill during the previous night.
- multiplier based on current reputation
- Dynmap support is now integrated
- Multiworld support
- Some prevention of typical zombie siege avoidance tactics (like using floating platforms) by spreading spawns out over a radius.
- Can now select items other than emeralds for tribute!
- Collecting tribute from a mayor instead of it magically appearing (requires CB 1.5.1)
- Set whether tribute is collected from the Mayor or appears directly in your inventory
- Configurable minimum village size
- Preventing villager purchases if your reputation is too low
- Iron Golem aggro on extremely low reputation
- Overriding core popularity effects (cancel iron golem attack if it's caused by your reputation being too low)
- Chest tribute
- Better mayor retention
- Server-owned villages with /uvv setserver
Known Bugs
- Null exception thrown for some people using dynmap (properly caught since 1.2.5, still not sure of root cause... for some people dynmap is returning null when creating new markers, even though the marker is created)
- Mayors sometimes teleport into occupied blocks, suffocating them. This might be addressed now.
Enjoy! Post your bugs, exploitable aspects, and suggestions in comments here or at the GitHub repo !
when i find a village it dose not do anything is there a command i have to do to make it into one that the plugin needs me to do
Does it automatically have random sieges or is the only way to have a siege by command?!?!?!
Now I know that you "haven't left, but haven't exactly been here either" , I'll follow this plugin again :D Goodluck on the thing you are busy with
lol haven't left, but haven't exactly been here either >_<
Nice to know you haven't left Bukkit yet :D
I'll see about updating in the near future. I'm pretty busy these days, not much time to spend on this project.
@jcornwellshiel
I think I can test it soon when there are no player online anymore (Which is soon I think) I'll update this comment then
Update: I started my server without any plugins except for UVVillagers and I still couldn't place emerald in it (1.3.9)
Update2: I just heard from someone else that he could place emeralds in it, maybe this has to do with the place I've build my village? I'm going to continue observe this
Strange. It could be an issue within UVV. Have you tried temporarily disabling the other plugins to see if it still occurs? If it doesn't, enable them one by one until the issue starts occurring again.
Thanks. I apologize I'm not being more hands-on with the debugging process right now. Not enough hours in the day.
@jcornwellshiel
Well, I don't really call it a error, but when I try to (or the other players in my server) place a emerald into a item frame, we get a "blank" space in the chat:
There is nothing in the console though
@RCKing57
Not sure. I haven't used most of those. Are you getting an error when you try to put the emerald in (either in chat or in the console?)
I don't know why anymore, but suddenly I cant put emeralds in item frames anymore. These are the plugins that I installed after UVVillagers (Since the first few days I still could put emeralds in them): BossShop, Crackshot, LoreLocks, Backpack, Trancarts, BKCommonLib and TCHangrail. Is there maybe a plugin within here which prevents that? Thank you
@RCKing57
Yeah. I've tried numerous methods of keeping mayors near their signs. I recommend trapping them in a location (most people say they keep their mayors in little kiosks). This prevents them from ever needing to teleport back to the sign (causing occasional suffocation depending on the block layout around your sign).
"Mayors sometimes teleport into occupied blocks, suffocating them. This might be addressed now." Damn, didn't saw this, already 3 mayors died in my hand-made village. It is "EntityDamageEvent" right?
@RCKing57
As long as Minecraft recognizes it as a valid village, UVVillagers will recognize it. The only exception should be if you set villageMinPopulation to a value greater than 1. Try putting 2 villagers in, just in case. It looks like I might have put a > instead of a >=... oops. Will fix that tonight.
Edit for clarity: Until I fix it, you can set villageMinPopulation to 0 in config.yml to allow 1-villager villages.
Is it possible to have your own build villages being recognised? Since I build some homes with a villager but it still didn't recognise it as a village
@ThisUsernameIsMine
Bah, guess I'd better stop doing that, or host my own build server downloads for dev builds or something.
@jcornwellshiel
It's against bukkit's ToS to link to unapproved versions ;-)
Will post builds for 1.7.5 and 1.7.9 tonight. I built them last night but forgot to upload.
Still looking for a co-maintainer if anyone is interested :)
I love your plugin! If there was a donate option I would! Please please please update your plugin. We had it on sixpigs.fadehost.com till 1.7.9
please update to 1.7.5.
-My mayor reacting like a normal villager and selling stuff.