⬆ 设置服务器端的配置文件.

- 删除部分在服务器上不启用的mod配置.
This commit is contained in:
2026-01-20 02:53:55 +08:00
parent 1a09870818
commit 37cc83d37a
1519 changed files with 6379 additions and 2854 deletions

1192
pl3xmap/colors.yml Normal file

File diff suppressed because it is too large Load Diff

176
pl3xmap/config.yml Normal file
View File

@@ -0,0 +1,176 @@
settings:
# Extra logger/console output. (can be spammy)
debug-mode: false
# The language file to use from the locale folder.
language-file: lang-en.yml
# Set the web address players use to connect to your map. This
# is only used for the client mod to know where to connect.
web-address: http://localhost:25580
web-directory:
# The directory that houses the website and world tiles.
# This is a relative path from Pl3xMap's plugin directory,
# unless it starts with / in which case it will be treated
# as an absolute path.
path: web/
# Set to true if you don't want Pl3xMap to overwrite
# the website files on startup. (Good for servers that
# customize these files)
# Note: Be sure this is false when upgrading.
read-only: false
# The image format for tile images.
# Built in types: bmp, gif, jpg, jpeg, png
tile-format: png
# The quality for image tiles (0.0 - 1.0)
# 0.0 is low quality, high compression, small file size
# 1.0 is high quality, no compression, large file size
# Note: Not all image formats honor this setting.
tile-quality: 0.0
map:
zoom:
# Forces the map's zoom level to always be a multiple of this.
# By default, the zoom level snaps to the nearest integer; lower
# values (e.g. 0.5 or 0.1) allow for greater granularity. A
# value of 0 means the zoom level will not be snapped.
snap: 0.25
# Controls how much the map's zoom level will change after a zoom in,
# zoom out, pressing + or - on the keyboard, or using the zoom controls.
# Values smaller than 1 (e.g. 0.5) allow for greater granularity.
delta: 0.25
# How many scroll pixels (as reported by L.DomEvent.getWheelDelta) mean
# a change of one full zoom level. Smaller values will make wheel-zooming
# faster (and vice versa).
wheel: 120
internal-webserver:
# Enable the built-in web server.
# Disable this if you want to use a standalone web server
# such as apache or nginx.
enabled: true
# The interface the built-in web server should bind to.
# This is NOT always the same as your public facing IP.
# If you don't understand what this is,
# leave it set to 0.0.0.0
bind: 0.0.0.0
# The port the built-in web server listens to.
# Make sure the port is allocated if using Pterodactyl.
port: 25580
# Allows the built-in web server to follow symlinks.
# It is generally advised against enabling this,
# for security reasons. But you do you, boo boo.
follow-symlinks: false
performance:
live-update:
# Whether or not the real-time marker system should run.
enabled: true
# The number of process-threads to use for real-time marker updates on the map.
# Value of -1 will use 50% of the available cpu-threads. (recommended)
threads: -1
# The number of process-threads to use for loading and scanning chunks.
# Value of -1 will use 50% of the available cpu-threads. (recommended)
render-threads: -1
gc:
# Runs the JVM GC after a render job stops to free up memory immediately.
when-finished: true
# Runs the JVM GC aggressively while a render is running
# CAUTION: this _will_ slow down your renders!
when-running: false
world-settings:
default:
# Enables this world to be rendered on the map.
enabled: true
render:
# Renderers to use. Each renderer will render a different
# type of map. The built-in renderers include:
# vintage_story, basic, biomes, flowermap, inhabited, night, nether_roof, and vanilla
renderers:
vintage_story: overworld_basic
# World skylight value. This is used for the day/night cycle
# map (not yet implemented) .Values are clamped to 0-15
# with 0 being darkest and 15 being full bright.
skylight: 15
# Enables blending of biome grass/foliage/water colors similar to
# the client's biome blending option.
# Values are clamped to 0-7
biome-blend: 3
# Enable translucent fluids.
# This will make the fluids look fancier and translucent,
# so you can see the blocks below in shallow fluids.
translucent-fluids: true
# Enable translucent glass.
# This will make the glass look fancier and translucent,
# so you can see the blocks below.
translucent-glass: true
# Type of heightmap to render.
# NONE has no heightmap drawn.
# EVEN_ODD makes every other Y layer darker, like Dynmap.
# HIGH_CONTRAST same as MODERN, but darker.
# LOW_CONTRAST same as MODERN, but lighter.
# MODERN is a clearer, more detailed view.
# OLD_SCHOOL is the old type from v1.
# VANILLA matches the in-game vanilla maps.
# EVEN_ODD_HIGH_CONTRAST mix of EVEN_ODD and HIGH_CONTRAST.
# EVEN_ODD_LOW_CONTRAST mix of EVEN_ODD and LOW_CONTRAST.
# EVEN_ODD_MODERN mix of EVEN_ODD and MODERN.
# EVEN_ODD_OLD_SCHOOL mix of EVEN_ODD and OLD_SCHOOL.
# EVEN_ODD_VANILLA mix of EVEN_ODD and VANILLA.
heightmap-type: MODERN
# Visible areas of the world.
visible-areas:
- type: world-border
ui:
# The display name of the world in the world list.
# Use <world> to use the official world name.
display-name: <world>
# The order of the world in the world list
order: 0
# Shows the footer attributes
attribution: true
# The display position for the blockinfo box
blockinfo: bottomleft
# The display position for the coordinates box
coords: bottomcenter
# The display position for the link box
link: bottomright
center:
# The x coordinate for the map to load at.
# A value of -1 will default to world spawn.
x: -1
# The z coordinate for the map to load at.
# A value of -1 will default to world spawn.
z: -1
zoom:
# The default zoom when loading the map in browser.
# Normal sized tiles (1 pixel = 1 block) are
# always at zoom level 0.
default: 0
# The maximum zoom out you can do on the map.
# Each additional level requires a new set of tiles
# to be rendered, so don't go too wild here.
max-out: 3
# Extra zoom in layers will stretch the original
# tile images so you can zoom in further without
# the extra cost of rendering more tiles.
max-in: 2
minecraft:overworld:
enabled: true
render:
renderers:
vintage_story: overworld_basic
ui:
display-name: Overworld
order: 0
minecraft:the_nether:
render:
renderers:
basic: nether_basic
skylight: 0
ui:
display-name: The Nether
order: 1
minecraft:the_end:
render:
renderers:
basic: the_end_basic
skylight: 0
ui:
display-name: The End
order: 2

View File

@@ -0,0 +1,91 @@
settings:
# Show online players on the map and sidebar.
enabled: true
hide:
# Should invisible players be hidden from the map.
invisible: true
# Should spectators be hidden from the map.
spectators: true
layer:
# How often (in seconds) to update the marker.
update-interval: 0
# Whether to push this layer through SSE or not.
live-update: true
# Whether the players layer control shows up in the layers list or not.
show-controls: true
# Whether the players layer should be hidden (toggled off) by default.
default-hidden: false
# Priority order players layer shows up in the layers list.
# (lower values = higher in the list)
priority: 20
# Z-Index order players layer shows up in the map.
# (higher values are drawn on top of lower values)
z-index: 999
# The player icon.
# Icon must be in the web/images/icon/ directory.
icon: players
# Tooltip for player markers.
# Variables: uuid, name, decoratedName, health, armor
tooltip: |-
<ul>
<li><img src='images/skins/2D/<uuid>.png' class='head' alt='<name>' /></li>
<li>
<name>
<img src='images/clear.png' class='health' style='background-position:0 calc(-<health>px * 9);' alt='Health <health>' />
<img src='images/clear.png' class='armor' style='background-position:0 calc(-<armor>px * 9);' alt='Armor <armor>' />
</li>
</ul>
# The custom pane layer for the player tracker.
# This is used to make custom css styled tooltips.
# (see css setting below)
pane: nameplates
# Custom css for players marker layer.
# Class names use the pane name set above.
css: |-
div.leaflet-nameplates-pane div img.head {
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
-ms-interpolation-mode: nearest-neighbor;
}
div.leaflet-nameplates-pane div {
margin: 0;
padding: 0;
color: #ffffff;
font-weight: 700;
line-height: 1rem;
background: rgba(0, 0, 0, 0.5);
border-color: rgba(0, 0, 0, 0.75);
}
div.leaflet-nameplates-pane div ul {
padding: 3px;
}
div.leaflet-nameplates-pane div:before {
border-color: transparent;
}
div.leaflet-nameplates-pane div img.head {
vertical-align: middle;
width: 32px;
height: 32px;
border-radius: 5px;
border: 1px solid black;
}
div.leaflet-nameplates-pane div img.health {
margin-top: 3px;
}
div.leaflet-nameplates-pane div img.armor,
div.leaflet-nameplates-pane div img.health {
display: block;
width: 81px;
height: 9px;
background-position: 0 0;
}
div.leaflet-nameplates-pane div img.armor {
background: url('images/armor.png') no-repeat;
}
div.leaflet-nameplates-pane div img.health {
background: url('images/health.png') no-repeat;
}
div.leaflet-nameplates-pane div,
div.leaflet-marker-pane img {
transition: all 0.25s;
}

21
pl3xmap/layers/spawn.yml Normal file
View File

@@ -0,0 +1,21 @@
settings:
# Show spawn icon on the map.
enabled: true
layer:
# How often (in seconds) to update the marker.
update-interval: 30
# Whether to push this layer through SSE or not.
live-update: true
# Whether the spawn layer control shows up in the layers list or not.
show-controls: true
# Whether the spawn layer should be hidden (toggled off) by default.
default-hidden: false
# Priority order spawn layer shows up in the layers list.
# (lower values = higher in the list)
priority: 10
# Z-Index order spawn layer shows up in the map.
# (higher values are drawn on top of lower values)
z-index: 500
# The spawn icon.
# Icon must be in the web/images/icon/ directory.
icon: spawn

View File

@@ -0,0 +1,24 @@
settings:
# Shows vanilla world border on the map.
enabled: true
layer:
# How often (in seconds) to update the marker.
update-interval: 30
# Whether to push this layer through SSE or not.
live-update: true
# Whether the vanilla world border layer control shows up in the layers list or not.
show-controls: true
# Whether the vanilla world border layer should be hidden (toggled off) by default.
default-hidden: false
# Priority order vanilla world border layer shows up in the layers list.
# (lower values = higher in the list)
priority: 30
# Z-Index order vanilla world border layer shows up in the map.
# (higher values are drawn on top of lower values)
z-index: 500
style:
stroke:
# Stroke color (#AARRGGBB)
color: '#FFFF0000'
# Stroke weight (thickness)
weight: 3

139
pl3xmap/locale/lang-en.yml Normal file
View File

@@ -0,0 +1,139 @@
prefix:
command: '<grey>[<gradient:#C028FF:#5B00FF>Pl3xMap</gradient>]</grey> '
command:
base: View the map at '<grey><click:open_url:'<web-address>'><web-address></click></grey>'
event:
click-for-help: Click for help
click-to-confirm: Click to confirm
argument:
optional-player: Defaults to the executing player if unspecified (console must
specify a player)
optional-center: Defaults to (<white>0<gray>,</gray> 0</white>) if unspecified
optional-zoom: Map zoom level
required-renderer: Renderer is required
required-world: World is required
confirm:
description: Confirm a pending command
not-rendering: <red>Confirmation required. Confirm using <grey>/map confirm
success: <red>You don't have any pending confirmations
fullrender:
description: Fully render a world
starting: <green>Full render starting. Check <grey>/map status</grey> for more
info
no-region-files-found: <red>No region files found for <world>. Please either pregenerate
your world using <u><click:open_url:'https://modrinth.com/plugin/chunky'>Chunky</click></u>
or wait for the loaded chunks to save.
help:
description: Get help for Pl3xmap commands
argument:
query: Help Query
hide:
description: Hide a player from the map
already-hidden: <grey><player> <red>is already hidden from the map
success: <grey><player> <green>is now hidden from the map
pause:
description: Pause renderers
paused: <green>Renderers are now paused
already-paused: <grey>Renderers are already paused
resume:
description: Resume renderers
resumed: <green>Renderers have now resumed
already-resumed: <grey>Renderers have already resumed
radiusrender:
description: Render a section of a world
starting: <green>Radius render starting. Check <grey>/map status</grey> for more
info
reload:
description: Reloads the plugin
success: <green>Pl3xMap <grey>v<version></grey> reloaded
resetmap:
description: Cancel active render of a world
begin: <green>Map reset for <grey><world></grey> has begun
success: <green>Successfully reset map for <grey><world>
failed: <red>Could not reset map for <grey><world>
show:
description: Show a player on the map
not-hidden: <grey><player> <red>is not hidden from the map
success: <grey><player> <green>is no longer hidden from the map
status:
description: View the render status
stitch:
description: Stitches tiles into one image
missing-directory: <red>Unable to find tiles directory.
error-reading-directory: <red>There was a problem reading the tiles directory.
empty-directory: <red>There are no tiles to stitch.
starting: |-
<green>Started stitching <count> tiles..
<green><italic>(min: <min-x>,<min-z> max: <max-x>,<max-z> size: <size-x>,<size-z>)
finished: |-
<green>Finished stitching <count> tiles!
<green>You can find it at <grey>/tiles/<world>/stitched/<filename>
version:
description: Get version information
please-wait: <italic>Checking version, please wait...
still-checking: <italic>Still checking...
error:
not-array: '<red>Error: response not an array'
corrupt-json: '<red>Error: response is corrupt json'
unknown-version: '<red>Error: response has unknown version'
unable-to-determine: '<red>Error: Unable to determine latest build'
success: Pl3xMap v3 <version> (<italic><platform></italic>) git-<commit>
snapshot: <yellow><italic>You are running a snapshot
latest-build-is: <yellow><italic>Latest build is <build>
running-latest-build: <green><italic>You are running the latest build.
builds-behind: <yellow><italic>You are <number> builds behind.
download: '<yellow><italic>Download new build at: <gold><link>'
time-traveler: <yellow><italic>Are you a time traveler?
httpd:
started:
success: <green>Internal webserver running on <yellow><bind></yellow>:<yellow><port></yellow>
error: <red>Internal webserver could not start
stopped:
success: <green>Internal webserver stopped
error: <red>An error occurred with the internal webserver
disabled: <green>Internal webserver is disabled
progress:
eta:
unknown: Unknown
error:
must-specify-player: <red>You must specify the player
no-such-player: <red>No such player <grey><player>
must-specify-renderer: <red>You must specify the renderer
no-such-renderer: <red>No such renderer <grey><renderer>
must-specify-world: <red>You must specify the world
no-such-world: <red>No such world <grey><world>
world-disabled: <red>Pl3xMap is disabled for world <grey><world>
not-valid-zoom-level: <red>Not a valid zoom level
point-invalid-format: '''<point>'' is not a valid location. Required format is ''<x>
<z>'''
ui:
layer:
players: Players
spawn: Spawn
worldborder: World Border
title: Pl3xMap
block-and-biome-lang-file: en_us.json
blockinfo:
label: BlockInfo
value: <block><br /><biome>
unknown:
block: Unknown block
biome: Unknown biome
coords:
label: Coordinates
value: <x>, <y>, <z>
link:
label: Sharable Link
value: ''
markers:
label: Markers
value: No markers have been configured
players:
label: Players (<online>/<max>)
value: No players are currently online
worlds:
label: Worlds
value: No worlds have been configured
layers:
label: Layers
value: No layers have been configured

136
pl3xmap/locale/lang-pl.yml Normal file
View File

@@ -0,0 +1,136 @@
prefix:
command: '<grey>[<gradient:#C028FF:#5B00FF>Pl3xMap</gradient>]</grey> '
command:
base: Zobacz mapę na '<grey><click:open_url:'<web-address>'><web-address></click></grey>'
event:
click-for-help: Kliknij, aby uzyskać pomoc
click-to-confirm: Kliknij, aby potwierdzić
argument:
optional-player: Domyślnie dla wykonującego gracza, jeśli nieokreślony (konsola musi
określić gracza)
optional-center: Domyślnie dla (<white>0<gray>,</gray> 0</white>), jeśli nieokreślony
optional-zoom: Poziom przybliżenia mapy
required-renderer: Wymagany jest renderer
required-world: Wymagany jest świat
confirm:
description: Potwierdź oczekujące polecenie
not-rendering: <red>Wymagane potwierdzenie. Potwierdź za pomocą <grey>/map confirm
success: <red>Nie masz żadnych oczekujących potwierdzeń
fullrender:
description: W pełni renderuj świat
starting: <green>Rozpoczęcie pełnego renderowania. Sprawdź <grey>/map status</grey> dla
więcej informacji
help:
description: Uzyskaj pomoc dotyczącą poleceń Pl3xmap
argument:
query: Zapytanie o pomoc
hide:
description: Ukryj gracza na mapie
already-hidden: <grey><player> <red>jest już ukryty na mapie
success: <grey><player> <green>jest teraz ukryty na mapie
pause:
description: Wstrzymaj renderery
paused: <green>Renderery są teraz wstrzymane
already-paused: <grey>Renderery już są wstrzymane
resume:
description: Wznów renderery
resumed: <green>Renderery są teraz wznowione
already-resumed: <grey>Renderery już są wznowione
radiusrender:
description: Renderuj sekcję świata
starting: <green>Rozpoczęcie renderowania promienia. Sprawdź <grey>/map status</grey>
dla więcej informacji
reload:
description: Przeładuj wtyczkę
success: <green>Pl3xMap <grey>v<version></grey> został przeładowany
resetmap:
description: Anuluj aktywne renderowanie świata
begin: <green>Rozpoczęto resetowanie mapy dla <grey><world></grey>
success: <green>Pomyślnie zresetowano mapę dla <grey><world>
failed: <red>Nie można zresetować mapy dla <grey><world>
show:
description: Pokaż gracza na mapie
not-hidden: <grey><player> <red>nie jest ukryty na mapie
success: <grey><player> <green>nie jest już ukryty na mapie
status:
description: Wyświetl status renderowania
stitch:
description: Połącz kafelki w jedno zdjęcie
missing-directory: <red>Nie można znaleźć katalogu z kafelkami.
error-reading-directory: <red>Wystąpił problem podczas odczytu katalogu z kafelkami.
empty-directory: <red>Brak kafelków do połączenia.
starting: |-
<green>Rozpoczęcie łączenia <count> kafelków..
<green><italic>(min: <min-x>,<min-z> max: <max-x>,<max-z> rozmiar: <size-x>,<size-z>)
finished: |-
<green>Zakończono łączenie <count> kafelków!
<green>Znajdziesz je tutaj: <grey>/tiles/<world>/stitched/<filename>
version:
description: Uzyskaj informacje o wersji
please-wait: <italic>Sprawdzanie wersji, proszę czekać...
still-checking: <italic>Wersja wciąż jest sprawdzana...
error:
not-array: '<red>Błąd: odpowiedź nie jest tablicą'
corrupt-json: '<red>Błąd: odpowiedź to uszkodzony JSON'
unknown-version: '<red>Błąd: odpowiedź zawiera nieznany numer wersji'
unable-to-determine: '<red>Błąd: Nie można określić najnowszej kompilacji'
success: Pl3xMap v3 <version> (<italic><platform></italic>) git-<commit>
snapshot: <yellow><italic>Uruchamiasz wersję testową
latest-build-is: <yellow><italic>Najnowsza kompilacja to <build>
running-latest-build: <green><italic>Uruchamiasz najnowszą kompilację.
builds-behind: <yellow><italic>Jesteś <number> kompilacji za aktualną wersją.
download: '<yellow><italic>Pobierz nową kompilację tutaj: <gold><link>'
time-traveler: <yellow><italic>Jesteś podróżnikiem w czasie?
httpd:
started:
success: <green>Wewnętrzny serwer WWW działa na <yellow><bind></yellow>:<yellow><port></yellow>
error: <red>Wewnętrzny serwer WWW nie mógł wystartować
stopped:
success: <green>Wewnętrzny serwer WWW zatrzymany
error: <red>Wystąpił błąd z wewnętrznym serwerem WWW
disabled: <green>Wewnętrzny serwer WWW jest wyłączony
progress:
eta:
unknown: Nieznane
error:
must-specify-player: <red>Musisz określić gracza
no-such-player: <red>Gracz <grey><player> <red> nie istnieje
must-specify-renderer: <red>Musisz określić renderer
no-such-renderer: <red>Renderer <grey><renderer> <red>nie istnieje
must-specify-world: <red>Musisz określić świat
no-such-world: <red>Świat <grey><world> <red>nie istnieje
world-disabled: <red>Pl3xMap jest wyłączony dla świata <grey><world>
not-valid-zoom-level: <red>Nieprawidłowy poziom przybliżenia
point-invalid-format: '''<point>'' nie jest prawidłową lokalizacją. Wymagany format to ''<x>
<z>'''
ui:
layer:
players: Gracze
spawn: Spawn
worldborder: Granica świata
title: Pl3xMap
block-and-biome-lang-file: pl_pl.json # webmap/public/lang/
blockinfo:
label: BlockInfo
value: <block><br /><biome>
unknown:
block: Nieznany blok
biome: Nieznany biom
coords:
label: Współrzędne
value: <x>, <y>, <z>
link:
label: Udostępnialny link
value: ''
markers:
label: Znaczniki
value: Nie skonfigurowano żadnych znaczników
players:
label: Gracze (<online>/<max>)
value: Obecnie nie ma żadnych graczy online
worlds:
label: Światy
value: Nie skonfigurowano żadnych światów
layers:
label: Warstwy
value: Nie skonfigurowano żadnych warstw

BIN
pl3xmap/web/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
pl3xmap/web/images/og.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

54
pl3xmap/web/index.html Normal file
View File

@@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<!-- disable darkreader browser extension on this site -->
<meta name="darkreader-lock"/>
<!-- title set in language file -->
<title></title>
<meta name="description" content="Pl3xMap is a minimalistic and lightweight world map viewer for Minecraft servers using the vanilla Minecraft rendering style"/>
<meta name="keywords" content="Minecraft, Mod, Plugin, Map, Pl3x, Pl3xMap, Dynamic, Live, LiveMap, BlueMap, Dynmap, SquareMap, Bukkit, BukkitMC, Spigot, SpigotMC, Paper, PaperMC, Purpur, PurpurMC, Fabric, FabricMC, Forge, ForgeMC, Quilt, QuiltMC"/>
<!-- facebook meta tags -->
<meta property="og:url" content="https://modrinth.com/plugin/pl3xmap"/>
<meta property="og:type" content="website"/>
<meta property="og:title" content="Pl3xMap"/>
<meta property="og:description" content="Pl3xMap is a minimalistic and lightweight world map viewer for Minecraft servers using the vanilla Minecraft rendering style"/>
<meta property="og:image" content="https://raw.githubusercontent.com/granny/Pl3xMap/v3/webmap/public/images/og.png"/>
<!-- twitter meta tags -->
<meta name="twitter:card" content="summary_large_image"/>
<meta property="twitter:domain" content="modrinth.com/plugin/pl3xmap"/>
<meta property="twitter:url" content="https://modrinth.com/plugin/pl3xmap"/>
<meta name="twitter:title" content="Pl3xMap"/>
<meta name="twitter:description" content="Pl3xMap is a minimalistic and lightweight world map viewer for Minecraft servers using the vanilla Minecraft rendering style"/>
<meta name="twitter:image" content="https://raw.githubusercontent.com/granny/Pl3xMap/v3/webmap/public/images/og.png"/>
<!-- browser support -->
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/>
<meta name="theme-color" content="#222222"/>
<!-- favicon -->
<link rel="shortcut icon" href="favicon.ico" sizes="16x16 32x32 48x48" crossOrigin="anonymous"/>
<!-- modern-normalize -->
<link rel="stylesheet" href="modern-normalize.css">
<!-- leaflet -->
<link rel="stylesheet" href="leaflet.css"/>
<script src="leaflet.js"></script>
<!-- pl3xmap -->
<link rel="stylesheet" href="styles.css" type="text/css"/>
<script src="pl3xmap.js"></script>
</head>
<body>
<div id="map" class="map"></div>
</body>
</html>

1123
pl3xmap/web/lang/en_pt.json Normal file

File diff suppressed because it is too large Load Diff

1122
pl3xmap/web/lang/en_us.json Normal file

File diff suppressed because it is too large Load Diff

1778
pl3xmap/web/lang/pl_pl.json Normal file

File diff suppressed because it is too large Load Diff

1
pl3xmap/web/leaflet.css Normal file

File diff suppressed because one or more lines are too long

1
pl3xmap/web/leaflet.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
/* modern-normalize 1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */progress,sub,sup{vertical-align:baseline}*,::after,::before{box-sizing:border-box}html{-moz-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:ButtonText dotted 1px}:-moz-ui-invalid{box-shadow:none}legend{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}

2
pl3xmap/web/pl3xmap.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

489
pl3xmap/web/styles.css Normal file
View File

@@ -0,0 +1,489 @@
.menu input + label, button, .leaflet-control-button, #sidebar #sidebar__buttons button, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle,
.leaflet-control-layers .leaflet-control-layers-toggle, .leaflet-bar a,
.leaflet-touch .leaflet-bar a {
display: inline-block;
appearance: none;
box-shadow: var(--ui-box-shadow);
white-space: nowrap;
background-color: var(--ui-background);
color: var(--ui-text);
border-radius: var(--ui-border-radius);
border: var(--ui-border);
background-clip: padding-box;
position: relative;
padding: 0.5rem;
line-height: 2rem;
cursor: pointer;
transition: 0.2s all ease-in;
}
.menu input + label > a:only-child, button > a:only-child, .leaflet-control-button > a:only-child, #sidebar #sidebar__buttons button > a:only-child, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle > a:only-child,
.leaflet-control-layers .leaflet-control-layers-toggle > a:only-child, .leaflet-bar a > a:only-child {
display: block;
width: 100%;
height: 100%;
}
.menu input + label > img:only-child, button > img:only-child, .leaflet-control-button > img:only-child, #sidebar #sidebar__buttons button > img:only-child, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle > img:only-child,
.leaflet-control-layers .leaflet-control-layers-toggle > img:only-child, .leaflet-bar a > img:only-child,
.menu input + label > svg:only-child,
button > svg:only-child,
.leaflet-control-button > svg:only-child,
#sidebar #sidebar__buttons button > svg:only-child,
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle > svg:only-child,
.leaflet-control-layers .leaflet-control-layers-toggle > svg:only-child,
.leaflet-bar a > svg:only-child {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: calc(100% - 1.6rem);
height: calc(100% - 1.6rem);
pointer-events: none;
}
.menu input + label:visited, button:visited, .leaflet-control-button:visited, #sidebar #sidebar__buttons button:visited, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:visited,
.leaflet-control-layers .leaflet-control-layers-toggle:visited, .leaflet-bar a:visited, .menu input + label:link, button:link, .leaflet-control-button:link, #sidebar #sidebar__buttons button:link, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:link,
.leaflet-control-layers .leaflet-control-layers-toggle:link, .leaflet-bar a:link {
color: var(--ui-text);
}
.menu input + label:hover, button:hover, .leaflet-control-button:hover, #sidebar #sidebar__buttons button:hover, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:hover,
.leaflet-control-layers .leaflet-control-layers-toggle:hover, .leaflet-bar a:hover {
background-color: var(--ui-background-hover);
color: var(--ui-text-hover);
}
.menu input + label:focus, button:focus, .leaflet-control-button:focus, #sidebar #sidebar__buttons button:focus, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:focus,
.leaflet-control-layers .leaflet-control-layers-toggle:focus, .leaflet-bar a:focus {
outline: var(--ui-outline);
}
.menu input + label:focus:not(:focus-visible), button:focus:not(:focus-visible), .leaflet-control-button:focus:not(:focus-visible), #sidebar #sidebar__buttons button:focus:not(:focus-visible),
.leaflet-control-layers .leaflet-control-layers-toggle:focus:not(:focus-visible), .leaflet-bar a:focus:not(:focus-visible) {
outline-style: none;
}
.menu input + label:active, button:active, .leaflet-control-button:active, #sidebar #sidebar__buttons button:active, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:active,
.leaflet-control-layers .leaflet-control-layers-toggle:active, .leaflet-bar a:active {
background-color: var(--ui-background-active);
color: var(--ui-text-active);
}
.menu input + label[disabled], button[disabled], [disabled].leaflet-control-button, #sidebar #sidebar__buttons button[disabled], .leaflet-touch .leaflet-control-layers [disabled].leaflet-control-layers-toggle,
.leaflet-control-layers [disabled].leaflet-control-layers-toggle, .leaflet-bar a[disabled], .menu input + label.leaflet-disabled, button.leaflet-disabled, .leaflet-disabled.leaflet-control-button, #sidebar #sidebar__buttons button.leaflet-disabled, .leaflet-touch .leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle,
.leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle, .leaflet-bar a.leaflet-disabled {
background-color: var(--ui-background-disabled);
color: var(--ui-text-disabled);
cursor: not-allowed;
}
.menu input + label[disabled]:hover, button[disabled]:hover, [disabled].leaflet-control-button:hover, #sidebar #sidebar__buttons button[disabled]:hover,
.leaflet-control-layers [disabled].leaflet-control-layers-toggle:hover, .leaflet-bar a[disabled]:hover, .menu input + label[disabled]:active, button[disabled]:active, [disabled].leaflet-control-button:active, #sidebar #sidebar__buttons button[disabled]:active,
.leaflet-control-layers [disabled].leaflet-control-layers-toggle:active, .leaflet-bar a[disabled]:active, .menu input + label[disabled]:focus, button[disabled]:focus, [disabled].leaflet-control-button:focus, #sidebar #sidebar__buttons button[disabled]:focus,
.leaflet-control-layers [disabled].leaflet-control-layers-toggle:focus, .leaflet-bar a[disabled]:focus, .menu input + label.leaflet-disabled:hover, button.leaflet-disabled:hover, .leaflet-disabled.leaflet-control-button:hover, #sidebar #sidebar__buttons button.leaflet-disabled:hover,
.leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle:hover, .leaflet-bar a.leaflet-disabled:hover, .menu input + label.leaflet-disabled:active, button.leaflet-disabled:active, .leaflet-disabled.leaflet-control-button:active, #sidebar #sidebar__buttons button.leaflet-disabled:active,
.leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle:active, .leaflet-bar a.leaflet-disabled:active, .menu input + label.leaflet-disabled:focus, button.leaflet-disabled:focus, .leaflet-disabled.leaflet-control-button:focus, #sidebar #sidebar__buttons button.leaflet-disabled:focus,
.leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle:focus, .leaflet-bar a.leaflet-disabled:focus {
background-color: var(--ui-background-disabled);
color: var(--ui-text-disabled);
}
.menu input + label[aria-pressed=true], button[aria-pressed=true], [aria-pressed=true].leaflet-control-button, #sidebar #sidebar__buttons button[aria-pressed=true], .leaflet-touch .leaflet-control-layers [aria-pressed=true].leaflet-control-layers-toggle,
.leaflet-control-layers [aria-pressed=true].leaflet-control-layers-toggle, .leaflet-bar a[aria-pressed=true], .menu input + label[aria-expanded=true], button[aria-expanded=true], [aria-expanded=true].leaflet-control-button, #sidebar #sidebar__buttons button[aria-expanded=true], .leaflet-touch .leaflet-control-layers [aria-expanded=true].leaflet-control-layers-toggle,
.leaflet-control-layers [aria-expanded=true].leaflet-control-layers-toggle, .leaflet-bar a[aria-expanded=true] {
background-color: var(--ui-background-selected);
color: var(--ui-text-selected);
font-weight: bold;
}
.leaflet-control-button, #sidebar #sidebar__buttons button, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle,
.leaflet-control-layers .leaflet-control-layers-toggle, .leaflet-bar a,
.leaflet-touch .leaflet-bar a {
height: var(--ui-button-size);
width: var(--ui-button-size);
line-height: calc(var(--ui-button-size) - 1.2rem);
}
.leaflet-control-panel, #sidebar #sidebar__content, .leaflet-touch .leaflet-control-layers.leaflet-control-layers-expanded .leaflet-control-layers-list,
.leaflet-control-layers.leaflet-control-layers-expanded .leaflet-control-layers-list {
background-color: var(--ui-background);
color: var(--ui-text);
border-radius: var(--ui-border-radius);
border: var(--ui-border);
padding: 0.2rem 0.5rem;
}
/* Overrides for leaflet styles */
/* Use CSS grid for control containers to avoid dealing with margins between controls */
.leaflet-control-container {
font-size: 1.6rem;
width: 100vw;
height: 100vh;
padding: var(--ui-element-spacing);
display: grid;
grid-auto-rows: 1fr;
pointer-events: none;
}
.leaflet-control-container-top,
.leaflet-control-container-bottom {
display: grid;
grid-gap: inherit;
grid-auto-flow: column;
grid-auto-columns: minmax(0, 1fr);
align-items: flex-start;
position: relative;
z-index: 1002;
}
.leaflet-control-container-bottom {
align-items: flex-end;
z-index: 1001;
}
.leaflet-top, .leaflet-left,
.leaflet-bottom, .leaflet-right {
position: static;
display: grid;
grid-auto-flow: row;
grid-gap: var(--ui-element-spacing);
justify-content: flex-start;
pointer-events: auto;
}
.leaflet-top .leaflet-control, .leaflet-left .leaflet-control,
.leaflet-bottom .leaflet-control, .leaflet-right .leaflet-control {
margin: 0;
}
.leaflet-bottom {
align-content: flex-end;
}
.leaflet-center {
justify-content: center;
}
.leaflet-right {
justify-content: flex-end;
}
.leaflet-right .leaflet-control {
margin-left: auto;
margin-right: 0;
}
/* Use Pl3xmap styling for default leaflet controls */
.leaflet-control-attribution {
font-size: 1.1rem;
border-radius: 3px;
}
.leaflet-control-attribution a,
.leaflet-control-attribution a:visited,
.leaflet-control-attribution a:active,
.leaflet-control-attribution a:hover {
color: black;
text-decoration: none;
}
.leaflet-popup,
.leaflet-tooltip {
font-size: 12px;
}
.leaflet-bar,
.leaflet-touch .leaflet-bar {
border-radius: 0;
border: none;
}
.leaflet-bar a,
.leaflet-touch .leaflet-bar a {
display: block;
border: var(--ui-border);
border-top: none;
border-radius: 0;
}
.leaflet-bar a:first-child,
.leaflet-touch .leaflet-bar a:first-child {
border-radius: var(--ui-border-radius) var(--ui-border-radius) 0 0;
border-top: var(--ui-border);
}
.leaflet-bar a:last-child,
.leaflet-touch .leaflet-bar a:last-child {
border-radius: 0 0 var(--ui-border-radius) var(--ui-border-radius);
}
.leaflet-touch .leaflet-control-layers,
.leaflet-control-layers {
background: none;
border: none;
border-radius: 0;
position: relative;
}
.leaflet-touch .leaflet-control-layers.leaflet-control-layers-expanded,
.leaflet-control-layers.leaflet-control-layers-expanded {
padding: 0;
}
.leaflet-touch .leaflet-control-layers.leaflet-control-layers-expanded .leaflet-control-layers-list,
.leaflet-control-layers.leaflet-control-layers-expanded .leaflet-control-layers-list {
position: absolute;
left: 100%;
top: 0;
margin-left: var(--ui-element-spacing);
width: max-content;
max-width: 30rem;
}
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle,
.leaflet-control-layers .leaflet-control-layers-toggle {
border-radius: var(--ui-border-radius);
border: var(--ui-border);
background-image: none;
}
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-separator,
.leaflet-control-layers .leaflet-control-layers-separator {
margin: 0.5rem 0;
border: var(--ui-border);
}
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-selector,
.leaflet-control-layers .leaflet-control-layers-selector {
position: static;
margin: 0;
font-size: inherit;
display: flex;
align-items: center;
border-radius: var(--ui-border-radius);
}
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-selector span,
.leaflet-control-layers .leaflet-control-layers-selector span {
margin-left: 0.5rem;
}
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-selector + .leaflet-control-layers-selector,
.leaflet-control-layers .leaflet-control-layers-selector + .leaflet-control-layers-selector {
margin-top: 0.5rem;
}
#sidebar {
position: relative;
transition: 0.2s transform ease-in;
transform: none;
}
#sidebar.sidebar--expanded {
--transform: calc(-1 * var(--ui-sidebar-width));
transform: translateX(var(--transform));
}
#sidebar #sidebar__buttons {
display: grid;
grid-gap: var(--ui-element-spacing);
}
#sidebar #sidebar__content {
padding: 1rem 1.5rem;
border-radius: 0;
position: absolute;
top: calc(-1 * var(--ui-element-spacing));
left: calc(var(--ui-button-size) + var(--ui-element-spacing));
height: 100vh;
width: var(--ui-sidebar-width);
transition: 0.5s transform ease-in;
overflow-y: auto;
}
#sidebar #sidebar__content h2 {
margin-top: 0;
}
:root {
color-scheme: dark;
--ui-font: "Helvetica Neue", Arial, Helvetica, sans-serif;
--ui-button-size: 5rem;
--ui-element-spacing: 1rem;
--ui-border-radius: 0.4rem;
--ui-border: 1px solid #777777;
--ui-text-shadow: none;
--ui-outline: solid #ffffff 0.3rem;
--ui-background: rgba(255, 255, 255, 0.9);
--ui-background-disabled: #555555;
--ui-background-hover: #aaaaaa;
--ui-background-active: #888888;
--ui-background-selected: #222222;
--ui-text: #222222;
--ui-text-hover: var(--ui-text);
--ui-text-active: var(--ui-text);
--ui-text-selected: rgba(255, 255, 255, 0.8);
--ui-text-disabled: #777777;
--ui-sidebar-width: 25rem;
}
@media (prefers-color-scheme: dark) {
:root {
--ui-border: 1px solid #333333;
--ui-background: #222222;
--ui-background-disabled: #555555;
--ui-background-hover: #363636;
--ui-background-active: #6d6d6d;
--ui-background-selected: #BDBDBD;
--ui-text: rgba(255, 255, 255, 0.7);
--ui-text-hover: var(--ui-text);
--ui-text-active: var(--ui-text);
--ui-text-selected: #222222;
--ui-text-disabled: rgba(255, 255, 255, 0.5);
}
}
html {
font-size: 62.5%;
}
body {
font-size: 1.6rem;
}
html, body {
margin: 0;
padding: 0;
background: #000000;
overflow: hidden;
text-shadow: var(--ui-text-shadow);
font-family: var(--ui-font);
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
}
:focus {
outline: var(--ui-outline);
}
:focus:not(:focus-visible) {
outline-style: none;
}
h2 {
font-size: 2.8rem;
line-height: 3.4rem;
}
h3 {
font-size: 2rem;
line-height: 2.8rem;
margin-bottom: 0.5rem;
}
ul, li {
list-style-type: none;
display: inline-block;
margin: 0;
padding: 0;
vertical-align: middle;
}
label:focus-within {
outline: var(--ui-outline);
}
label:focus-within > input:focus {
outline: none;
}
fieldset {
appearance: none;
border: none;
padding: 0;
margin: 0;
}
.svg-icon {
fill: currentColor;
stroke: none;
}
.map {
width: 100%;
height: 100vh;
background: black;
cursor: default;
}
img.leaflet-tile {
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
-ms-interpolation-mode: nearest-neighbor;
}
.leaflet-control-panel {
height: var(--ui-button-size);
}
.leaflet-control-link {
background-size: 20px 20px;
background-repeat: no-repeat;
background-position: 50% 50%;
}
.leaflet-control-coordinates {
text-align: center;
min-width: 20rem;
font-family: monospace;
white-space: pre;
letter-spacing: 0.2rem;
font-size: 1.8rem;
}
.leaflet-control-coordinates:before {
display: block;
content: attr(data-label);
font-size: 1.2rem;
letter-spacing: 0;
}
.leaflet-control-blockinfo {
font-family: monospace;
text-align: left;
white-space: pre;
background-size: 20px 20px;
background-repeat: no-repeat;
background-position: 50% 50%;
}
.leaflet-marker-icon {
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
-ms-interpolation-mode: nearest-neighbor;
}
.menu {
display: flex;
flex-direction: column;
}
.menu input {
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
width: 1px;
position: absolute;
}
.menu input + label {
margin-bottom: 0.5rem;
cursor: pointer;
padding: 0.8rem;
}
.menu input:checked + label {
background-color: var(--ui-background-selected);
color: var(--ui-text-selected);
font-weight: bold;
}
.menu input:focus + label {
outline: var(--ui-outline);
}
.menu input:focus:not(:focus-visible) + label {
outline: none;
}
.menu input.players + label {
background-repeat: no-repeat;
background-size: 32px 32px;
background-position: 4px center;
padding-left: 40px;
}
.menu input.renderer + label {
margin: 0 4px 0 0;
padding: 0;
width: 34px;
height: 34px;
background-size: 100%;
}
.menu input.renderer:checked + label {
border-color: #000000;
}
/*# sourceMappingURL=styles.css.map*/

File diff suppressed because one or more lines are too long

BIN
pl3xmap/web/tiles/blocks.gz Normal file

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More