ResidenceSigns
ResidenceSigns
Version 2.10.0 is out now!
(Download may be delayed due to approval time)
Instead of making your players use "/res market rent Town.HouseName", allow your players to right click signs to rent and buy land, or put down signs to set up renting or selling with the Residence mod.
Language Change
If you want to have ResidenceSigns translated into your native language, copy/paste the template found here, change the statements that are in quotes to your native language, and PM it back to me!
Current Features
- Placing a [Rent] or [ForSale] sign on a residence that is already set up for rent or sale will automatically fill in all other information.
- [Rent] signs allow you to setup a residence for rent using "Price/Days/AutoRenew [t/f]?" on the third line and an optional residence full name on the second.
- Right clicking a [Rent] sign will attempt to rent the house in your name.
- Right clicking a [Rented] sign that is rented will unrent the house for you.
- When someone rents a house using a sign, the bottom line of the sign will change from "Available" to the renter's name.
- [ForSale] signs allow you to sell a residence for "Price" on the second line and an optional residence full name on the third.
- Right clicking a [ForSale] sign will attempt to buy the residence.
- When someone buys the residence, the bottom line of the sign will change from "Available" to "Sold".
- Sign text should update if there are any differences in info whenever someone right clicks.
- Owners of Residence can break the sign to remove it from the Market/Rentable.
- Picks up Residence Events and automatically updates Residence Signs accordingly.
- You can change the default Language by changing the Language config option and having the correct .yml file in the Language Folder.
- Residence name is optional on the third line. By default, wherever cuboid the sign is located in, it will try to use that residence.
- Multiple signs can used for one Residence.
Planned Features
- Code Cleanup.
- Suggestions from players.
Better Sign Storing and control.
Different Language Alternatives.
Adding Permissions.
Change Log ===
Version 2.10.0: 5/12/2013
- Fixed major bug with some signs popping off upon server restarts.
- Made sign creation prices more '$' friendly.
- Updated to CB 1.5.2-R0.1.
Version 2.9: 8/26/2012
- Fully reworked auto updater system. This should all ALL NPE's when interacting with signs.
- Fixed remaining CME's in auto updater system, signs will now automatically change the instant Residence changes the Residences' status.
- NO MORE SIGNS AUTO REMOVING THEMSELVES DUE TO THE ABOVE BUGS!
Version 2.8: 8/22/2012
- Hopefully a permanent fix for the CME NPE issue occurring on the auto update system.
- Fixed simple display when creating Rent Signs, the AutoRent on the sign will now say "true" instead of "t".
Version 2.7: 8/22/2012
- New Auto-Update Feature. Signs will now auto update the names listed on the Signs when changed using /res rename Command.
- Fixed a bad save variable of ForSale Residences to the signs.yml.
- Added more experimental features to the sign load in system. If a sign fails to load for any reason, ResidenceSigns will try to regenerate the sign with all the proper information.
- Old code cleanup.
Version 2.6: 8/20/2012
- Added experimental safe checks for on Sign Interactions when Residence was throwing NPEs to the Signs, will remove Signs if this occurs.
- Attempt to fix Signs not loading in properly after a restart or two.
- Make sure you are using Residence v2.6.5. This should fix all other remaining NPEs being thrown on attempts to grab variables from Residence itself.
- Updated to CB1.3.2-R2.0
Version 2.5: 7/31/2012
- Fixed the issue with the NullPointerErrors spamming on the automatic sign update system. For some reason occassionally blocks were calling an NPE when trying to acquire their State. The sign will now remove itself from the Plugin.
- NOTE: This will not as of this moment remove the ACTUAL sign as its pulling an NPE for the block, I will have a fix for this in a later update.
- Fixed the issue with sometimes ResSigns calling NPE's when trying to acquire the Residences AutoRepeat variable. Thank you Bekvon for fixing this.
- NOTE: This MAY require the Dev version of Residence as the fix is not actually live but implemented in their current Dev build.
- Added the "Sold" variable for the Alternative Language System.
- NOTE: YOU WILL NEED TO DELETE YOUR LANGUAGE FOLDER! Stop Server, Delete Language Folder, Start Server, Allow ResSigns To Regenerate All Language ymls. If not done in this Order, you WILL get Errors.
- Updated to CB1.2.5-R5.
Version 2.4.1 : 6/26/2012
- Fix NPE with alternative Language System. For some reason the Brazilian translation file was lost, re-added.
- Added Polish locale for alternative Language System.
Version 2.4 : 6/25/2012
- Changed the task that updates signs to run more effectively, as faster.
- Tweaked the loading in and saving of signs to hopefully keep the signs.yml more effective.
- Switched a few variables that should hopefully help fix issues with false set reatables to work correctly with the Signs as well as fix any NPEs that were still occuring.
Version 2.3 : 6/4/2012
- Fixed a check for players trying to unrent Residences when their name was too long to fit on the sign, method now checks Renting Players' Name. Sorry!
- Tweaked the auto sign refresh feature to be slightly more effective with the Residence Rent_Expire Timers.
- Updated to 1.2.5-R3.0
Version 2.2 : 5/5/2012
- *NEW* Added a reload command to quickly reload your config.yml.
- /rs reload.
- Fixed a bug where on RENT_EXPIRE, Rent Signs would display the Residence as Available regardless of status, and would need to be manually updated.
- Added Spanish.yml to the default alternative language system.
Version 2.1 : 5/2/2012
- Fixed issue where certain sign creation exceptions weren’t getting saved into the signs.yml.
- *NEW*Added finally the ability to call and set Residences as false for Auto-Renew Rentable on sign creations! YAY! (Testing on this feature is appreciated to make sure I got the write call methods from Residence since they were recently added).
Version 2.0 : 5/1/2012
- *NEW* Totally revamped the way ResidenceSigns handles the signs by using some flat yml files to also store Sign data(signs.yml). This new feature allows for much better sign control when Events get thrown from Residence. It is highly advised to not touch this file for any reason.
- *NEW* ResidenceSigns should now automatically update upon Residence Events occuring, either by "/" commands or if rent expires and player can't afford or the autorefresh is set to false.
- NOTE: Not every exception has been added just yet as I was quite excited to get this release out to all of you!
- *New*Added New config.yml node for Unrenting on Sign Right-Click. NOW STOP QQing ABOUT IT! :P
- Readjusted the temporary fix to the sign by changing it to left-click updates. By left-clicking the sign if it is rented but not displaying that, it will update, and vice versa if not rented but says it is, will fix as well.
- Added German.yml to default written languages for the Alternative Language system.
- Added smoother components to the conversion methods, if you have still yet to convert to v1.4+.
- Adjusted Config.yml Handler to even better recognize Out of Date Config.yml, and to update it.
- Adjusted the LanguageManager to better handle writing new alternative language.yml's.
- Massive Code Cleanup, a few methods combined for more effective code.
Permissions!
ResidenceSigns now has Permissions support via Vault!
- rs.admin - This node gives the player permission to place/break ForSale and Rent signs regardless of ownership. Defaulted to OP.
Reporting Bugs/Issues
When Reporting An Issue, Please Do The Following
- Your Craftbukkit version.
- Current version of ResidenceSigns.
- Describe the exact situation in which the issue occured (listing all applicable info, names, what sign reads, etc etc)
- Copy/Paste the error from the Console Log.
Installation and Help
- Drop ResidenceSigns.jar into /plugins directory.
- Enjoy!
- Wiki Page Now with pictures!
Donations
Happy with my work? Want to help out? Just glad to see this plugin back?
Feel Free To Donate!
This plugin is based off of the old ResidenceSigns plugin originally written by Karnedge(giving credit where due) but all the code was redone by scratch.
@Turt1zzle
Your constant vague/unclear comments make it extremely difficult for me to do anything. You need to re-read the reports bugs section. Please include Residence name, what you put on the sign, current state of the Residence, what Residence Signs said to you, etc etc.
I am unable to recreate any of the issues you are having on my test server. So at this point I am going to chop this up to Residence issue, unless provided with more information that may point otherwise.
@silentnight18
maybe if you have time it would be very nice when you help inorixu and bekvon on residence? :)
@Turt1zzle
This only makes me think more that its a Residence issue. I will look into it however on my own test server and try to reproduce this error.
EDIT: The only way for you to receive the "Invalid Arguments, Try Again." String is if the Residence is not for rent and not rented, Line 1 is not blank, and the rentManger.setForRent() method fails to set the Residence to Rentable.
So if you could provide more situationally what is occuring, I may be able to diagnose further if this is a Residence or ResidenceSigns issue.
EDIT2: Make sure the sign is being placed INSIDE the Residence, or include Resname on the sign, this will also cause this issue.
I am having the same issue. When I try to create signs for currently non-rentable Residences, it tells me:
Invalid Residence...
Invalid Arguments, try again.
When I try to create signs for already-rentable Residences, it says:
Residence not for rent.
Using the regular /res market commands works as expected.
This only happens on our public server, I was not able to reproduce it on my local testserver though...
(Thanks for all the replys by the way, I bet I became pretty annoying already :P)
Edit: Now I have tried to create a new residence and create a sign for it, but it doesnt even react at all then...
@mcheaven
Im not 100% what the error is here, but Im pretty sure this is not a ResidenceSigns issue since RS calls Residence for Residence checks but does not ever create nor destroy a Residence.
@Turt1zzle
lol.... Im WELL aware of Residence API lmao. Ive looked into using them and it doesnt seem to be usable atm. Im working on a few things, just be patient. ^-^
@silentnight18
Actually, I think there are events... you don't have to make a timer-based check. I took a quick look at the code recently to find out why my flags were messing up, thats what I found there. Check out com.bekvon.bukkit.residence.economy.rent.RentManager.java:
Sorry for the late reply btw, I haven't been at home for the last 2 days.
I just wonder whether its possible to change the text of signs whose chunks are currently not loaded...
hmm I dont know since when exactly, but this morning I found out that I can not longer create rent signs and residences where already an rent sign existed arent rentable threw the sign. It just shows an "invalid residence" in chat. But the names didnt change..
@ttlegend2012
If I made it, its good stuff =P lol.
If you have any questions, feel free to PM me.
Oh yeah, sorry. I didn't understand that it was working with the plugin Residence :P I'm gonna work on it, I may present Residence and ResidenceSigns in the same time, maybe in the following week ? Looks like it's a pretty good stuff ^^
@ttlegend2012
ResidenceSigns works on 1.2.4 build.
It looks pretty good, I'm gonna try it on my test server. If I like it, I may make a french tutorial on it, in video, on my youtube channel.
EDIT : Needs to be updated for craftbukkit-1.2.4-R1.0 for me to use it.
@silentnight18
Oh, derp. Thanks lol. For some reason I was mixing up this mod and another similar mod that used worldguard defined areas.
@rampain
wow lol, ResidenceSigns requires Residence, download and install Residence and this will work =P
http:pasteit.com/17306 I'm using 1.2.4, could that be why it isn't working?
@Turt1zzle
Not going to lie, writing plugins is really a pain if you have no/limited java knowledge or the ability to think abstract and know what code to use and how to do it.
I will add in some feature for the issue you are describing (if becomes unrented due to insufficient funds), but seeing how this is not an actual event, it will be hard to capture the moment, so I would have to do some kind of HashMap on a timer that cycles through the signs, checking the states of each against the Residence to reconfirm that that is its actual current current state. I will do this feature, just please don't expect it immediately, I will need time to develop the feature so it runs properly.
@silentnight18
I have edited my prior comment, but I guess it was too late, so once again, about the "update signs on changes"-issue:
Of course people should be using the signs in order to unrent residences, but thats not the only way a residence can become free again. When players run out of money, they lose their residence, too, without touching the sign. (This actually happens sometimes on our server, because we use this plugin in order to organise our creative-map.. residences there are sometimes expensive, depending on size.)
The problem is, currently its not very easy to find residences that became unrented in that way. There is no such method as "list all residences that are currently not for rent" as far as I could see.
But, if this causes too much trouble, leave it out. I will probably try to write an own plugin later anyway, because I really need that listing-command I described above. I don't expect it to be working soon though, since I'm totally new to all this...
@Turt1zzle
I have tried to do this, and couldnt get it to function w/o throwing NPE's, otherwise I would be doing this. Its just easier for me to wait for the method from Residence than to waste a lot of time, debugging something that isn't crucial to the plugin itself to function, when I can be coding more productively. I will have a version up and working as soon as soon as it is possible to throw in a quick fix.
@autoit4you
set the price to 0
can you add signs like [ForFree] so i can give users the gs for free?