Giter Club home page Giter Club logo

advanced-region-market's People

Contributors

alex9849 avatar dandud100 avatar jensuenk avatar jeromewolff avatar luisc99 avatar rindula avatar stephikape avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

advanced-region-market's Issues

RentExtendMaxRentTimeExceeded

Situation:
My regions are rented per 7days. Max Rent Time = 21days

It's 9. July today, a shop is rented till the 26. of July
Player likes to extend his rent till the 30. of July.
Instead he gets the RentExtendMaxRentTimeExceeded message that he is not allowed to extend his rent.

What is expected:
I would expect that he can extend the rent by another 4 days.
Meaning he should be charged 4/7*price until the 21 days are reached.

Paper 1.15.2
ARM v3.2

Suggestion - Hologram Addon

Hey, I have a suggestion related to ARM, to be short, add a Holographic Addon instead of signs, something like PlotSquared did, PlotSquared has a Addon that removes the signs and replaces them to Holograms, would be really nice and advanced instead of just using basic signs for it.

Some regions are not recognized

Everything was working great for a long time, but suddenly a lot of regions are not recognized by the plugin. Running commands say that no region like that exists. World guard still recognize them though.

MC 1.15.2
Plugin : 2.1.5
Java 11

permission for /arm sellback

Hey,
I recognized a conflict between the documentation and how the plugin actually works.

The docu says that /arm sellback has the permission arm.member.sellback .
But ingame that permission doesn't exist.
The code gives a hint for arm.member.sellregion being used instead. In my opinion, arm.member.sellback is a way better choice due to naming simplicity.

public static final String MEMBER_SELLBACK = "arm.member.sellregion";

Command to teleport a player to region

I want to request the addition of a command to teleport a player to a region. This would be useful for command blocks to do something like /arm tp @p <region>.

Heavy sign ticks

It seems that the Region#updateSignText method is very heavy to compute for all n shops every second, is it maybe possible of fixing the timestamp onto the sign instead of updating the sign text each second / interval?

I was thinking about a line on the sign which could just be fixed, such as "Expires At dd-MM HH:mm" or something, so the plugin doesn't need to update the signs each tick at all.

Pay for teleport to owned region

Hello,
It would be very nice to have a config option for specifying amount that is to be paid when a player wants to teleport to his owned region. Could you please add such an option? :)

Preset setup command doesn't work

Hello,

I'm not able to execute the custom setup command from preset:

rentpreset: rent3: userrestorable: false autorestore: false inactivityReset: false regionKind: Default autoPrice: example2 setupcommands: - arm setlandlord %regionid% tax

I would like to automatically set landlord of the region to the "tax" account, but it doesn't work and it says only "Server".
Could you please take a look on that? Thank you :)

Area reset bug

Ive made a polygonal region, and when testing I found out that the area in which it resets is outside of the selected region
image
For example, with the image above, the green is an example of the area that i selected, but when the area is reset by the plugin it instead resets the red area

Discord: CheddahN#1185
if you have questions

Flageditor set greeting showing up in chat

On 1.16.4, when a player sets a greeting flag on a region using the flageditor, the greeting is correctly set on the region, but it also shows up in the normal chat as well. I'm using ChatControlPro so not sure if that could also be a factor or not.

Rent price (mis)calculation

Players report that they could rent for free. In order to test this, I set up the following:
A test server was running ARM 3.2.2 on Paper 1.16.1
An area was setup to rent per 7 days and a max rent time of 20 days.
This forces to recalculate the last 6 days.

What would be expected:
Initial rent: 100 $
Extend rent: 100 $
Extend last 6 days: ~ 85.71 $

The test:
Screenshot_20200803_170551
Findings explained:
Initial rent: 100 $
Extend rent: Is claims to cost is, 100 $, but actually 85.71 was taken from the player
Extend last 6 days: Is claims to cost is, 85,72 $, but actually 0 $ was taken from the player.
Finally the player paid 100000 - 99814,29 = 185.91 $
Should the player decide to end the rent, it receives a charge back of 285,7$.
He earned 100 $ by renting an area. Not a bad deal xd

The problem probably exists since v 3.2.1 (Rentregions can now be extended everytime)

Request: RentRegionExpirationWarning placeholders

The RentRegionExpirationWarning warns a player that a region is about to expire.
WARNING! This RentRegion(s) will expire soon:
But it doesn't tell the player WHEN it will expire.
The message doesn't seem to support placeholders like %remainingtime-countdown-short%

I would like to make a proper message like:
WARNING! Your RentRegion %regionid% will expire in about %remainingtime-countdown-short%

More Custom Events for Vault specific things

Hello,
as written in the title, I would be happy to have more custom events available.
For example..: An event for buying, renting etc.

I would like to use this as interface for my Economy Plugin. Thanks in advance^^.

Avan

bug crash

hello here I have the latest version of spigot 1.15.2 and AdvancedRegionMarket v2.1.5, I have a very good host but when I create a panel (rental) it takes a long time (server overload) and when a player clicks on the sign to rent it crashes the server

log: https://textup.fr/427234vG

Could not pass event InventoryClickEvent to AdvancedRegionMarket v3.0.1

When I use /arm gui and I like to open the "My Region (Owner)" inventory, this error is displayed in the console.

`[18.04.2020 11:30:06] INFO: [Adventuria-1] [11:30:05 ERROR]: Could not pass event InventoryClickEvent to AdvancedRegionMarket v3.0.1

[18.04.2020 11:30:06] INFO: [Adventuria-1] java.lang.NullPointerException: null

[18.04.2020 11:30:06] INFO: [Adventuria-1] at java.util.ArrayList.(ArrayList.java:178) ~[?:1.8.0_242]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.alex9849.arm.gui.Gui.getRegionDisplayItem(Gui.java:1381) ~[?:?]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.alex9849.arm.gui.Gui.openRegionOwnerGui(Gui.java:143) ~[?:?]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.alex9849.arm.gui.Gui$1.execute(Gui.java:93) ~[?:?]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.alex9849.arm.gui.Gui.onClick(Gui.java:1884) ~[?:?]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor444.execute(Unknown Source) ~[?:?]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:66) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:520) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:2288) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.minecraft.server.v1_13_R2.PacketPlayInWindowClick.a(SourceFile:33) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.minecraft.server.v1_13_R2.PacketPlayInWindowClick.a(SourceFile:10) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1]
at net.minecraft.server.v1_13_R2.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:15) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_242]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_242]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.minecraft.server.v1_13_R2.SystemUtils.a(SystemUtils.java:108) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1018) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:940) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:837) ~[patched_1.13.2.jar:git-Paper-651]

[18.04.2020 11:30:06] INFO: [Adventuria-1] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
`

feat: database support

First off thanks for the awesome region plugin! I really enjoy the features and quality it provides. However for me it has one thing missing: database support.

In our server everything is managed with git and only static config files are are placed into the plugins data directory.
Database support would also give users the option to display region stats on their website.

I am also willing to help on this and draft a PR if wanted.

And if you are worried about writing SQL queries or handling database connections, I have just the right tool for you ;)

https://github.com/Silthus/ebean-wrapper

The database feature could be optionally enabled if the wrapper is detected and configurable via the config.

The only thing needed for this to work is a short connect method in your plugin: https://github.com/Silthus/sStats/blob/55807b00c50fd2629bd4793f68a07ae31d6a1778/src/main/java/net/silthus/sstats/StatsPlugin.java#L56

And then you need to setup and store your entities (which you can completely reuse even without database support): https://github.com/Silthus/sStats/blob/master/src/main/java/net/silthus/sstats/entities/PlayerSession.java

Let me know if I should send a PR.

arm gui fail

Rent a region then access the gui with
/arm gui
When you see the list of beds interact with the first one in any way... the server locks up completely until you are disconnected. If you have placed the fake "bed item" in your inventory it will no longer be there and you'll have been moved back in the world to wherever you were before opening the gui. No errors or any additional information is ever printed to console, even the console is unresponsive from the moment the "bed" is interacted with, it's not even possible to get a tps response until after the player who triggered the event is kicked from the server by a timeout.

Moving signs

Hello, I have a question: is it possible to move the rent sign for a region without resetting it so the player doesn't lose invested money and remaining rent time? Thanks for your help! :)

Invalid last owner login date

Actual behavior: Before selling/renting a region, the last owner login is set to 01.01.1970 01:00 everytime.

Expected behavior: Last owner login should be empty if no one has ever rented/bought it or a region is a new one.

[Requst] Allow region owner to setwarp on his plot

At this moment setwarp is only available for admin.
Would be great if player could set his own tp location.
Also it would be neat if command used without specifing region would be executed on region which player is currently in.

Great plugin!

arm add [worldguard-region] does not exist?

And this is a real problem since - although it is stated that it is easiest to use sign-linking mode, that too cannot function if regions are inside of ignored regions. (If those regions are not ignored, sign linking will again fail with "could not tell which region to select, put one in the ignore list in your config.yml" or similar wording). At this point this plugin is completely unusable as since the wiki isn't up to date about this command it is probably not 100% accurate with the format of the regions.yml file either, nevermind that I have no interest in generating that data by hand for 120+ regions, a single character of error anywhere and the entire plugin crashes anytime any command is run with no indication of what caused it.

Could not pass event SignChangeEvent to AdvancedRegionMarket v2.1.5

Heya. Not sure what caused that and if that's an actual problem as it didn't cause any issues and didn't give any errors in the chat, but I thought it could be useful for you:

[02:44:28 INFO]: derMiepz issued server command: /arm hotel list
[02:44:28 INFO]: /arm hotel list
[02:45:45 ERROR]: Could not pass event SignChangeEvent to AdvancedRegionMarket v2.1.5
java.lang.NullPointerException: null
	at net.alex9849.arm.regions.Region.getPrice(Region.java:428) ~[?:?]
	at net.alex9849.arm.regions.Region.lambda$new$3(Region.java:76) ~[?:?]
	at net.alex9849.arm.util.stringreplacer.StringReplacer.replace(StringReplacer.java:49) ~[?:?]
	at net.alex9849.arm.util.stringreplacer.StringReplacer.replace(StringReplacer.java:24) ~[?:?]
	at net.alex9849.arm.regions.Region.getConvertedMessage(Region.java:916) ~[?:?]
	at net.alex9849.arm.regions.CountdownRegion.getConvertedMessage(CountdownRegion.java:208) ~[?:?]
	at net.alex9849.arm.regions.RentRegion.getConvertedMessage(RentRegion.java:235) ~[?:?]
	at net.alex9849.arm.regions.RentRegion.updateSignText(RentRegion.java:109) ~[?:?]
	at net.alex9849.arm.regions.Region.updateSigns(Region.java:418) ~[?:?]
	at net.alex9849.arm.regions.CountdownRegion.setPrice(CountdownRegion.java:186) ~[?:?]
	at net.alex9849.arm.regions.RentRegion.setPrice(RentRegion.java:220) ~[?:?]
	at net.alex9849.arm.handler.listener.SignModifyListener.addSign(SignModifyListener.java:181) ~[?:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor430.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.15.2.jar:git-Paper-172]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.15.2.jar:git-Paper-172]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.15.2.jar:git-Paper-172]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:2586) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.PacketPlayInUpdateSign.a(SourceFile:44) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.PacketPlayInUpdateSign.a(SourceFile:10) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:1058) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:1051) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:1021) ~[patched_1.15.2.jar:git-Paper-172]
	at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:944) ~[patched_1.15.2.jar:git-Paper-172]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]

Request: GUIUserSellWarning lore

Shift clicking a rent sign will get you a question menu with a Yes and No button.
Screenshot_20200705_230333

This menu blocks you from seeing the in chat warning that this will reset the region. So players miss the warning and sell their region and before they realize it, their stuff is gone.
Then they (might) read the chat and the region is already gone.

Is it possible to make the Yes button to have a lore with the appropriate warning? Just like the diamond in the arm gui That one has a lore with a clear warning.

Request for Spongeforge Version

First of all i love the plugin and would love to have it on my server for our community. With Spongeforge having Economy Lite, Vault Builtin, World Edit and Universe Guard which was made due to worldguard still being developed for sponge. I was hopping if it would be possible to get this awesome plugin converted for Spongeforge. I know coding is a pain in the ass at times while being time consuming, that being said I'm more then happy to pay for your time. Please Contact me If your willing.

Spongeforge is a forge mod designed to allow Sponge Plugins

Request: PreBuyEvent

It would be nice to have a pre-buy event to be able to overwrite the balance check logic.
It would allow to have regions that deduct money from a faction/business/common account.

Allow BUY/SELL regions to have their price set via command

Reason: Currently rent regions are able to have their prices set via /arm setprice, but we cannot do the same for any buy/sell region without making a sign to create and define the price.

Proposal: Be able to run this command to set a region's price - /arm setprice regionname price

Could not pass sign change event.

Iv ran into this issue popping up in console when I try to create a sign with my shop preset.
Im sure this is just some dumb config error on my part.

The console Error:

`>.... [16:54:56]: RustyDagger issued server command: /arm rentpreset load shop

.... [16:55:11 ERROR: Could not pass event SignChangeEvent to AdvancedRegionMarket v2.1.5]
java.lang.NullPointerException: null
at net.alex9849.arm.regions.Region.getPrice(Region.java:428) ~[?:?]
at net.alex9849.arm.regions.Region.lambda$new$3(Region.java:76) ~[?:?]
at net.alex9849.arm.util.stringreplacer.StringReplacer.replace(StringReplacer.java:49) ~[?:?]
at net.alex9849.arm.util.stringreplacer.StringReplacer.replace(StringReplacer.java:24) ~[?:?]
at net.alex9849.arm.regions.Region.getConvertedMessage(Region.java:916) ~[?:?]
at net.alex9849.arm.regions.CountdownRegion.getConvertedMessage(CountdownRegion.java:208) ~[?:?]
at net.alex9849.arm.regions.RentRegion.getConvertedMessage(RentRegion.java:235) ~[?:?]
at net.alex9849.arm.regions.RentRegion.updateSignText(RentRegion.java:109) ~[?:?]
at net.alex9849.arm.regions.Region.updateSigns(Region.java:418) ~[?:?]
at net.alex9849.arm.regions.CountdownRegion.setPrice(CountdownRegion.java:186) ~[?:?]
at net.alex9849.arm.regions.RentRegion.setPrice(RentRegion.java:220) ~[?:?]
at net.alex9849.arm.handler.listener.SignModifyListener.addSign(SignModifyListener.java:181) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor662.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.15.2.jar:git-Paper-146]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.15.2.jar:git-Paper-146]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.15.2.jar:git-Paper-146]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:2586) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.PacketPlayInUpdateSign.a(SourceFile:44) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.PacketPlayInUpdateSign.a(SourceFile:10) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:1038) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:1031) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:1172) ~[patched_1.15.2.jar:git-Paper-146]
at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:934) ~[patched_1.15.2.jar:git-Paper-146]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]`

My files.

my files.zip

Region rename command

As in a title, maybe a command for renaming a region which would also affect WorldGuard? I don't know if it's possible, but would make things easier sometimes :)

Reset doesn't work on version 3.3

Resetting existing regions is completely broken after updating from v3.2.8 to v3.3. When trying to reset a region with /arm reset <region name> the following error appears in the log and the schematic is not loaded: https://pastebin.com/4pwJTQnE
For regions that were not sold at the time of the update, the reset works and the schematic is loaded correctly.

AdvancedRegionMarket version 3.3
FastAsyncWorldEdit version 1.16-507;bfd04e4
WorldGuard version 7.0.5-SNAPSHOT+15a0809
Tuinity version git-Tuinity-"f06591a" (MC: 1.16.4)

Region user-friendly display name

Sometimes I give my regions different names and I would like my players to see some other name as region name (for instance something which contains spaces). Could you please add a possibility to give display name for regions added to ARM?

Regionkind Groups

Regionkind should be made groupable. For example it should be possible to group two regionkinds citybuild_small and citybuild_medium together to a group named citybuild.

The limitgroup feature should be expanded to allow admins to limit buyable regions per regionkind-group. This way players could decide how they want to allocate their regionlimits. For example if you set the grouplimit for the citybuild group to 5, players should be able to buy for example 2 citybuild_medium plots and 3 citybuild_small plots.

The /arm info commands needs to display to which group a regionkind belongs.
One possible way would be: RegionKind: citybuild_small (Citybuild)

Landlords

Have support for landlords so players can get money from their regions. Should be set by doing /arm set landlord [region] [player]

Adding members guide showing only with no members

I've found a problem with displaying guide to add new members.

Actual behavior:
maxMembers set to -1 (unlimited)
the guide visible only when no members added

Expected behavior:
The guide visible always if not greater than maxMembers. In case of -1 (unlimited) it should be always visible. My players keep asking me how to add new members all the time.

Additional hints:
Is it possible to make it more user-friendly and clickable? For instance that you can click on that option and it is already written in chat. A player would need to change only the name of the new member.

Screenshot:

No members added (guide visible):
image

1 member added (no more guide although maxMembers = unlimited)
image

WG Flags not set, sometimes

Sometimes, some regions refuse to set WG flags anymore.
Players complain they can't build in the rented area. although the sign says it's rented.

I'm not sure yet how to reproduce.
No errors

Workaround: unloading/loading plugin solves it.

I experience this since a couple of versions.
Currently running ARM 3.2.7
Paper 1.16.3
WG 7.0.4

Global message send on sign create with SignLinkMode

Steps to reproduce:

  1. Create a new WorldGuard region ("testgs")
  2. Place a sign
  3. /arm sellpreset load
  4. /arm signlinkmode sellregion
  5. Click on that sign
    => Following white colored message is visible to all players without [ARM] prefix: [kikelkik] Die Region testgs wurde erfolgreich erstellt!

I didn't find that message in any configuration/code of ARM. It might come from another dependency.

ARM Throwing Errors 1.16.2 and disabling

11:42:54
Error occurred while enabling AdvancedRegionMarket v3.2.4 (Is it up to date?)
Console 11:42:54
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
at net.alex9849.arm.presets.PresetPatternManager.generatePresetObject(PresetPatternManager.java:31) ~[?:?]
at net.alex9849.arm.presets.PresetPatternManager.loadSavedObjects(PresetPatternManager.java:100) ~[?:?]
at net.alex9849.arm.util.YamlFileManager.(YamlFileManager.java:24) ~[?:?]
at net.alex9849.arm.presets.PresetPatternManager.(PresetPatternManager.java:20) ~[?:?]
at net.alex9849.arm.AdvancedRegionMarket.onEnable(AdvancedRegionMarket.java:201) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:380) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugin(CraftServer.java:499) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugins(CraftServer.java:413) ~[patched_1.16.2.jar:git-Paper-160]
at net.minecraft.server.v1_16_R2.MinecraftServer.loadWorld(MinecraftServer.java:468) ~[patched_1.16.2.jar:git-Paper-160]
at net.minecraft.server.v1_16_R2.DedicatedServer.init(DedicatedServer.java:241) ~[patched_1.16.2.jar:git-Paper-160]
at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:939) ~[patched_1.16.2.jar:git-Paper-160]
at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.2.jar:git-Paper-160]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
INFO 11:42:54
[AdvancedRegionMarket]: Disabling AdvancedRegionMarket v3.2.4
ERROR 11:42:54
Error occurred while disabling AdvancedRegionMarket v3.2.4 (Is it up to date?)
Console 11:42:54
java.lang.NullPointerException: null
at net.alex9849.arm.AdvancedRegionMarket.onDisable(AdvancedRegionMarket.java:269) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:265) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:415) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:516) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:384) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugin(CraftServer.java:499) ~[patched_1.16.2.jar:git-Paper-160]
at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugins(CraftServer.java:413) ~[patched_1.16.2.jar:git-Paper-160]
at net.minecraft.server.v1_16_R2.MinecraftServer.loadWorld(MinecraftServer.java:468) ~[patched_1.16.2.jar:git-Paper-160]
at net.minecraft.server.v1_16_R2.DedicatedServer.init(DedicatedServer.java:241) ~[patched_1.16.2.jar:git-Paper-160]
at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:939) ~[patched_1.16.2.jar:git-Paper-160]
at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.2.jar:git-Paper-160]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]

Pay for flag editor changes

I think it would be a good idea to add option to pay for flags set on the region (configurable which ones and for what price). It would greatly improve the purpose of having a server currency and extend it to a whole new level.

A player could for instance pay for creeper-explosion or tnt protection. It could be a one time price or an addition to renting price (in case of a rent region).

Inconsistencies

Some stuff that should be fixed because it is easy to misunderstand it, or because it is just inconsistent.

1.) Rename permission of the sellback command:
arm.member.sellregion -> arm.member.sellback

2.) Move paybackpercentage variable to region object

InventoryClickEvent Lagspike

I'm not sure why but opening the gui and clicking on things leads to a severe lag spike.
Hardware, RAM or playercount is not the issue. TPS is allways 20, tick duration around 15ms/50ms.
During spike, tps drops to around 6! Spike lasts about 8 sec.
Screenshot_20200706_011919
Screenshot_20200706_012029

Lag and error when managing regions as owner via GUI (region with a lot of entities)

Hello,

My server works without lags and any problems except for this one situation. When I am in /arm gui and I'm clicking on "my regions" the server hangs for a couple of seconds and such exception is visible on the console:

12.07 11:11:20 [Server] ERROR --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH - git-Paper-375 (MC: 1.15.2) --- 12.07 11:11:20 [Server] ERROR The server has not responded for 10 seconds! Creating thread dump 12.07 11:11:20 [Server] ERROR ------------------------------ 12.07 11:11:20 [Server] ERROR Server thread dump (Look for plugins here before reporting to Paper!): 12.07 11:11:20 [Server] ERROR ------------------------------ 12.07 11:11:20 [Server] ERROR Current Thread: Server thread 12.07 11:11:20 [Server] ERROR PID: 26 | Suspended: false | Native: true | State: RUNNABLE 12.07 11:11:20 [Server] ERROR Stack: 12.07 11:11:20 [Server] ERROR java.net.SocketInputStream.socketRead0(Native Method) 12.07 11:11:20 [Server] ERROR java.net.SocketInputStream.socketRead(SocketInputStream.java:116) 12.07 11:11:20 [Server] ERROR java.net.SocketInputStream.read(SocketInputStream.java:171) 12.07 11:11:20 [Server] ERROR java.net.SocketInputStream.read(SocketInputStream.java:141) 12.07 11:11:20 [Server] ERROR sun.security.ssl.InputRecord.readFully(InputRecord.java:465) 12.07 11:11:20 [Server] ERROR sun.security.ssl.InputRecord.read(InputRecord.java:503) 12.07 11:11:20 [Server] ERROR sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:990) 12.07 11:11:20 [Server] ERROR sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:948) 12.07 11:11:20 [Server] ERROR sun.security.ssl.AppInputStream.read(AppInputStream.java:105) 12.07 11:11:20 [Server] ERROR java.io.BufferedInputStream.fill(BufferedInputStream.java:246) 12.07 11:11:20 [Server] ERROR java.io.BufferedInputStream.read1(BufferedInputStream.java:286) 12.07 11:11:20 [Server] ERROR java.io.BufferedInputStream.read(BufferedInputStream.java:345) 12.07 11:11:20 [Server] ERROR sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735) 12.07 11:11:20 [Server] ERROR sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678) 12.07 11:11:20 [Server] ERROR sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1593) 12.07 11:11:20 [Server] ERROR sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498) 12.07 11:11:20 [Server] ERROR sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268) 12.07 11:11:20 [Server] ERROR com.mojang.authlib.HttpAuthenticationService.performGetRequest(HttpAuthenticationService.java:130) 12.07 11:11:20 [Server] ERROR com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:66) 12.07 11:11:20 [Server] ERROR com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillGameProfile(YggdrasilMinecraftSessionService.java:180) 12.07 11:11:20 [Server] ERROR com.destroystokyo.paper.profile.PaperMinecraftSessionService.fillGameProfile(PaperMinecraftSessionService.java:37) 12.07 11:11:20 [Server] ERROR com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillProfileProperties(YggdrasilMinecraftSessionService.java:173) 12.07 11:11:24 [Multicraft] Skipped 36 lines due to rate limit (30/s) 12.07 11:11:24 [Server] WARN Can't keep up! Is the server overloaded? Running 13156ms or 263 ticks behind

Do you know maybe what can be the cause of such a lag? It happens also for other options but only in "my regions as owner" part.

EDIT: I think I find the cause of the problem. It is EntityLimits, it is calculated and I have regions with a lot of entities. Can I disable this feature completely?

Schematic selection GUI when buying/renting a region [Idea]

Hi there,
first of all thanks for your awesome plugin!
But i have a feature request/idea which is a bit unconventional (maybe):
a schematic selection gui when a player buys/rent a region (maybe toggable in per group) which allows the player to select which (house template for example) he wants to use.

This idea I just wanted to share with you, if you make something out of the idea is of course your business :D

Greetings
DerLinkman

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.