Skip to content

Commit ef23ffe

Browse files
Merge pull request #78 from msburgess3200/master
Update to 1.21.4
2 parents 364e056 + 8da0388 commit ef23ffe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+10667
-3088
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
.DS_Store
12
.classpath
23
.project
34
.idea
@@ -7,4 +8,7 @@ target/*
78
build.bat
89
/bin/
910
/target/
10-
.vscode
11+
.vscode
12+
report.cmd
13+
report.txt
14+
javadoc.cmd

CHANGELOG.md

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,75 @@
11
# Changelog
22

3-
## 1.4.1
3+
# Version 1.4.3 (2025-02-14)
4+
5+
## New Features
6+
7+
- **Admin Claim Detection:**
8+
- Improved the WorldGuard integration so that claims with no owner (i.e. an empty owner field) are now treated as admin claims.
9+
- In such cases, the claim’s owner is set to a constant `SERVER_UUID` (and displayed as "SERVER") for consistency in sign updates and transaction validations.
10+
11+
- **Instant Sign Update for Rent/Lease:**
12+
- Modified the ClaimRent and ClaimLease update logic to update signs instantly—bringing their behavior in line with ClaimSell—so that players see the correct information immediately after placement.
13+
14+
## Bug Fixes
15+
16+
- **Owner Verification Issue:**
17+
- Fixed an issue where players were incorrectly receiving the “You can only sell/rent/lease claim you own!” message on sign interaction.
18+
- The plugin now correctly determines claim ownership (including admin claims) using the updated WGClaim methods.
19+
20+
- **Database Migration for Admin Claims:**
21+
- Updated the SQL insert logic so that if a claim is detected as an admin claim, the owner field is set to the SERVER identifier.
22+
- This change ensures consistent behavior when loading data from the database.
23+
24+
- **WorldGuard Integration Problems:**
25+
- Resolved compatibility issues with WorldGuard and WorldEdit by updating our WGClaim implementation and adjusting our import statements.
26+
- The plugin now properly retrieves regions and their flags using the latest WorldGuard API.
27+
28+
## Improvements
29+
30+
- **Code Refactoring:**
31+
- Cleaned up various sections of the code for better readability and maintainability.
32+
- Improved error handling and logging to make troubleshooting easier.
33+
34+
- **Build & Dependency Updates:**
35+
- Updated the `pom.xml` to ensure proper integration with the latest versions of WorldGuard, WorldEdit, Vault, and other dependencies.
436

37+
- **Documentation & Messaging:**
38+
- Revised in-game messages and log outputs to provide clearer feedback for both players and administrators.
39+
40+
41+
# Version 1.4.2 (2025-02-13)
42+
### Admin Claim Support Improvements:
43+
* When processing ClaimRent transactions, if a claim is identified as an admin claim, its owner is now set to "SERVER" (using a fixed UUID or identifier) to ensure correct behavior.
44+
* The INSERT statements for ClaimRent now conditionally set the owner to SERVER if the claim is an admin claim.
45+
46+
### Sign Update Consistency:
47+
* Modified ClaimSell to update its sign immediately after creation.
48+
* Updated ClaimRent to also perform an immediate sign update (by scheduling a one-tick delay) so that rental signs display correct information instantly.
49+
* Updated ClaimLease to also perform an immediate sign update (by scheduling a one-tick delay) so that rental signs display correct information instantly.
50+
* Updated ClaimAuction to also perform an immediate sign update (by scheduling a one-tick delay) so that rental signs display correct information instantly.
51+
52+
### Database Handling Enhancements:
53+
* Fixed issues with UUID parsing when loading transactions from the database.
54+
* Improved error checking for owner values during data load to prevent invalid UUID strings.
55+
56+
### Code Quality and Refactoring:
57+
* Cleaned up repeated code between transaction types and centralized common behavior (e.g., sign updating and logging).
58+
** Added missing getter methods for ClaimAuction, ClaimLease, ClaimRent, and ClaimSell to support proper database operations.
59+
* Renamed the old transactions.data file to transactions.yml. (The plugin will automatically reformat if the old file is detected)
60+
** This will be helpful for future upgrades.
61+
62+
### Dependency and Compatibility:
63+
* Ensured compatibility with the latest versions of Vault, EssentialsX, GriefPrevention, and GriefDefender.
64+
** Added paper-plugin.yml to ensure Paper servers load the plugins in the correct order.
65+
** Updated the plugin's plugin.yml and paper-plugin.yml for API version 1.21.4.
66+
67+
### General Bug Fixes:
68+
* Resolved a bug where the sign for [sell] transactions remained blank.
69+
* Addressed potential null pointer exceptions during claim data loading.
70+
* Improved logging to capture and record transaction events more clearly.
71+
72+
## 1.4.1
573
### Added
674
* Added support for multiple languages files within the jar
775
* Added `pt-br` as a language option
@@ -12,7 +80,6 @@
1280
* Fixed #51 regarding a duplicate prefix on `/re info`
1381

1482
## 1.4.0
15-
1683
### Added
1784
* Readme and changelog files
1885
* Error messages to *messages.yml*

README.md

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,40 @@
1+
![RealEstate logo](https://cdn.michael-burgess.xyz/minecraft/plugins/realestate/logo.png)
12
# RealEstate
23

3-
RealEstate is a spigot plugin built on top of GriefPrevention to provide players with an ability to sell and rent claims to other players.
4+
RealEstate is a comprehensive Minecraft plugin that empowers players and administrators to sell, rent, lease, and auction land claims managed by popular protection plugins such as GriefPrevention, GriefDefender, WorldGuard, and Towny. Integrated with Vault for economy and permissions, RealEstate offers intuitive sign-based interactions, detailed transaction logging, and seamless compatibility with multiple claim management systems, making real estate management in Minecraft both engaging and efficient.
45

5-
The plugin is documented in the [GitHub wiki](https://github.com/EtienneDx/RealEstate/wiki).
6+
The plugin is documented [here](https://www.michael-burgess.xyz/minecraft-plugins/realestate/).
7+
8+
Javadoc can be found [here](https://www.michael-burgess.xyz/minecraft-plugins/realestate/javadoc).
9+
10+
Original Wiki can be found [here](https://github.com/EtienneDx/RealEstate/wiki).
611

712
Please feel free to report any issue in the [GitHub Issue section](https://github.com/EtienneDx/RealEstate/issues).
813

9-
## GriefPrevention
1014

11-
This plugin is dependent on GriefPrevention version 16.18 and up.
15+
## Real Estate Dependencies:
16+
You MUST include at least ONE of the following plugins:
17+
18+
GriefPrevention plugin can be found [here](https://github.com/GriefPrevention/GriefPrevention).
19+
20+
GriefDefender plugin can be found [here](https://www.spigotmc.org/resources/1-12-2-1-21-4-griefdefender-claim-plugin-grief-prevention-protection.68900/).
21+
22+
WorldGuard plugin can be found [here](https://dev.bukkit.org/projects/worldguard).
23+
24+
Towny plugin can be found [here](https://www.spigotmc.org/resources/towny-advanced.72694/).
25+
26+
## Translation
27+
We are looking to increase our language locale. If you speak multiple languages, you can help contribute to our project.
28+
29+
30+
Many of the strings can be translated automatically, but we do need help with the more complex strings, and to confirm that the automatic translations are correct.
1231

13-
GriefPrevention plugin can be found [here](https://github.com/TechFortress/GriefPrevention).
32+
[![gitlocalized ](https://gitlocalize.com/repo/10023/whole_project/badge.svg)](https://gitlocalize.com/repo/10023?utm_source=badge)
33+
| Language | Locale | GitLocalize Status | Merged into RealEstate | Contributors |
34+
| ------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | --------------------------------------------------------- |
35+
| [French](https://gitlocalize.com/repo/10023/fr/resources/languages/en-us.yml) | France | [![gitlocalized](https://gitlocalize.com/repo/10023/fr/badge.svg)](https://gitlocalize.com/repo/10023/fr/resources/languages/en-us.yml?utm_source=badge) | Not yet | Looking for a Volunteer |
36+
| [Chinese](https://gitlocalize.com/repo/10023/zh-CN/resources/languages/en-us.yml) | China | [![gitlocalized](https://gitlocalize.com/repo/10023/zh-CN/badge.svg)](https://gitlocalize.com/repo/10023/zh-CN/resources/languages/en-us.yml?utm_source=badge) | Not yet | Looking for a Volunteer |
37+
| [Russian](https://gitlocalize.com/repo/10023/ru/resources/languages/en-us.yml) | Russia | [![gitlocalized](https://gitlocalize.com/repo/10023/ru/badge.svg)](https://gitlocalize.com/repo/10023/ru/resources/languages/en-us.yml?utm_source=badge) | Not yet | Looking for a Volunteer |
38+
| [Dutch](https://gitlocalize.com/repo/10023/nl-NL/resources/languages/en-us.yml) | Dutch | [![gitlocalized](https://gitlocalize.com/repo/10023/nl-NL/badge.svg)](https://gitlocalize.com/repo/10023/nl-NL/resources/languages/en-us.yml?utm_source=badge) | Not yet | [smarcelissen](https://github.com/smarcelissen) |
39+
| [Spanish](https://gitlocalize.com/repo/10023/es-ES/resources/languages/en-us.yml) | Spanish | [![gitlocalized](https://gitlocalize.com/repo/10023/es-ES/badge.svg)](https://gitlocalize.com/repo/10023/es-ES/resources/languages/en-us.yml?utm_source=badge) | Not yet | Looking for a Volunteer |
40+
| [Portuguese](https://gitlocalize.com/repo/10023/pt-br/resources/languages/en-us.yml) | Portuguese | [![gitlocalized](https://gitlocalize.com/repo/10023/pt-br/badge.svg)](https://gitlocalize.com/repo/10023/pt-br/resources/languages/en-us.yml?utm_source=badge) | Not yet | Looking for a Volunteer |

paper-plugin.yml

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
name: RealEstate
2+
main: me.EtienneDx.RealEstate.RealEstate
3+
version: ${project.version}
4+
api-version: 1.21.4
5+
authors:
6+
- EtienneDx
7+
- DmitryRendov
8+
- SkyWalker3200
9+
- Tadhunt
10+
dependencies:
11+
server:
12+
Vault:
13+
load: BEFORE
14+
required: true
15+
join-classpath: true
16+
Essentials:
17+
load: BEFORE
18+
required: true
19+
join-classpath: true
20+
GriefPrevention:
21+
load: BEFORE
22+
required: false
23+
join-classpath: true
24+
GriefDefender:
25+
load: BEFORE
26+
required: false
27+
join-classpath: true
28+
WorldGuard:
29+
load: BEFORE
30+
required: false
31+
join-classpath: true
32+
WorldEdit:
33+
load: BEFORE
34+
required: false
35+
join-classpath: true
36+
Towny:
37+
load: BEFORE
38+
required: false
39+
join-classpath: true
40+
commands:
41+
re:
42+
description: Access to the claim transaction information.
43+
usage: /<command>
44+
aliases:
45+
- realestate
46+
permission: realestate.info
47+
permission-message: You do not have access to that command!
48+
permissions:
49+
realestate.*:
50+
description: Gives access to all Real Estate permissions
51+
default: op
52+
children:
53+
realestate.info: true
54+
realestate.admin: true
55+
realestate.destroysigns: true
56+
realestate.claim.buy: true
57+
realestate.claim.sell: true
58+
realestate.claim.rent: true
59+
realestate.claim.lease: true
60+
realestate.subclaim.buy: true
61+
realestate.subclaim.sell: true
62+
realestate.subclaim.rent: true
63+
realestate.subclaim.lease: true
64+
realestate.autorenew: true
65+
realestate.claim.*:
66+
description: Allows the player full access over claims
67+
default: op
68+
children:
69+
realestate.claim.buy: true
70+
realestate.claim.sell: true
71+
realestate.claim.rent: true
72+
realestate.claim.lease: true
73+
realestate.subclaim.*:
74+
description: Allows the player full access over subclaims
75+
default: op
76+
children:
77+
realestate.subclaim.buy: true
78+
realestate.subclaim.sell: true
79+
realestate.subclaim.rent: true
80+
realestate.subclaim.lease: true
81+
realestate.admin:
82+
description: Allows the player to sell and lease admin claims, as well as see
83+
plugin informations
84+
default: op
85+
realestate.info:
86+
description: Allow the player to get informations about the claim
87+
default: true
88+
realestate.claim.buy:
89+
description: Allows the player to buy claims (buying, paying rents, paying leases)
90+
default: true
91+
realestate.claim.sell:
92+
description: Allows the player to sell claims
93+
default: true
94+
realestate.claim.rent:
95+
description: Allows the player to rent claims
96+
default: true
97+
realestate.claim.lease:
98+
description: Allows the player to lease claims
99+
default: true
100+
realestate.subclaim.buy:
101+
description: Allows the player to buy subclaims (buying, paying rents)
102+
default: true
103+
realestate.subclaim.sell:
104+
description: Allows the player to sell subclaims
105+
default: false
106+
realestate.subclaim.rent:
107+
description: Allows the player to rent subclaims
108+
default: true
109+
realestate.subclaim.lease:
110+
description: Allows the player to lease subclaims
111+
default: false
112+
realestate.destroysigns:
113+
description: Allows the player to destroy any sign representing a transaction
114+
default: op
115+
realestate.autorenew:
116+
description: Allows the player to enable automatic renew for his rented claims
117+
and subclaims
118+
default: true

plugin.yml

Lines changed: 60 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,34 @@
1+
---
12
name: RealEstate
23
main: me.EtienneDx.RealEstate.RealEstate
34
version: ${project.version}
4-
authors: [EtienneDx, DmitryRendov]
5-
depend: [Vault, GriefPrevention]
6-
api-version: "1.18"
7-
5+
authors:
6+
- EtienneDx
7+
- DmitryRendov
8+
- SkyWalker3200
9+
- Tadhunt
10+
load: POSTWORLD
11+
folia-supported: false # prevent Folia from loading this plugin. It's not ready yet.
12+
depend:
13+
- Vault
14+
softdepend:
15+
- GriefPrevention
16+
- GriefDefender
17+
- WorldGuard
18+
- WorldEdit
19+
- Towny
20+
api-version: 1.21.4
821
commands:
922
re:
1023
description: Access to the claim transaction information.
1124
usage: /<command>
12-
aliases: [realestate]
25+
aliases:
26+
- realestate
1327
permission: realestate.info
1428
permission-message: You do not have access to that command!
15-
1629
permissions:
1730
realestate.*:
18-
description: Gives access to all Real Estate permissions
31+
description: Gives access to all Real Estate permissions (including admin!)
1932
default: op
2033
children:
2134
realestate.info: true
@@ -25,10 +38,14 @@ permissions:
2538
realestate.claim.sell: true
2639
realestate.claim.rent: true
2740
realestate.claim.lease: true
41+
realestate.claim.auction: true
42+
realestate.claim.bid: true
2843
realestate.subclaim.buy: true
2944
realestate.subclaim.sell: true
3045
realestate.subclaim.rent: true
3146
realestate.subclaim.lease: true
47+
realestate.subclaim.auction: true
48+
realestate.subclaim.bid: true
3249
realestate.autorenew: true
3350
realestate.claim.*:
3451
description: Allows the player full access over claims
@@ -38,6 +55,8 @@ permissions:
3855
realestate.claim.sell: true
3956
realestate.claim.rent: true
4057
realestate.claim.lease: true
58+
realestate.claim.auction: true
59+
realestate.claim.bid: true
4160
realestate.subclaim.*:
4261
description: Allows the player full access over subclaims
4362
default: op
@@ -46,9 +65,28 @@ permissions:
4665
realestate.subclaim.sell: true
4766
realestate.subclaim.rent: true
4867
realestate.subclaim.lease: true
68+
realestate.subclaim.auction: true
69+
realestate.subclaim.bid: true
4970
realestate.admin:
50-
description: Allows the player to sell and lease admin claims, as well as see plugin informations
71+
description: Allows the player to sell and lease admin claims, as well as see
72+
plugin informations
5173
default: op
74+
children:
75+
realestate.info: true
76+
realestate.destroysigns: true
77+
realestate.claim.buy: true
78+
realestate.claim.sell: true
79+
realestate.claim.rent: true
80+
realestate.claim.lease: true
81+
realestate.claim.auction: true
82+
realestate.claim.bid: true
83+
realestate.subclaim.buy: true
84+
realestate.subclaim.sell: true
85+
realestate.subclaim.rent: true
86+
realestate.subclaim.lease: true
87+
realestate.subclaim.auction: true
88+
realestate.subclaim.bid: true
89+
realestate.autorenew: true
5290
realestate.info:
5391
description: Allow the player to get informations about the claim
5492
default: true
@@ -64,6 +102,12 @@ permissions:
64102
realestate.claim.lease:
65103
description: Allows the player to lease claims
66104
default: true
105+
realestate.claim.auction:
106+
description: Allows the player to auction claims
107+
default: true
108+
realestate.claim.bid:
109+
description: Allows the player to bid on claims
110+
default: true
67111
realestate.subclaim.buy:
68112
description: Allows the player to buy subclaims (buying, paying rents)
69113
default: true
@@ -76,9 +120,16 @@ permissions:
76120
realestate.subclaim.lease:
77121
description: Allows the player to lease subclaims
78122
default: false
123+
realestate.subclaim.auction:
124+
description: Allows the player to auction subclaims
125+
default: false
126+
realestate.subclaim.bid:
127+
description: Allows the player to bid on subclaims
128+
default: false
79129
realestate.destroysigns:
80130
description: Allows the player to destroy any sign representing a transaction
81131
default: op
82132
realestate.autorenew:
83-
description: Allows the player to enable automatic renew for his rented claims and subclaims
133+
description: Allows the player to enable automatic renew for his rented claims
134+
and subclaims
84135
default: true

0 commit comments

Comments
 (0)