Residence


About
Residence is different from most protection plugins in that it aims for the users to be able to protect their own homes without having to bother the admin to do it. Residence has support for a variety of different protection types including preventing movement through areas, all of which can be configured by the land owner, and limited by the admin.
Links
- Vault: Vault
- Spigot Page: Spigot Page
- GitHub Source: GitHub
- IRC discussion channel: irc://irc.esper.net/Residence
Addons
- Dynmap Residence - Dynmap plugin that shows residences on the webmap.
- ResExtras - Control snow, ice, animals, mobs, and more within a residence.
- Residence Fly - Controls flying within a residence. Leaving will cause a player to fall.
- Residence Signs - Easy buying/selling/renting with signs.
- ResTown - Controls which users can build outside of a residence.
- ResProtect - Protects animals via flags
- ResCreative - Grants creative on entering a residence.
- ResPerm - Adds additional permissions to a player on residence change.
- SimpleClansResidence - Integrates Residence and SimpleClans
- Flags - Apparently adds flags or something
Want your addon listed here? Contact a developer via PM.
Past Contributors
- smbarbour (Code)
- inorixu (Code)
- lemon42 (Code)
- Daniel Few (Wiki)
- Linaks (Residence Logo)
- SirHedgehog (Code)
- GSValore (Code)
- Samkio (Wiki Video)
- JustinGuy (Code)
- Tonkovich (Code)
Support
Support has been turned over to Dart21 and his branch, any questions should be directed to him
-
View User Profile
-
Send Message
Posted Dec 3, 2012@TOOTHPlCK1
you mean, that on every event, that need check if player is in residence, plugin will query db? i dont like it. and, if db isn't loaded in memory, it must be read from HDD = another lag... also, i cant imagine, how do you want to load specific residence from db, if you have only position of player/event.
about current save format - as i said, it has to be changed. yes, there will be loading data into memory every time chunk is loaded - but it's still better, than loading on every move/interract event.
save file can be also optimalized and reorganized into binary tree, but i prefer mysql
-
View User Profile
-
Send Message
Posted Dec 2, 2012@IwannaDashInName
Oh with mysql it will be querying directly for only one residence at a time, no more cycling. I was talking about possible solutions for large res files in the current setup. i.e. Flatfiles
-
View User Profile
-
Send Message
Posted Dec 2, 2012@IwannaDashInName
I've not had this problem, no. We've used it for a long time, and although we have seen ups and downs in our player base, we've never had the problems you are describing.
-
View User Profile
-
Send Message
Posted Dec 2, 2012@TOOTHPlCK1
it will just move a whole bunch of lag to chunk loading events as it would have to check every block in the chunk to see if there is a res there.
you do not need to check every block in chunk. you will need to change the way, the residences are saved. while creating residences, you will cut it into areas at the chunks borders - areas must share settings/flags/name etc (each area in different chunk) then save them, with chunk identificator.
on chunk loading event, you just list areas with id of that chunk - mysql should be fast at it.
lists of areas for each active chunk should be stored separately in memory (tree, or hash table - combination would be great), so you can acces list of areas inside specific chunk in short time.
for areas you just need remember x1,x2,y1,y2,z1,z2,pointer to flags and settings. witch settings you mus keep ID of chunks, where are areas of this res, so when you need to delete, or resize it, you know where to look.
change flags will affect all areas in different chunks that share them.
i am not capable to write it in java (i am C person and have only very basics of java), but i can get you theoretical concept.
i hope my english is not so bad as i think :D
-
View User Profile
-
Send Message
Posted Dec 2, 2012@IwannaDashInName
https://github.com/bekvon/Residence
Fork a branch, make the changes and send a PR and if it works and is better I will pull it into the main branch
The problem I foresee is that it will just move a whole bunch of lag to chunk loading events as it would have to check every block in the chunk to see if there is a res there.
-
View User Profile
-
Send Message
Posted Dec 2, 2012@TOOTHPlCK1
i have no plan, i'm just studying IT and i'm trying to find best solution and give you advice, that's all...
also i don't know, where, or how to do that - i registered here, only to post my very first message, and this emerged from the discussion.
-
View User Profile
-
Send Message
Posted Dec 2, 2012@jonamaster
Reselect an area then use "/res area replace OTHERPARAMETERS"
@IwannaDashInName
You seem to have a plan, why not throw me a pull request?
-
View User Profile
-
Send Message
Posted Dec 2, 2012Hi, i'm wondering if is there any way to expand an already create residence up and down, because i see there's a "vert" option but only when creating a new one.
-
View User Profile
-
Send Message
Posted Dec 2, 2012@TOOTHPlCK1
that is still slow, still a lot of residences to compare.
as i sad - chunk list - and you can cache only active chunks (and theirs residences).
chunk became active - load it into list (use hash table, would be the best), load list of residences inside this chunk
player make action - find out in which chunk, find lists of residences belongs to this chunk, cycle through this list (there should be only few residences)
chunk became innactive - save residences, free memory.
-
View User Profile
-
Send Message
Posted Dec 1, 2012@IwannaDashInName
Storing a list of chunks with residences would take up alot of RAM. I have been thinking of caching active residences so that it would cycle through the cached list first then if it doesn't find it the main list. Which should definitely help with the time it takes to cycle search. i.e. When I am building in my res, my res will be cached and it will take way less time to figure out I am in there...
As for the mysql version I am not sure, the 1.4 update set it back immensely with a flood of changes I had to make.
-
View User Profile
-
Send Message
Posted Dec 1, 2012@TOOTHPlCK1
It checks if they are in a res
yes, it's obvious. my question was, if it check if player is in first res from some kind of array, if no, check second res etc etc, till it found res, within is player, or check all of residences. this method is uneffective - time complexity O(n)
if you make list of chunks, and there have residences list, that are only in this chunk, you can compare players possition (or possition of players action) only with residences inside this chunk. (still O(n), but this time n is number of residences inside chunk). in combination with trees or/and hash tables, it could be very effective.
btw is there any estimated release date of new version? our server have 40-60 players online daily, we have 3700 residences (we are now removing residences of inactive or banned players, so it will drop to 3000) and it's almost inplayable. and next wipe is far away.
-
View User Profile
-
Send Message
Posted Dec 1, 2012I need to make players can destroy ONLY inside RESIDENCE, how to make it?
-
View User Profile
-
Send Message
Posted Dec 1, 2012@IwannaDashInName
It checks if they are in a res when they do something OR on move check, which you can configure the buffer for residence checks on move in config. Don't worry though, I understand there are a bit of innefficient checks in the current version. The SQL version I am writing is to be written for maximum efficiency. If you are experiencing too much move lag, set your movecheck option in your residence config to a higher number.
-
View User Profile
-
Send Message
Posted Dec 1, 2012@nate302
nope, i use /timings in bukkit. you say, you never had problem like this - with 3700 residences and 40 players online?
btw how your plugin check, if player is, or isnt in residence? is it every half of second comparing his coordinates with coordinates of all residences? - this is very bad way to do it...
-
View User Profile
-
Send Message
Posted Nov 30, 2012@Iervolino
This has never happened to me, and I've used it since MC beta 1.6.5? It was the CB prior to 1.7.3
@IwannaDashInName
Do you have a readout like nolagg to prove this? We never had any problems like this.
-
View User Profile
-
Send Message
Posted Nov 30, 2012@nate302
This is the secound time that occour with me. And the result? A lot of houses griefed...
I'm tired of this. When the MySQL be complete, I will use again this plugin.
-
View User Profile
-
Send Message
Posted Nov 29, 2012@nate302 problem is, that plugin rewrite original file while saving. so, any interrupt will destroy all data. there should be some backup system - saving into new file, and then rename it to original, or something like that... it's very easy avoid that problem, so its frustrating, that it's here for so long time.
also this plugin have many disadvantages - almost so much, as it's benefits. about performance - this plugin is something horrible. we have about 3700 residences on our server (counted from save file) and it's a horror. 35 players online drops TPS to 5-10. timings shows, that residence consumed 12 times more computing time, than second worst plugin and almost 25 times more, than third worst plugin.
and, if server consume all his resources, probability of crash increase.
so, residence highly increase probability of crash, and also have problem to avoid to lose his data while crash.
our server should be capable to hosts about 100 players without problems.
sorry for bad english, i hope, that point is clear
-
View User Profile
-
Send Message
Posted Nov 28, 2012@Iervolino
Or you could fix the problem with your server. This is generally a problem due to incorrect file/folder permissions, incorrectly shutting down the minecraft server, or possible software/hardware failure. This has not been a bug we've been able to reproduce.
-
View User Profile
-
Send Message
Posted Nov 28, 2012This is the secound time that my Save Data crash on Residence. I lose all Residences and before this I never will use more this plugin.
The owners have to fix this, or put a MySQL method.
-
View User Profile
-
Send Message
Posted Nov 27, 2012Hey Authors of Residence,
please tell me if there where any language-file changes that have to be translated into german, because i'm now Admin on LocalCraft.eu and this server runs with linux. I'm a N00B on working with linux so i don't find any changes.
Thanks, webnews2! ;)