Spigot Maplands 1.1

Minecraft worlds in the map dimension

  1. @TeamBergerhealer
    Could you do two things:

    1. Make a Recipe for Maplands map?
    2. If a player has a map lands map in hand that it updates an isometric view of where the player is LIVE in there Hand While they are exploring?
    3. Have it say there current X and Z Coordinates? in the Action Bar while they are walking around? (include this while in offhand slot)

    [​IMG]
     
  2. TeamBergerhealer

    Supporter

    @Its_Craft Originally maplands wasnt really intended for survival use like this, mostly for billboards to display overview maps in the real world. I can see a real potential here for a survival element though.

    If implemented, the recipe would likely to be configurable (because I'm sure servers will want to tweak it). For a survival element, having map markers to designate various things would also be quite useful. It should all be quite easy to do.

    It's not something I can make happen quickly though, but I'll make an enhancement issue ticket for this on the github issue tracker so its not forgotten because I do like the idea.

    https://github.com/bergerhealer/Maplands/issues/10
     
    • Optimistic Optimistic x 1
  3. Thank you so much. I have noticed some Weird Glitches with this plugin in 1.13.1 though for me as OP using /maplands etc I can get a map of the current location and placing a bunch on a wall in 1 spot and then zooming out and and scrolling very fast through terrain can cause some of the maps to lag or just stop completely generating terrain on the map or showing old terrain from a few chunks prior.

    Another minor bug is when i map a map lands billboard and then log out and then log back in or reload the server sometimes the maps placed will glitch or not show up properly (only 1 or 2 of them do this)

    another bug is similar to the last listed above restarting the server will a billboard/or/disconnecting from the server and reconnecting with my account and then teleporting to a new location and getting a new map lands map and making a new billboard in the new area sometimes shows the wrong maplands area (showing sometimes chunks from the other map lands map billboard on the other side of the world).
    This mostly happens with multiple billboards if i reload or Re-log into the server multiple times.

    Lastly how long would it take to make this plugin have a more survival friendly Approach?
    MY players are super interested in this plugin as it is and keep asking me about if it can come to survival xD
    No rush just making sure how long it could take worst case scenario.
     
  4. TeamBergerhealer

    Supporter

    I'm presently in the middle of moving into a new house, and also have a following of people that want animated 3d models in traincarts. These two items have be a bit busy at the moment. Of course if someone else is willing to contribute to add the survival element I'm more than willing to include it :)
     
  5. Getting huge TPS loss for some reason, using Paper 1.13.2
    upload_2019-1-24_16-32-46.png

    Timings Report

    PS: I know ur Ill atm, I'm just letting you know for future reference :D hope u get better soon

    EDIT - Server also drops to 0 TPS when trying to use resourcepack urls
     
    #25 Alter-Ego, Jan 24, 2019
    Last edited: Jan 24, 2019
  6. TeamBergerhealer

    Supporter

    • Like Like x 1
  7. I am already using this build.... still getting major lagg when a few players are near big maps 3x3 4x4 etc
     
    #27 Alter-Ego, Jan 25, 2019
    Last edited: Jan 25, 2019
  8. TeamBergerhealer

    Supporter

    Thats a little bit expected, but shouldn't last for longer than the maps spend rendering. It's obviously worse at higher zoom-out (more blocks)
     
  9. Sorry it may have actually been animated frames causing the Lagg issue after all

    Also for some reason there's 2 strange looking hearts that appear in the bottom right corner of the screen, it's not really a problem but are they there for any reason?

    EDIT - Also are u able to make it compatible with AnimatedFrames just so theres no chance of their plugin or your plugin overriding each others maps?
     
  10. TeamBergerhealer

    Supporter

    The hearts are there when controlling the map because youre seated to retrieve input. Theres no mob or entity a player can sit in that does not show these hearts sadly.

    BKCommonLib makes sure that maps by other mods dont interfere with the map display logic. Is there interference at all?
     
  11. ah ok fair enough, theres no interference that i can notice atm just thought I'd mention it just incase
     
  12. TeamBergerhealer

    Supporter

    That's fine, it's a common question. I documented it in an issue ticket a while ago if you're interested in how all of that works in the background, but it's quite a read which why I tend to keep answers short :)

    https://github.com/bergerhealer/BKCommonLib/issues/45

    A tldr; can be: for map displays, it's not storing durability/metadata in the item in the form of a map id, like what other plugins tend to do. Instead it stores a 128-bit UUID. BKCommonLib has some background processes running that monitor what kind of map id's are used on the server. It can do so, because map displays always have Id 0, which means Id != 0 is external to the plugin.

    That way it can select map id's from a pool that is not yet used, and shuffle things around when a clash occurs.
     
    #32 TeamBergerhealer, Feb 7, 2019
    Last edited: Feb 7, 2019
  13. When using this resourcepack https://www.dropbox.com/s/mxd0vkd0u7ijwnw/John Smith Legacy 1.13.0 v5.zip?dl=1
    and starting the server, when I go near a map I made, the TPS drops to 0 and errors spurt out. I'm using 1.13.2

    Code (Text):
    [19:22:31 INFO]: Failed to parse GSON for Model at block/repeater_4tick: com.bergerkiller.bukkit.common.dep.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 48 column 2 path $
    [19:22:31 WARN]: [BKCommonLib.Debug] [BKCommonLib] [Debug] Failed to load model block/repeater_4tick  -  com.bergerkiller.bukkit.common.map.MapResourcePack.loadModel(MapResourcePack.java:491)
    [19:22:41 INFO]: [ TPS Meter ] The servers TPS is bellow 0.4, is it lagging or crashed?
    [19:22:41 ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH  - git-Paper-525 (MC: 1.13.2) ---
    [19:22:41 ERROR]: The server has not responded for 10 seconds! Creating thread dump
    [19:22:41 ERROR]: ------------------------------
    [19:22:41 ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
    [19:22:41 ERROR]: ------------------------------
    [19:22:41 ERROR]: Current Thread: Server thread
    [19:22:41 ERROR]:       PID: 25 | Suspended: false | Native: false | State: RUNNABLE
    [19:22:41 ERROR]:       Stack:
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.dep.gson.internal.LinkedTreeMap.find(LinkedTreeMap.java:150)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.dep.gson.internal.LinkedTreeMap.findByObject(LinkedTreeMap.java:186)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.dep.gson.internal.LinkedTreeMap.get(LinkedTreeMap.java:82)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.map.util.Model.build(Model.java:69)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.map.MapResourcePack.loadModel(MapResourcePack.java:516)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.map.MapResourcePack.loadModel(MapResourcePack.java:507)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.map.MapResourcePack.loadBlockVariant(MapResourcePack.java:456)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.map.MapResourcePack.loadBlockModel(MapResourcePack.java:431)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.map.MapResourcePack.getBlockModel(MapResourcePack.java:278)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.maplands.IsometricBlockSprites.getSprite(IsometricBlockSprites.java:68)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.maplands.IsometricBlockSprites.getSprite(IsometricBlockSprites.java:86)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.maplands.TestFrameMap.drawBlock(TestFrameMap.java:295)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.maplands.TestFrameMap.drawBlock(TestFrameMap.java:278)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.maplands.TestFrameMap.renderSlice(TestFrameMap.java:431)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.maplands.TestFrameMap.onTick(TestFrameMap.java:471)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.map.MapDisplay.update(MapDisplay.java:320)
    [19:22:41 ERROR]:               com.bergerkiller.bukkit.common.map.MapDisplay$1.run(MapDisplay.java:788)
    [19:22:41 ERROR]:               org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftTask.run(CraftTask.java:82)
    [19:22:41 ERROR]:               org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:449)
    [19:22:41 ERROR]:               net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1003)
    [19:22:41 ERROR]:               net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439)
    [19:22:41 ERROR]:               net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:938)
    [19:22:41 ERROR]:               net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:836)
    [19:22:41 ERROR]:               java.lang.Thread.run(Unknown Source)
     
  14. Found this as well, it seemed to appear at random
    Code (Text):
    [02:53:52 WARN]: [Maplands] Task #12488 for Maplands v0.5 generated an exception
    java.util.ConcurrentModificationException: null
            at java.util.HashMap$HashIterator.nextNode(Unknown Source) ~[?:1.8.0_202]
            at java.util.HashMap$KeyIterator.next(Unknown Source) ~[?:1.8.0_202]
            at com.bergerkiller.bukkit.maplands.TestFrameMap.onTick(TestFrameMap.java:452) ~[?:?]
            at com.bergerkiller.bukkit.common.map.MapDisplay.update(MapDisplay.java:320) ~[?:?]
            at com.bergerkiller.bukkit.common.map.MapDisplay$1.run(MapDisplay.java:788) ~[?:?]
            at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftTask.run(CraftTask.java:82) ~[patched_1.13.2.jar:git-Paper-525]
            at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:449) ~[patched_1.13.2.jar:git-Paper-525]
            at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1003) ~[patched_1.13.2.jar:git-Paper-525]
            at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.13.2.jar:git-Paper-525]
            at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:938) ~[patched_1.13.2.jar:git-Paper-525]
            at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:836) ~[patched_1.13.2.jar:git-Paper-525]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_202]
    [02:53:52 WARN]: [Maplands] Task #12488 for Maplands v0.5 generated an exception
    java.util.ConcurrentModificationException: null
            at java.util.HashMap$HashIterator.nextNode(Unknown Source) ~[?:1.8.0_202]
            at java.util.HashMap$KeyIterator.next(Unknown Source) ~[?:1.8.0_202]
            at com.bergerkiller.bukkit.maplands.TestFrameMap.onTick(TestFrameMap.java:452) ~[?:?]
            at com.bergerkiller.bukkit.common.map.MapDisplay.update(MapDisplay.java:320) ~[?:?]
            at com.bergerkiller.bukkit.common.map.MapDisplay$1.run(MapDisplay.java:788) ~[?:?]
            at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftTask.run(CraftTask.java:82) ~[patched_1.13.2.jar:git-Paper-525]
            at org.bukkit.craftbukkit.v1_13_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:449) ~[patched_1.13.2.jar:git-Paper-525]
            at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1003) ~[patched_1.13.2.jar:git-Paper-525]
            at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.13.2.jar:git-Paper-525]
            at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:938) ~[patched_1.13.2.jar:git-Paper-525]
            at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:836) ~[patched_1.13.2.jar:git-Paper-525]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_202]
     
  15. Found another problem, when placing an observer near a Maplands Map within a 20 block radius or so it causes the observer to constantly trip out :eek:
     
  16. TeamBergerhealer

    Supporter

    @the_happy_helper thats quite a list of things to look into, currently swamped unfortunately. I looked into it quickly.

    The observer ticking indicates maplands is performing block physics whenever it reads block information, a very bad thing. It would ruin performance also. I'm not sure what caused this to suddenly happen, but my guess is a change in the server. The concurrent modification is definitely because of the above; there are block changes occurring while it is reading the world. Obviously doing all this will cause massive lag also.

    I'll keep you posted when I have an update ready
     
  17. thanx that explains a lot
     
  18. TeamBergerhealer

    Supporter

    Theres bugs in the spigot source, causing it to fire block physics events when the state for a block is updated. That isnt actually a block change, that just means the 'shape' of a block is updated, which can also happen without physics. I'll add a bunch of filters so it doesn't call updateState() for these block types.

    [​IMG]
     
  19. TeamBergerhealer

    Supporter

    This fixes all your problems @the_happy_helper :) And thanks for reporting this!

    https://ci.mg-dev.eu/job/BKCommonLib/512/

    This also fixes the issue of the observer being ticked in a loop. It was looping because, when the block changes, maplands renders the block again, causing another block change, etc. This wasn't actually a radius of 20, it was server-wide, so that could be quite serious.
     
  20. oh cool tyvm and no probs glad i could help, and hmm thats weird cause the observer would start working normally again when I went away from the map, mind you the map was in the spawn area that stays loaded and was also inside a worldguard region, whether any of that matters I dunno but either way thanx for the fix that was quick!