Giter Site home page Giter Site logo

granny / pl3xmap Goto Github PK

View Code? Open in Web Editor NEW
50.0 2.0 87.0 28.63 MB

Pl3xMap is a minimalistic and lightweight world map viewer for Minecraft servers using the vanilla Minecraft rendering style

Home Page: https://modrinth.com/plugin/pl3xmap

License: MIT License

JavaScript 1.05% Java 89.93% TypeScript 8.07% HTML 0.20% SCSS 0.75%
bluemap dynmap fabric fabricmc forge forgemc hacktoberfest minecraft overviewer paper

pl3xmap's Introduction

Metrics

pl3xmap's People

Contributors

0x7d8 avatar antbrl avatar billygalbreath avatar granny avatar jedrek0429 avatar jlyne avatar joeyak avatar roan-v avatar spongecade avatar tbluef avatar u5b avatar ydal251 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

Watchers

 avatar  avatar

pl3xmap's Issues

New command: `resume`

Hello,

Would you consider adding a command to resume the renderer?

I know there's already a pause command that handles both pausing and resuming, but sometimes that is not enough, and it's also a bit confusing.

Here is the scenario I'm in (TL;DR below):

I'm running a small private server with a Raspberry Pi 4, using the Pl3xmap plugin for its webmap feature. However, the map has grown to 6GB, and if I keep Pl3xmap running continuously, it can crash the server while updating. To avoid this, I manually pause and resume it, which works well but is a hassle. I want to create a (scheduled bash) script that automatically resumes it at night and pauses it again after a set time. Using the current two-in-one command would be unreliable as it can sometimes accidentally resume it instead of pausing, or vice-versa. So, separate commands would be preferable in this scenario.

TL;DR: The two-in-one command we currently have is unpredictable and unintuitive, and cannot be reliably used in automation. Separate commands would solve those issues.

@hmlendea

Minimum calculated cps is 1024, which also breaks the eta

Lowest cps the status command will display is 1024 (I'm assuming 32x32 chunks, aka a region)
This is incorrect information for one, and for two, it also makes the eta incorrect

e.g. on my oracle cloud vps the average cps was 513, so the eta was basically half what it actually should've been

@Roan-V

Colors don't update

i changed the waxed exposed cut copper stairs to white and re rendered it but nothing changed

Add Support for BeautyQuests

Hi I wanted to ask if you could add support for BeautyQuests.
I have already asked BeautyQuests and was instructed to ask you if you could set this up on your end.

Here is the link to the original issue of BeautyQuests.

SkytAsul/BeautyQuests#303 (comment)

It would be great if you could set this up.

I contribute a Chinese lang_zh.yml

prefix:
  command: '<grey>[<gradient:#C028FF:#5B00FF>Pl3xMap</gradient>]</grey> '
command:
  base: 查看地图 '<grey><click:open_url:'<web-address>'><web-address></click></grey>'
  event:
    click-for-help: 点击获取帮助
    click-to-confirm: 点击确认
  argument:
    optional-player: 如果未指定,默认为执行命令的玩家(控制台必须指定玩家)
    optional-center: 如果未指定,默认为 (<white>0<gray>,</gray> 0</white>)
    optional-zoom: 地图缩放级别
    required-renderer: 必须指定渲染器
    required-world: 必须指定世界
  confirm:
    description: 确认一个待处理的命令
    not-rendering: <red>需要确认。请使用 <grey>/map confirm</grey> 进行确认
    success: <red>您没有任何待确认的命令
  fullrender:
    description: 对一个世界进行完全渲染
    starting: <green>开始进行完全渲染。请查看 <grey>/map status</grey> 获取更多信息
  help:
    description: 获取 Pl3xmap 命令的帮助
    argument:
      query: 帮助查询
  hide:
    description: 隐藏玩家在地图上的显示
    already-hidden: <grey><player> <red>已经在地图上隐藏了
    success: <grey><player> <green>现在已经在地图上隐藏了
  pause:
    description: 切换渲染器的暂停状态
    paused: <green>渲染器已暂停
    unpaused: <green>渲染器已解除暂停
  radiusrender:
    description: 渲染世界的一个区域
    starting: <green>开始进行半径渲染。请查看 <grey>/map status</grey> 获取更多信息
  reload:
    description: 重新加载插件
    success: <green>Pl3xMap <grey>v<version></grey> 已重新加载
  resetmap:
    description: 取消对世界的活动渲染
    begin: <green>开始重置地图 <grey><world></grey>
    success: <green>成功重置地图 <grey><world></grey>
    failed: <red>无法重置地图 <grey><world></grey>
  show:
    description: 在地图上显示玩家
    not-hidden: <grey><player> <red>在地图上没有隐藏
    success: <grey><player> <green>不再在地图上隐藏
  status:
    description: 查看渲染状态
  stitch:
    description: 将图块拼接成一张图片
    missing-directory: <red>找不到图块目录。
    error-reading-directory: <red>读取图块目录时出现问题。
    empty-directory: <red>没有可拼接的图块。
    starting: |-
      <green>开始拼接 <count> 张图块..
      <green><italic>(最小: <min-x>,<min-z> 最大: <max-x>,<max-z> 大小: <size-x>,<size-z>)
    finished: |-
      <green>拼接完成 <count> 张图块!
      <green>您可以在 <grey>/tiles/<world>/stitched/<filename> 找到它
  version:
    description: 获取版本信息
    please-wait: <italic>正在检查版本,请稍候...
    still-checking: <italic>仍在检查...
    error:
      not-array: <red>错误:响应不是一个数组
      corrupt-json: <red>错误:响应为损坏的 JSON
      unknown-version: <red>错误:响应中包含未知版本
      unable-to-determine: <red>错误:无法确定最新构建
    success: Pl3xMap v3 <version>(<italic><platform></italic>)git-<commit>
    snapshot: <yellow><italic>您正在运行快照版本
    latest-build-is: <yellow><italic>最新构建为 <build>
    running-latest-build: <green><italic>您正在运行最新构建。
    builds-behind: <yellow><italic>您落后于 <number> 个构建。
    download: <yellow><italic>下载新构建:<gold><link>
    time-traveler: <yellow><italic>您是时空旅行者吗?
httpd:
  started:
    success: <green>内部 Web 服务器正在运行,地址:<yellow><bind></yellow>:<yellow><port></yellow>
    error: <red>无法启动内部 Web 服务器
  stopped:
    success: <green>内部 Web 服务器已停止
    error: <red>内部 Web 服务器发生错误
  disabled: <green>内部 Web 服务器已禁用
progress:
  eta:
    unknown: 未知
error:
  must-specify-player: <red>您必须指定玩家
  no-such-player: <red>没有找到玩家 <grey><player>
  must-specify-renderer: <red>您必须指定渲染器
  no-such-renderer: <red>没有找到渲染器 <grey><renderer>
  must-specify-world: <red>您必须指定世界
  no-such-world: <red>没有找到世界 <grey><world>
  world-disabled: <red>Pl3xMap 已禁用世界 <grey><world>
  not-valid-zoom-level: <red>不是有效的缩放级别
  point-invalid-format: '''<point>'' 不是一个有效的位置。所需格式为 ''<x> <z>'''
ui:
  layer:
    players: 玩家
    spawn: 重生点
    worldborder: 世界边界
  title: Pl3xMap
  block-and-biome-lang-file: zh_cn.json
  blockinfo:
    label: 方块信息
    value: <block><br /><biome>
  coords:
    label: 坐标
    value: <x>, <y>, <z>
  link:
    label: 可共享链接
    value: ''
  markers:
    label: 标记点
    value: 没有配置任何标记点
  players:
    label: 玩家(在线:<online>/<max>)
    value: 当前没有玩家在线
  worlds:
    label: 世界
    value: 没有配置任何世界
  layers:
    label: 图层
    value: 没有配置任何图层

InvocationTargetException when calling a pl3xmap event on a disabled plugin

Stacktrace
[05:43:06] [Server thread/INFO]: [HuskHomes] Disabling HuskHomes v4.5.5-092731a
[05:43:06] [Server thread/INFO]: [HuskHomes] Successfully disabled HuskHomes v4.5.5-092731a
[05:43:06] [Server thread/INFO]: [net.william278.huskhomes.libraries.hikari.HikariDataSource] HuskHomesHikariPool - Shutdown initiated...
[05:43:06] [Server thread/INFO]: [net.william278.huskhomes.libraries.hikari.HikariDataSource] HuskHomesHikariPool - Shutdown completed.
[05:43:06] [Server thread/INFO]: [Pl3xMap] Disabling Pl3xMap v1.20.4-479
[05:43:06] [Server thread/INFO]: [SIENA MAPA] [INFO] Servidor web interno parado
[05:43:06] [Server thread/WARN]: java.lang.reflect.InvocationTargetException
[05:43:06] [Server thread/WARN]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[05:43:06] [Server thread/WARN]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[05:43:06] [Server thread/WARN]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[05:43:06] [Server thread/WARN]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[05:43:06] [Server thread/WARN]: 	at Pl3xMap-1.20.4-479.jar//net.pl3x.map.core.event.RegisteredHandler.execute(RegisteredHandler.java:52)
[05:43:06] [Server thread/WARN]: 	at Pl3xMap-1.20.4-479.jar//net.pl3x.map.core.event.EventRegistry.callEvent(EventRegistry.java:37)
[05:43:06] [Server thread/WARN]: 	at Pl3xMap-1.20.4-479.jar//net.pl3x.map.core.registry.WorldRegistry.unregister(WorldRegistry.java:47)
[05:43:06] [Server thread/WARN]: 	at Pl3xMap-1.20.4-479.jar//net.pl3x.map.core.registry.WorldRegistry.unregister(WorldRegistry.java:33)
[05:43:06] [Server thread/WARN]: 	at java.base/java.util.concurrent.ConcurrentHashMap$KeySetView.forEach(ConcurrentHashMap.java:4706)
[05:43:06] [Server thread/WARN]: 	at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
[05:43:06] [Server thread/WARN]: 	at Pl3xMap-1.20.4-479.jar//net.pl3x.map.core.registry.Registry.unregister(Registry.java:59)
[05:43:06] [Server thread/WARN]: 	at Pl3xMap-1.20.4-479.jar//net.pl3x.map.core.Pl3xMap.disable(Pl3xMap.java:305)
[05:43:06] [Server thread/WARN]: 	at Pl3xMap-1.20.4-479.jar//net.pl3x.map.bukkit.Pl3xMapImpl.disable(Pl3xMapImpl.java:81)
[05:43:06] [Server thread/WARN]: 	at Pl3xMap-1.20.4-479.jar//net.pl3x.map.bukkit.Pl3xMapBukkit.onDisable(Pl3xMapBukkit.java:94)
[05:43:06] [Server thread/WARN]: 	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:283)
[05:43:06] [Server thread/WARN]: 	at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.disablePlugin(PaperPluginInstanceManager.java:225)
[05:43:06] [Server thread/WARN]: 	at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.disablePlugins(PaperPluginInstanceManager.java:149)
[05:43:06] [Server thread/WARN]: 	at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.disablePlugins(PaperPluginManagerImpl.java:92)
[05:43:06] [Server thread/WARN]: 	at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:528)
[05:43:06] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_20_R3.CraftServer.disablePlugins(CraftServer.java:582)
[05:43:06] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:986)
[05:43:06] [Server thread/WARN]: 	at net.minecraft.server.dedicated.DedicatedServer.t(DedicatedServer.java:861)
[05:43:06] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1288)
[05:43:06] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:323)
[05:43:06] [Server thread/WARN]: 	at java.base/java.lang.Thread.run(Thread.java:840)
[05:43:06] [Server thread/WARN]: Caused by: java.lang.IllegalStateException: zip file closed
[05:43:06] [Server thread/WARN]: 	at java.base/java.util.zip.ZipFile.ensureOpen(ZipFile.java:840)
[05:43:06] [Server thread/WARN]: 	at java.base/java.util.zip.ZipFile.getEntry(ZipFile.java:339)
[05:43:06] [Server thread/WARN]: 	at java.base/java.util.jar.JarFile.getEntry(JarFile.java:517)
[05:43:06] [Server thread/WARN]: 	at java.base/java.util.jar.JarFile.getJarEntry(JarFile.java:472)
[05:43:06] [Server thread/WARN]: 	at io.papermc.paper.plugin.entrypoint.classloader.PaperSimplePluginClassLoader.findClass(PaperSimplePluginClassLoader.java:62)
[05:43:06] [Server thread/WARN]: 	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
[05:43:06] [Server thread/WARN]: 	at io.papermc.paper.plugin.entrypoint.classloader.PaperPluginClassLoader.loadClass(PaperPluginClassLoader.java:114)
[05:43:06] [Server thread/WARN]: 	at io.papermc.paper.plugin.entrypoint.classloader.PaperPluginClassLoader.loadClass(PaperPluginClassLoader.java:103)
[05:43:06] [Server thread/WARN]: 	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
[05:43:06] [Server thread/WARN]: 	at HuskHomes-Paper-4.5.5-092731a.jar//net.william278.huskhomes.hook.Pl3xMapHook.onWorldUnloaded(Pl3xMapHook.java:166)
[05:43:06] [Server thread/WARN]: 	... 25 more

Error when running on Paper 1.20.4

When running the server on Paper 1.20.4, the plugin fails to initialize with the following error message:

[15:08:39 ERROR]: Error occurred while enabling Pl3xMap v1.20.2-475 (Is it up to date?)
java.lang.NoSuchMethodError: 'net.minecraft.core.IRegistryCustom$Dimension net.minecraft.server.MinecraftServer.aU()'
	at net.pl3x.map.bukkit.Pl3xMapImpl.loadBlocks(Pl3xMapImpl.java:173) ~[Pl3xMap-1.20.2-475.jar:?]
	at net.pl3x.map.core.Pl3xMap.enable(Pl3xMap.java:220) ~[Pl3xMap-1.20.2-475.jar:?]
	at net.pl3x.map.bukkit.Pl3xMapImpl.enable(Pl3xMapImpl.java:76) ~[Pl3xMap-1.20.2-475.jar:?]
	at net.pl3x.map.bukkit.Pl3xMapBukkit.onEnable(Pl3xMapBukkit.java:70) ~[Pl3xMap-1.20.2-475.jar:?]
	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
	at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:190) ~[paper-1.20.4.jar:git-Paper-338]
	at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.20.4.jar:git-Paper-338]
	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.craftbukkit.v1_20_R3.CraftServer.enablePlugin(CraftServer.java:637) ~[paper-1.20.4.jar:git-Paper-338]
	at org.bukkit.craftbukkit.v1_20_R3.CraftServer.enablePlugins(CraftServer.java:548) ~[paper-1.20.4.jar:git-Paper-338]
	at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:673) ~[paper-1.20.4.jar:git-Paper-338]
	at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:433) ~[paper-1.20.4.jar:git-Paper-338]
	at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.4.jar:git-Paper-338]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1132) ~[paper-1.20.4.jar:git-Paper-338]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:321) ~[paper-1.20.4.jar:git-Paper-338]
	at java.lang.Thread.run(Thread.java:840) ~[?:?]

Pl3xMapEnabledEvent gets called too early

I'm trying to load in markers on start with this event, but when the event is called. The WorldRegistry (Pl3xMap.api().getWorldRegistry()) is still empty. Meaning I can't make a layer and thus not register markers.

Main class;

@Override
public void onInitializeServer() {
	ServerLifecycleEvents.SERVER_STARTING.register(server -> {
		SERVER = server;
		Pl3xMap.api().getEventRegistry().register(new Pl3xMapStart());
	});
}

Event;

private static class Pl3xMapStart implements EventListener {
	@EventHandler
	public void onEnable(Pl3xMapEnabledEvent event) {
			// initialize manager
			MARKER_MANAGER.loadLodestones(); // this creates markers and tries to register them
		}
	}
}```

Networked disk writes can cause server TPS dips

I'm storing the web tiles on a Ceph cluster over the network, and it's mostly good, but every once in a while there's a delay when writing/renaming a file. Because these operations are run synchronously with the main thread, it can cause severe dips in the TPS while waiting for the file write.
I'm not sure if there's a clean way to decouple the IO operations from the main thread, but I would definitely appreciate it if that could be done.

Random lag spikes with Pl3xMap errors

My server usually runs well, and the online map does too.
However, randomly, I get some Pl3xMap errors and lag spikes.
Below is the link for the relevant portion of a log (from when the lag starts to when the lag ends).
2024-04-06.log

Pl3xMapEnabledEvent only running sometimes

No logs or errors to go along with it, why I'm coming here.
I'm using the following code, but it only seems to run 1/3 times.

Pl3xMap.api().getEventRegistry().register(new Pl3xMapStart());

@EventHandler public void onEnable(Pl3xMapEnabledEvent event) { }

Add support for FactionsUUID

I had to quit using Dynmap due to performance issues and switched to Pl3xMap. It's indeed a much better alternative; however, I'd love to see faction land on the web map.

This was possible with Dynmap & FactionsUUID, but Pl3xMap nor Pl3xMap-Claims have support for it.

I'm getting an OOM using this software. What's going on?

No, there is no memory leak.

Yes, Pl3xMap uses as much ram as it can. That's by design.

What you both are seeing is the server using more ram than the server has to give it. This is due to misconfigurations of the heap allocations on your part.

Let's take Temmy's example since it's got actual numbers I can point at. He has a server with 20GB of physical ram. He's telling the MC server it can use 18GB of that by setting 18432MB as his Xmx parameter in the startup script. This leaves little to no room for the OS to operate on or the JVM to breathe (the JVM comes with overhead).

Ok, so this is all fine and dandy, because he also told the JVM to start up with only 256MB of heap. this is will below the max limit, so it starts up and is fine. Until something starts needing more heap, then the JVM will grow that 256MB until it reaches the Xmx cap you set at 18GB. Except, the JVM's been crunching heavily on some numbers (in this case, Pl3xMap), so the JVM overhead is rather high. Very probably more than 2GB of overhead. And we still havent thought about the OS, or other programs running on the machine, etc etc. All of a sudden the server has run out of ram before it can even allocate all the heap space you told it it could have.

Boom. OOM.

See, look for yourself. The physical ram has run out, and the JVM has only allocated 16GB out of the 18GB it was allowed to grab.

image

You'll see the same OOM almost instantly if you were to follow Aikar's advice on his blog post about JVM flags where he states to make sure Xms is the same value as Xmx. This is important, not only for his flags to operate properly, but to ensure the heap can and does get everything you tell it it can get.

Another thing you can do is lessen the burden on the JVM/heap by lowering the amount of threads Pl3xMap can use (its in the config.yml file). This will result in Pl3xMap needing less ram at one time to do what it needs to do. Since ya'll look to have only 4 cores, I recommend lowering the thread count to 1 for Pl3xMap.

And yet another thing you could do to lessen the burden on your heap is to turn on both GC options in Pl3xMap's config file. This will make the GC run way more aggressively, cleaning out old, dead objects much faster that letting the JVM do it on it's own.

So yeah. TLDR; There's no memory leak. Do the 3 things I suggest and you should be fine.

Disabled dimensions automatically renders over time

Hi!

I disabled Nether and End dimensions to show on the map but over time renders queue both and execute a fullrender of them. Those dimensions are already pregenerated and are large (20K). How can I prevent it?

On the other hand, is there any option to set the render rate and to configure the render activators (player place/break a block...)

I'm using Pl3xMap-1.20.1-455 for Fabric.

Thanks!

@lordrius

[Fabric 1.20] Map state doesn't update unless a shutdown occurs

Hi.

First, thank you @granny for taking over the Pl3xMap repository and providing us a space to reach out for support. Thank you to @BillyGalbreath for Pl3xMap and all of the work you've done to provide the community with such a stellar plugin.

The issue I'm submitting today is related to the map state not updating unless a shutdown occurs. Changes to the map, the fog of war, or anything related to map state, does not update unless I perform a full shutdown. A simple reload, or save, does not allow the map to update.

Server: Fabric 1.20
OS: Windows 8.1
Java Version: 21 LTS
Tunnel: I am using a vLan to allow access to the server and the map, so it's currently not on the Internet--but checking the map directly from the server does not update either.

User status and location updates in real time.

I noticed nearly identical issues with another plugin, Fastback. You can read my issue for that plugin if it can provide any insights. Fastback performs incremental backups of user and map data. All user data is updated regularly, but map data does not update unless I perform a full shutdown.

Based on the fact that other plugins are mirroring this issue with map state, I imagine that this is related to an issue with how plugins, like Pl3xMap, access map data. I need to eliminate Pl3xMap as the cause before I reach out to Fabric. Therefore, I am hoping someone from this community can lead me to what exactly occurs when Pl3xMap wants to read map data.

Is this a Fabric API issue? Complication from another plugin? Is it something more intrinsic to Minecraft? Is there a setting somewhere that needs to be enabled to allow Pl3xMap access to map data in real time? Permissions issue maybe?

Here are the only relevant logs that I could find:

[15:52:36] [Server thread/INFO]: [Pl3xMap] [WARN] Registering unknown vanilla block minecraft:suspicious_gravel
[15:52:36] [Server thread/INFO]: [Pl3xMap] [WARN] Registering unknown vanilla block minecraft:pitcher_crop
[15:52:36] [Server thread/INFO]: [Pl3xMap] [WARN] Registering unknown vanilla block minecraft:sniffer_egg
[15:52:36] [Server thread/INFO]: [Pl3xMap] [WARN] Registering unknown vanilla block minecraft:calibrated_sculk_sensor
[15:52:36] [Server thread/INFO]: [Pl3xMap] [WARN] Registering unknown vanilla block minecraft:pitcher_plant
[15:52:38] [Server thread/INFO]: [Pl3xMap] [INFO] Internal webserver running on 0.0.0.0:8080
[15:52:38] [Server thread/INFO]: [Pl3xMap] [INFO] Platform: fabric
[15:52:38] [Server thread/INFO]: [Pl3xMap] [INFO] Version: 1.20-443
[15:52:38] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 4208ms or 84 ticks behind
[16:52:38] [pool-13-thread-12/INFO]: Starting auto-backup
[16:52:38] [pool-13-thread-12/INFO]: Preparing local backup snapshots/<hash>/2023-10-25_16-52-38
[16:52:39] [pool-13-thread-12/INFO]: Disabling world save for 'git add'
[16:52:39] [pool-13-thread-12/INFO]: Adding 5 new or modified files to index
[16:52:39] [pool-13-thread-12/INFO]: World save re-enabled.
[16:52:39] [pool-13-thread-12/INFO]: Local backup complete.

Thank you for any insight you can provide!

IP based map links unclickable in chat

Clickable IP map links are no longer clickable in chat after switching from version 469 to 473. Tested on Paper and without any other plugins. used same config settings for both versions.

Warning in Console about gettin Texture of Player

Everything works fine even with this warning, but its spamming the console.

[01:52:53 WARN]: javax.imageio.IIOException: Can't get input stream from URL!
[01:52:53 WARN]: at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1407)
[01:52:53 WARN]: at Pl3xMap-1.20.4-477.jar//net.pl3x.map.core.player.PlayerTexture.run(PlayerTexture.java:76)
[01:52:53 WARN]: Caused by: java.net.ConnectException: Connection timed out: connect
[01:52:53 WARN]: at java.base/sun.nio.ch.Net.connect0(Native Method)
[01:52:53 WARN]: at java.base/sun.nio.ch.Net.connect(Net.java:589)
[01:52:53 WARN]: at java.base/sun.nio.ch.Net.connect(Net.java:578)
[01:52:53 WARN]: at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583)
[01:52:53 WARN]: at java.base/java.net.Socket.connect(Socket.java:751)
[01:52:53 WARN]: at java.base/java.net.Socket.connect(Socket.java:686)
[01:52:53 WARN]: at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183)
[01:52:53 WARN]: at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531)
[01:52:53 WARN]: at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636)
[01:52:53 WARN]: at java.base/sun.net.www.http.HttpClient.(HttpClient.java:280)
[01:52:53 WARN]: at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:386)
[01:52:53 WARN]: at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:408)
[01:52:53 WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1304)
[01:52:53 WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1237)
[01:52:53 WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1123)
[01:52:53 WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1052)
[01:52:53 WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1675)
[01:52:53 WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1599)
[01:52:53 WARN]: at java.base/java.net.URL.openStream(URL.java:1325)
[01:52:53 WARN]: at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1405)
[01:52:53 WARN]: ... 1 more

MySQL support (multiserver)

Hi! I use two servers with the plugin, I don't think it's possible to link them? (With SQL)
Here's an example:

image

Below the overworld, put nether and end (which are on my other server).

Thanks !

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.