Filled Free-Form Borders

Discussion in 'Plugin Requests' started by Gh0stKitty, Sep 7, 2019.

  1. Offline

    Gh0stKitty

    R E A D C O M M E N T S

    Plugin category: Unsure

    Minecraft version: 1.14.4+

    Suggested name: ClanBorders

    What I want:

    - I'd like to have a plugin where you can create essentially a region by marking it with Stained Clay.
    Unlike Region protecting with WorldGuard i'd like this to be able to make a region free-form wherever Stained Clay is placed. [Set it so Stained Clay is the only block type allowed to be used for borders]
    Perhaps have this world with WorldGuard regions? Im not sure if this is possible though.

    - "/Border Create (Bordername)" to create the region's name. Then do something such as "/Border set (Bordername)" to start setting the border. and do "/Border finish" To complete the border region. Have it so the end block MUST touch the start block.

    - The Ability to set which group of players can and cannot mark a certain border. Maybe something like this?
    /Border Flag (Border Name) (Group Name) AllowMarking
    /Border Flag (Border Name) (Group Name) DenyMarking

    - Ability to work with GroupManager for groups.
    EX. If a certain group want's to mark a border and they are ranked as Shadowclan they can only mark a border that has the Shadowclan group listed as someone with AllowMarking.
    If this is not possible then the ability to make different Border groups so ops can do
    "/Border teams set (Username) (BorderName)"

    EX. image of a border edge
    upload_2019-9-7_14-31-57.png
    [​IMG]
    [​IMG]

    -I'd like for border's to be able to get "dull" over time and change block material based on age.
    If possible have a percentage system so every minecraft day it will change by 10%.
    If that isn't possible, Have it change once every 3 minecraft days without interaction by a player of that region's group.

    -When the border is walked on by a player of that border's group, have it reset to 100%

    upload_2019-9-7_14-25-21.png


    Ideas for permissions:

    Only OP's can set borders and border groups.


    When I'd like it by: 9/29

    This does not need to world with regions or anything of the sort, However at the minimum I would highly appreciate Terracotta blocks displayed in the third image to change to wool after Three mc days and then change once more to glass if they have not been stepped on by a player.
    Once stepped on by a player it resets to the terracotta.
     
    Last edited: Oct 12, 2019
  2. Offline

    JRL1004

    So, a couple of things:
    1) If you are just looking to be able to create regions that as free-form like what you have shown, you can use a polygonal selection tool (from WorldEdit) to define a custom WorldGuard region. This will let you make all of the shapes you have shown with the only limitation being the height of the region (protection height may not vary).

    2) You showed examples of the border decaying (I assume) as the border is supposed to be restored to 100% when walked on by that border group. How does that decay system work? How much percent is lost every 3 days, and does anything else cause decay? What happens when the border fully decays?

    3) What do the regions prevent? There are many things that can be protected (e.g. crap trampling, entry, block placing).

    I really think that there needs to be a bit more information in this post. That said, doing this without WorldGuard looks like it could be a fun programming task, specifically the idea of determining if a block is within the region, on the border of the region, etc.

    To potential developers: I am not saying that I will work on this, it is still fully up for grabs.
     
  3. Offline

    Gh0stKitty

    Hey there @JRL1004

    1- How would I use polygonal selection tool? I have never heard of it before and quite interested.

    2- My original idea was that about 16.6 perent was lost per day, however when I started writing this post it sounded much easier to just have the border decay once every 3 minecraft days.
    The decay system doesn't effect much other than causing passive mobs to spawn less. (I'd like to be able to have mobs in these regions drop custom named food items if possible)

    3- (Just gotta point out you said crap trampling lmao) I'd like regions to prevent players of certain Groups at 100%. At 0% players of all groups can enter until it is remarked to 100%

    Hopefully this answered your questions!
     
  4. Offline

    Gh0stKitty

  5. Offline

    Gh0stKitty

    Bump

    The plugin no longer needs to form a region or any of that. I simply want them to change one type once every three mc days. When stepped on by a player the block resets to 100% and the cycle repeats.
     
  6. Offline

    Gh0stKitty

    Bump...
     
  7. Offline

    Peridot

    Hey, i'll try my best to complete this. While i definitely am proficient with java i haven't done anything with bukkit in a while, so i can't guarantee anything.
     
  8. Offline

    Gh0stKitty

    Alright thank you so much!! My server runs spigot but bukkit seems to work just fine
     
  9. Offline

    Peridot

    <Edit by Moderator: Redacted mediafire url> me![/URL]
    This is the plugin. It's just a basic border creation tool, which lets the borders "decay" over time.
    For durability renewal i made the borders reset when rightclicked for a more lagfriendly solution.
    If you need anything changed or added, just tell me, i'll see what i can do. :)
     
    Gh0stKitty likes this.
  10. Offline

    Gh0stKitty

    Alright thank you so much!! your link got removed though :(
     
  11. Offline

    Peridot

    Gh0stKitty likes this.
  12. Offline

    Gh0stKitty

    Thank you so much!! The commands and everything seem to work however... I need it in stained clay. I can't use concrete as it doesn't blend properly with terrain. And It isn't decaying either :(
     
    Last edited: Oct 14, 2019
  13. Offline

    Peridot

    Changed the block types, but the borders not decaying is weird, since it worked for me. How did you test it? Did you get a message in the console: Startet a BorderController for world "worldname", after you created a border?
     
  14. Offline

    Gh0stKitty

    Can you fix them to stained clay please aaaa?
    Also, this is the error message im getting

    14.10 16:11:52 [Server] Server thread/INFO Gh0stKitty issued server command: /clanborders:border create Thunderclan 14.10 16:12:06 [Server] Async Chat Thread - #11/ERROR Could not pass event AsyncPlayerChatEvent to Essentials vTeamCity 14.10 16:12:06 [Server] INFO org.bukkit.event.EventException: null 14.10 16:12:06 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:529) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:508) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerConnection.chat(PlayerConnection.java:1563) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1501) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO at net.minecraft.server.v1_14_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:41) [spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_222] 14.10 16:12:06 [Server] INFO at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_222] 14.10 16:12:06 [Server] INFO at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222] 14.10 16:12:06 [Server] INFO at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222] 14.10 16:12:06 [Server] INFO at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222] 14.10 16:12:06 [Server] INFO Caused by: java.lang.IllegalStateException: AfkStatusChangeEvent cannot be triggered asynchronously from another thread. 14.10 16:12:06 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:511) ~[spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO at com.earth2me.essentials.User.setAfk(User.java:511) ~[?:?] 14.10 16:12:06 [Server] INFO at com.earth2me.essentials.User.updateActivity(User.java:601) ~[?:?] 14.10 16:12:06 [Server] INFO at com.earth2me.essentials.EssentialsPlayerListener.onPlayerChat(EssentialsPlayerListener.java:92) ~[?:?] 14.10 16:12:06 [Server] INFO at sun.reflect.GeneratedMethodAccessor225.invoke(Unknown Source) ~[?:?] 14.10 16:12:06 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222] 14.10 16:12:06 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222] 14.10 16:12:06 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[spigot-1.14.4.jar:git-Spigot-9de398a-9c887d4] 14.10 16:12:06 [Server] INFO ... 11 more 14.10 16:12:12 [Server] Server thread/INFO Gh0stKitty issued server command: /clanborders:border finish Thunderclan
     
  15. Offline

    Peridot

    The borders should be terracotta now, if you meant that by clay.
    Gonna look at the error now.
     
    Gh0stKitty likes this.
  16. Offline

    Gh0stKitty

    Alright thank you. Yes i've just got the habit of it being called stainedclay
     
  17. Offline

    Peridot

    Are you using the latest version of EssentialsX, because i can't reproduce what seems to be the error here.
     
  18. Offline

    Gh0stKitty

    I'm not using essentialsX but i am using the Essentials Snapshot
     
  19. Offline

    Peridot

    Ok, i restructured my whole plugin, checked the whole spigot api for any out of date methods i used, found one, which could have caused problems, so i used the new one. This could fix the problem, but since in your error log my plugin isn't even mentioned, but it rather says that essentials had a problem with getting a chat message, i advise updating to EssentialsX since they're still updating, bug fixing, and officially supporting 1.14.4+
    Link didn't change: https://www.dropbox.com/s/ag6zx6zctzgaruz/ClanBorders.jar?dl=0
    Hope it works this time, if it doesn't, try essentialsX, if you can't for some reason or you're still getting errors, hit me up. :)
     
    Gh0stKitty likes this.
  20. Offline

    Gh0stKitty

    Thank you so much!!! It works perfectly! <33
     
    Last edited: Oct 14, 2019
  21. Offline

    Peridot

    Glad I could help. Still, if you need anything changed tell me.
     
    Gh0stKitty likes this.
  22. Offline

    Gh0stKitty

    I'll be sure to let you know if i encounter any problems! <3

    @Peridot I've encountered a couple of issues

    -Borders havent been decaying except for only one border. [I have about 50 or so borders set all connecting so players have to renew multiple parts for the full border to be renewed]

    -The plugin seems to lag any block build/breaking where your camera glitches you back a second. This is a little annoying and only started happening with this plugin. [If this cant be fixed its totally fine I can deal with it ^^]
     
    Last edited: Oct 16, 2019

Share This Page