Compare commits

...

115 Commits

Author SHA1 Message Date
733c2d7d26 Merge pull request 'suggestion-81' (#44) from suggestion-81 into develop
All checks were successful
/ build-docker (push) Successful in 11m6s
Reviewed-on: #44
Reviewed-by: oznobys <oznobys@noreply.localhost>
2025-08-21 14:35:09 +00:00
70056502dd
add plguin to ajust server render distance to clients' settings 2025-08-20 22:56:54 +03:00
5ae76be931
add xp obrs merging plugin 2025-08-20 22:55:55 +03:00
89b3cfe154
reduce view- and simulation distance to improve performance 2025-08-20 22:49:20 +03:00
ace4d01f1d
disable performance hungry anti-xray obfuscations
this allows cheaters to find chests and other entity-blocks but improves performance

https://github.com/Imprex-Development/Orebfuscator/wiki/Frequently-Asked-Questions#what-is-the-proximity-hider
2025-08-20 19:40:46 +03:00
d054a0d26a
optimize java GC startup flags according to https://github.com/Obydux/Minecraft-startup-flags.git to improve memory performace 2025-08-20 19:33:01 +03:00
11ae707a99 Merge pull request 'release-1.0.0' (#43) from develop into main
All checks were successful
/ build-docker (push) Successful in 19m16s
Reviewed-on: #43
2025-08-14 17:24:10 +00:00
32e0d8949e
rename docker image tag and add on tag push build condition to github action
Some checks failed
/ build-docker (push) Has been cancelled
2025-08-14 20:22:48 +03:00
06d0824f67 Merge pull request 'feature-23-imageframe-permissions' (#42) from feature-23 into develop
All checks were successful
/ build-docker (push) Successful in 11m15s
Reviewed-on: #42
2025-08-13 17:33:20 +00:00
e6247a2414
configure ImageFrame permissions 2025-08-13 20:32:15 +03:00
bd10980524 Merge pull request 'feature-42-image-size-optimization-and-uid-gid-selection' (#41) from feature-42 into develop
All checks were successful
/ build-docker (push) Successful in 11m27s
Reviewed-on: #41
2025-08-12 19:34:05 +00:00
260bdd7277
add uid/gid selection to run application as in Dockerfile 2025-08-12 19:11:19 +03:00
20f39cf22e
rearranged Dockerfile statements and add remove cache after locale installation 2025-08-12 18:41:29 +03:00
cae7ab9022 Merge pull request 'feature-55-bmm-permissions-and-limits' (#40) from feature-55 into develop
All checks were successful
/ build-docker (push) Successful in 10m27s
Reviewed-on: #40
2025-08-10 17:48:05 +00:00
c0cad02e1f
configure bmmarker sets and markers amount and permissions 2025-08-10 20:42:50 +03:00
cd1b05b42b Merge pull request 'feature-23-track-rename' (#39) from feature-23 into develop
All checks were successful
/ build-docker (push) Successful in 10m45s
Reviewed-on: #39
2025-08-10 16:56:07 +00:00
207521b638
rename track "staff" to "roles" 2025-08-07 00:23:27 +03:00
d240a44602 Merge pull request 'feature-32-change-DiscordSRV-storage-backend' (#38) from feature-32 into develop
All checks were successful
/ build-docker (push) Successful in 12m52s
Reviewed-on: #38
Reviewed-by: oznobys <oznobys@noreply.localhost>
2025-08-06 19:58:18 +00:00
66681a9bf1
change DiscordSRV storage backend from file to database 2025-08-06 22:55:28 +03:00
78f3df715b Merge pull request 'feature-42-fix-unicode' (#37) from feature-42 into develop
All checks were successful
/ build-docker (push) Successful in 12m55s
Reviewed-on: #37
2025-08-06 18:57:29 +00:00
314bd15a51
add unicode locale generation to Dockerfile
before the change, unicode characters were displayed in console as question marks
2025-08-06 21:55:19 +03:00
94cc77340a Merge pull request 'feature-27-database-and-duration-permission-fix' (#35) from feature-27 into develop
All checks were successful
/ build-docker (push) Successful in 7m2s
Reviewed-on: #35
Reviewed-by: oznobys <oznobys@noreply.localhost>
2025-08-04 15:28:40 +00:00
f47a370c7a Merge pull request 'feature-23-command-whitelist' (#36) from feature-23 into develop
Some checks failed
/ build-docker (push) Has been cancelled
Reviewed-on: #36
Reviewed-by: oznobys <oznobys@noreply.localhost>
2025-08-04 15:24:05 +00:00
fb6a0c0602 Merge branch 'develop' into feature-23 2025-08-04 15:12:02 +00:00
7b6b6a2b4d Merge pull request 'feature-32-fix-discord-role-authorization' (#34) from feature-32 into develop
All checks were successful
/ build-docker (push) Successful in 6m37s
Reviewed-on: #34
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-08-04 08:55:19 +00:00
067f2c4a6a
change DiscordSRV subscribe role kick message 2025-08-04 11:54:18 +03:00
6ae358a2ac
add and configure CommandWhitelist
allows to forbid certain command execution and hide their completion
2025-08-03 22:58:00 +03:00
f93a2208fd
disable prefix in LibertyBans messages 2025-08-03 22:55:01 +03:00
7da0770b58
disable mute commands in CarbonChat
before the change, CarbonChat mute command overrided LibertyBans mute command, player could not execute it
2025-08-03 13:10:26 +03:00
266e1b6a22
enable duration permissions in LibertyBans 2025-08-03 13:07:25 +03:00
7741c86fc7
add website link to ban description in russian localization 2025-08-03 13:06:16 +03:00
2b7054c519
fix database strings substitution
before the change file database was used although mariadb was supposed to be used
2025-08-03 10:50:37 +03:00
00e84cf168 Обновление ID каналов и проработка аунтефикации 2025-08-03 10:07:12 +03:00
17b3fc2590 Merge pull request 'feature-32-DiscordSRV' (#33) from feature-32 into develop
All checks were successful
/ build-docker (push) Successful in 11m27s
Reviewed-on: #33
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-31 17:58:10 +00:00
260d6d55d9 feature-32-DiscordSRV 2025-07-31 19:51:33 +03:00
f7f078580f Merge pull request 'feature-23-fix-luckperms-server-name' (#32) from feature-23 into develop
All checks were successful
/ build-docker (push) Successful in 7m58s
Reviewed-on: #32
2025-07-31 12:26:42 +00:00
eefbd02291
fix: change LuckPerms server name from lobby to survival 2025-07-31 15:25:02 +03:00
dd989b0ad6
Merge branch 'develop' into feature-23 2025-07-31 15:24:31 +03:00
7c36f42e08 Merge pull request 'feature-24-chat-whisper-formatting' (#31) from carbonchat-config into develop
All checks were successful
/ build-docker (push) Successful in 7m13s
Reviewed-on: #31
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-30 17:09:25 +00:00
2217532da3 whisper config 2025-07-30 20:02:50 +03:00
24b85ba095 Merge pull request 'chat-role-clan-tags' (#30) from carbonchat-config into develop
All checks were successful
/ build-docker (push) Successful in 7m24s
Reviewed-on: #30
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-28 21:51:51 +00:00
dfb2d46036 add tags for chat 2025-07-29 00:49:16 +03:00
d5dbcac5fb Merge pull request 'chunky' (#29) from chunky into develop
Some checks failed
/ build-docker (push) Has been cancelled
Reviewed-on: #29
2025-07-28 21:47:37 +00:00
dedfcf542f
add Chunky symlinking to Dockerfile 2025-07-29 00:46:27 +03:00
9e9b3d2bef Merge pull request 'chunky' (#28) from chunky into develop
Some checks failed
/ build-docker (push) Failing after 3m59s
Reviewed-on: #28
2025-07-28 20:56:34 +00:00
77fe0950b2
add Chunky symlinking to Dockerfile 2025-07-28 21:36:18 +03:00
9ac1f451c0
add and configure Chunky plugin 2025-07-28 21:34:39 +03:00
69105ba34f Merge pull request 'max-players-to-50' (#27) from feature-63 into develop
All checks were successful
/ build-docker (push) Successful in 7m56s
Reviewed-on: #27
2025-07-27 19:16:07 +00:00
11ad282ebe
change max players to 50 2025-07-27 22:14:47 +03:00
f1681d14b4 Merge pull request 'fix-mob-cap' (#26) from feature-63 into develop
All checks were successful
/ build-docker (push) Successful in 6m50s
Reviewed-on: #26
2025-07-27 18:40:38 +00:00
38769b1c59
fix: set mob spawn cap per player to vanilla values 2025-07-27 21:39:41 +03:00
a4fe107708 Merge pull request 'fix-skinsrestorer-db' (#25) from fix-skinsrestorer-db into develop
All checks were successful
/ build-docker (push) Successful in 7m21s
Reviewed-on: #25
2025-07-27 17:54:01 +00:00
1f826781a9
enable database use by SkinsRestorer 2025-07-27 20:52:57 +03:00
1097bd297c
fix formatting in Dockerfile 2025-07-27 20:51:06 +03:00
37fc716efa Merge pull request 'new-chat-formatting' (#24) from carbonchat-config into develop
All checks were successful
/ build-docker (push) Successful in 7m5s
Reviewed-on: #24
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-26 18:38:05 +00:00
790806d3a9 new format 2025-07-26 20:02:52 +03:00
7f400d9965 Merge pull request 'feature-46-unifiedmetrics' (#23) from feature-46 into develop
All checks were successful
/ build-docker (push) Successful in 7m11s
Reviewed-on: #23
2025-07-25 18:22:10 +00:00
f93afc1709
add and configure UnifiedMetrics prometheus exporter 2025-07-25 17:58:51 +03:00
f12993b85a Merge pull request 'feature-63-core-settings' (#22) from feature-63 into develop
All checks were successful
/ build-docker (push) Successful in 5m37s
Reviewed-on: #22
2025-07-24 19:34:00 +00:00
f5dbe68a4c
configure server to be as vanilla as possible 2025-07-24 20:11:10 +03:00
d2cf6753fb Merge pull request 'disable-nether-end' (#21) from disable-nether-end into develop
All checks were successful
/ build-docker (push) Successful in 6m51s
Reviewed-on: #21
2025-07-24 16:32:16 +00:00
84bda15088
disabled nether in server.properties and end in bukkit.yml 2025-07-23 23:59:26 +03:00
cddab7bca4 Merge pull request 'feature-34-anticheat' (#9) from feature-34 into develop
All checks were successful
/ build-docker (push) Successful in 6m4s
Reviewed-on: #9
2025-07-22 19:23:25 +00:00
aa8fcae03f
Merge branch 'develop' into feature-34 2025-07-22 22:22:47 +03:00
5b947a0a8b Merge pull request 'feature-27-moderation' (#20) from feature-27 into develop
Some checks failed
/ build-docker (push) Has been cancelled
Reviewed-on: #20
Reviewed-by: cuqmbr <services@cuqmbr.xyz>
2025-07-22 19:20:02 +00:00
27c45fac56
Merge branch 'develop' into feature-27 2025-07-22 22:18:00 +03:00
f1ba8bb552
add LibertyBans secret substitution 2025-07-22 22:14:58 +03:00
a41d43cf19 feature-27-LibertyBans 2025-07-21 23:05:59 +03:00
f5b61aeb23 feature-27-LibertyBans 2025-07-21 23:02:41 +03:00
afac6ba448 Merge pull request 'feature-61-no-chat-signing' (#17) from feature-61 into develop
All checks were successful
/ build-docker (push) Successful in 5m27s
Reviewed-on: #17
Reviewed-by: apathy <zloiyudin@gmail.com>
2025-07-21 14:57:06 +00:00
6e190d8569 Merge pull request 'feature-62-ViaVersion' (#19) from feature-62 into develop
Some checks failed
/ build-docker (push) Has been cancelled
Reviewed-on: #19
Reviewed-by: apathy <zloiyudin@gmail.com>
2025-07-21 14:55:45 +00:00
c204973963 Merge pull request 'patpat' (#18) from patpat into develop
All checks were successful
/ build-docker (push) Successful in 5m14s
Reviewed-on: #18
Reviewed-by: apathy <zloiyudin@gmail.com>
2025-07-21 14:37:35 +00:00
0033bd0f11
add and configure ViaVersion 2025-07-20 23:25:04 +03:00
a8da779add
add and configure FreedomChat 2025-07-20 22:12:45 +03:00
fd3e06a456
add patpat 2025-07-20 21:48:02 +03:00
a87c3cd1c9 Merge pull request 'feature-55-worldmap' (#16) from feature-55 into develop
All checks were successful
/ build-docker (push) Successful in 7m43s
Reviewed-on: #16
Reviewed-by: apathy <zloiyudin@gmail.com>
2025-07-19 21:16:34 +00:00
f25aec9c8a Merge pull request 'feature-40-armor-poser' (#15) from feature-40 into develop
Some checks failed
/ build-docker (push) Has been cancelled
Reviewed-on: #15
Reviewed-by: apathy <zloiyudin@gmail.com>
2025-07-19 21:13:49 +00:00
7c321773ef
add BlueMap expose port in Dockerfile 2025-07-19 21:29:28 +03:00
ab6d571fcd
add and configure BlueMap 2025-07-19 21:27:47 +03:00
b5880e43de
add ArmorPoser 2025-07-19 14:37:35 +03:00
3b880eea8b Merge pull request 'feature-25-TAB' (#14) from feature-25 into develop
All checks were successful
/ build-docker (push) Successful in 19m47s
Reviewed-on: #14
Reviewed-by: cuqmbr <services@cuqmbr.xyz>
2025-07-16 19:10:54 +00:00
d807fb5248 feature-25-moved tab to proxy 2025-07-15 23:34:17 +03:00
e335979b36 add plugin TAB by neznamy check docker 2025-07-15 18:20:43 +03:00
a49bf4c27a Merge pull request 'feature-32-discordsrv' (#13) from feature-32 into develop
All checks were successful
/ build-docker (push) Successful in 5m46s
Reviewed-on: #13
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-14 19:18:06 +00:00
7c34d9ff11
Merge branch 'develop' into feature-32 2025-07-14 22:17:37 +03:00
414a9ce681
add DiscordSRV bot token substitution 2025-07-14 22:14:09 +03:00
2d5c8e41ca
add DiscordSRV symlinking to Dockerfile 2025-07-14 22:10:41 +03:00
a09524292a feature-32-discordsrv 2025-07-14 16:32:42 +03:00
154a5e5e00 Merge pull request 'feature-24-CarbonChat' (#12) from feature-24 into develop
All checks were successful
/ build-docker (push) Successful in 6m22s
Reviewed-on: #12
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-14 11:09:12 +00:00
12a157def0
Merge branch 'develop' into feature-24 2025-07-14 14:07:14 +03:00
9ccb2dd19f
enable CarbonChat ping sound 2025-07-14 14:04:43 +03:00
d687d86a18
rename local channel, remove partychat 2025-07-14 13:57:31 +03:00
2d0e217d37
fix CarbonChat symlink in Dockerfile 2025-07-14 13:28:16 +03:00
a018f4726b Merge pull request 'feature-37-Customizable-Player-Models' (#11) from feature-37 into develop
All checks were successful
/ build-docker (push) Successful in 9m19s
Reviewed-on: #11
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-14 09:17:53 +00:00
89b1a97b25
add CustomPlayerModels docker container symlinks 2025-07-14 12:16:52 +03:00
c879269a49 add and configured CarbonChat(check docker) 2025-07-13 19:38:15 +03:00
b0c27faffd add Customizable Player Models 2025-07-11 22:48:50 +03:00
96f1c4b181 Merge pull request 'feature-22-images' (#7) from feature-22 into develop
All checks were successful
/ build-docker (push) Successful in 30m16s
Reviewed-on: #7
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-09 10:51:04 +00:00
414fa0a562
add ImageFrame data symlinks in docker container 2025-07-09 13:49:40 +03:00
57663573f2 конфиг-файл 4.0 2025-07-09 13:28:30 +03:00
818cd2dfdf конфиг-файл 2.0 2025-07-09 12:48:19 +03:00
d9d2bb95c5 Merge pull request 'feature-41-sit' (#8) from feature-41 into develop
All checks were successful
/ build-docker (push) Successful in 30m15s
Reviewed-on: #8
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-09 08:52:32 +00:00
68134f62eb feature-41 2025-07-09 11:49:08 +03:00
6a2c612389 Merge pull request 'feature-28-OpenInv-SuperVanish' (#10) from feature-28 into develop
Some checks failed
/ build-docker (push) Has been cancelled
Reviewed-on: #10
Reviewed-by: cuqmbr <me@cuqmbr.xyz>
2025-07-09 08:31:17 +00:00
260f08fd3a
add SuperVanish data file symlink in Dockerfile 2025-07-09 11:12:43 +03:00
a46bc6cc9e
add SuperVanish data.yml to git and docker ignore files 2025-07-09 11:06:26 +03:00
f7b48b7c74 почистил дату 2025-07-09 00:04:42 +03:00
237a66269f Убрал лишний мод EssentialsX 2025-07-08 20:59:11 +03:00
6e5e35c600 Добавлены плагины EssentialsX, OpenInv, SuperVanish 2025-07-08 19:05:07 +03:00
59090de3b3
add and configure LightningGrim anticheat 2025-07-07 14:41:54 +03:00
3c7e1b1146
add and configure orebfuscator anti x-ray 2025-07-07 14:40:56 +03:00
7f4c744582 feature-41 2025-07-05 19:18:08 +03:00
c2e7cf757b osama 2025-07-05 19:09:59 +03:00
479b2e4997 Merge pull request 'feature-31-voice-chat' (#4) from feature-31 into develop
All checks were successful
/ build-docker (push) Successful in 27m6s
Reviewed-on: #4
Reviewed-by: apathy <zloiyudin@gmail.com>
2025-07-04 16:15:11 +00:00
bc98bef7f8
add and configure luckperms 2025-06-17 14:52:43 +03:00
145 changed files with 16451 additions and 104 deletions

View File

@ -16,7 +16,35 @@
*/whitelist.json
*/usercache.json
src/plugins/luckperms/libs
src/plugins/spark/tmp
.crowdin
src/plugins/PlasmoVoice/voice_mutes.json
src/orebfuscator_cache
src/plugins/GrimAC/violations.sqlite
src/plugins/LuckPerms/libs
src/plugins/ImageFrame/data
src/plugins/ImageFrame/players
src/plugins/ImageFrame/upload
src/map-color-cache.dat
src/plugins/SuperVanish/data.yml
src/plugins/CustomizablePlayerModels
src/plugins/CarbonChat/users
src/plugins/CarbonChat/libraries
src/plugins/DiscordSRV/accounts.aof
src/plugins/BlueMap/data/web/maps
src/plugins/BlueMap/data/logs
src/plugins/BlueMap/data/minecraft-client-1.21.jar
src/plugins/BMMarker/data
src/plugins/LibertyBans/internal
src/plugins/Chunky/tasks

View File

@ -5,6 +5,8 @@ on:
branches:
- main
- develop
tags:
- '[0-9]+.[0-9]+.[0-9]+'
jobs:
build-docker:
@ -42,5 +44,6 @@ jobs:
push: true
# TODO: split tag names into multiple lines
tags: |
${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}/${{github.ref_name}}:${{github.sha}}
${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}/${{github.ref_name}}:latest
${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}:${{github.sha}}
${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}:${{github.ref_name}}
${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}:latest

30
.gitignore vendored
View File

@ -16,7 +16,35 @@
*/whitelist.json
*/usercache.json
src/plugins/LuckPerms/libs
src/plugins/spark/tmp
.crowdin
src/plugins/PlasmoVoice/voice_mutes.json
src/orebfuscator_cache
src/plugins/GrimAC/violations.sqlite
src/plugins/LuckPerms/libs
src/plugins/ImageFrame/data
src/plugins/ImageFrame/players
src/plugins/ImageFrame/upload
src/map-color-cache.dat
src/plugins/SuperVanish/data.yml
src/plugins/CustomizablePlayerModels
src/plugins/CarbonChat/users
src/plugins/CarbonChat/libraries
src/plugins/DiscordSRV/accounts.aof
src/plugins/BlueMap/data/web/maps
src/plugins/BlueMap/data/logs
src/plugins/BlueMap/data/minecraft-client-1.21.jar
src/plugins/BMMarker/data
src/plugins/LibertyBans/internal
src/plugins/Chunky/tasks

View File

@ -9,53 +9,148 @@ ADD ./src ${CONFIG_PATH}
RUN mkdir ${DATA_PATH}
# Add symlinks to Minecraft default files
RUN touch ${DATA_PATH}/banned-ips.json && \
ln -sf ${DATA_PATH}/banned-ips.json ${CONFIG_PATH}
RUN touch ${DATA_PATH}/banned-players.json && \
ln -sf ${DATA_PATH}/banned-players.json ${CONFIG_PATH}
RUN mkdir ${DATA_PATH}/logs && \
ln -sf ${DATA_PATH}/logs ${CONFIG_PATH}
RUN touch ${DATA_PATH}/ops.json && \
ln -sf ${DATA_PATH}/ops.json ${CONFIG_PATH}
RUN touch ${DATA_PATH}/usercache.json && \
ln -sf ${DATA_PATH}/usercache.json ${CONFIG_PATH}
RUN touch ${DATA_PATH}/whitelist.json && \
ln -sf ${DATA_PATH}/whitelist.json ${CONFIG_PATH}
RUN mkdir ${DATA_PATH}/world && \
ln -sf ${DATA_PATH}/world ${CONFIG_PATH}
RUN mkdir ${DATA_PATH}/world_nether && \
ln -sf ${DATA_PATH}/world_nether ${CONFIG_PATH}
RUN mkdir ${DATA_PATH}/world_the_end && \
ln -sf ${DATA_PATH}/world_the_end ${CONFIG_PATH}
ln -sf ${DATA_PATH}/banned-ips.json ${CONFIG_PATH} && \
touch ${DATA_PATH}/banned-players.json && \
ln -sf ${DATA_PATH}/banned-players.json ${CONFIG_PATH} && \
mkdir ${DATA_PATH}/logs && \
ln -sf ${DATA_PATH}/logs ${CONFIG_PATH} && \
touch ${DATA_PATH}/ops.json && \
ln -sf ${DATA_PATH}/ops.json ${CONFIG_PATH} && \
touch ${DATA_PATH}/usercache.json && \
ln -sf ${DATA_PATH}/usercache.json ${CONFIG_PATH} && \
touch ${DATA_PATH}/whitelist.json && \
ln -sf ${DATA_PATH}/whitelist.json ${CONFIG_PATH} && \
mkdir ${DATA_PATH}/world && \
ln -sf ${DATA_PATH}/world ${CONFIG_PATH} && \
mkdir ${DATA_PATH}/world_nether && \
ln -sf ${DATA_PATH}/world_nether ${CONFIG_PATH} && \
mkdir ${DATA_PATH}/world_the_end && \
ln -sf ${DATA_PATH}/world_the_end ${CONFIG_PATH}
# Add symlinks to PlasmoVoice files
RUN touch ${DATA_PATH}/pv-voice_mutes.json && \
ln -sf ${DATA_PATH}/pv-voice_mutes.json \
${CONFIG_PATH}/plugins/PlasmoVoice/voice_mutes.json
# Add symlinks to SuperVanish files
RUN mkdir -p ${DATA_PATH}/SuperVanish && \
touch ${DATA_PATH}/SuperVanish/data.yml && \
ln -sf ${DATA_PATH}/SuperVanish/data.yml \
${CONFIG_PATH}/plugins/SuperVanish/data.yml
# Add symlinks to CarbonChat files
RUN mkdir -p ${DATA_PATH}/CarbonChat/users && \
ln -sf ${DATA_PATH}/CarbonChat/users \
${CONFIG_PATH}/plugins/CarbonChat/users
# Add symlinks to ImageFrame files
RUN mkdir -p ${DATA_PATH}/ImageFrame/data && \
ln -sf ${DATA_PATH}/ImageFrame/data/ \
${CONFIG_PATH}/plugins/ImageFrame/data && \
mkdir -p ${DATA_PATH}/ImageFrame/players && \
ln -sf ${DATA_PATH}/ImageFrame/players/ \
${CONFIG_PATH}/plugins/ImageFrame/players && \
mkdir -p ${DATA_PATH}/ImageFrame/upload && \
ln -sf ${DATA_PATH}/ImageFrame/upload/ \
${CONFIG_PATH}/plugins/ImageFrame/upload
# Add symlinks to CusttomPlayerModels files
RUN mkdir -p ${DATA_PATH}/CustomizablePlayerModels && \
ln -sf ${DATA_PATH}/CustomizablePlayerModels/ \
${CONFIG_PATH}/plugins/CustomizablePlayerModels
# Add symlinks to BlueMap files
RUN mkdir -p ${DATA_PATH}/BlueMap/maps && \
mkdir -p ${DATA_PATH}/BlueMap/logs && \
ln -sf ${DATA_PATH}/BlueMap/maps \
${CONFIG_PATH}/plugins/BlueMap/data/web/maps && \
ln -sf ${DATA_PATH}/BlueMap/logs \
${CONFIG_PATH}/plugins/BlueMap/data/logs
RUN mkdir -p ${DATA_PATH}/BMMarker/data && \
ln -sf ${DATA_PATH}/BMMarker/data \
${CONFIG_PATH}/plugins/BMMarker/data
# Add symlinks to Chunky files
RUN mkdir -p ${DATA_PATH}/Chunky/tasks && \
ln -sf ${DATA_PATH}/Chunky/tasks \
${CONFIG_PATH}/plugins/Chunky/tasks
# Generate unicode locale so that cyrillic characters display properly
RUN apt-get update -y && apt-get install -y locales && \
echo en_US.UTF-8 UTF-8 > /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales && \
rm -Rf var/lib/apt/lists/*
ENV LANG en_US.UTF-8
VOLUME ${DATA_PATH}
# Minecraft
EXPOSE 25565/tcp
# BlueMap
EXPOSE 8100/tcp
ENV GID=988
ENV UID=999
ENV MEMORY=4G
ENV PROXY_SECRET=00000000-0000-0000-0000-000000000000
ENV VOICE_SECRET=00000000-0000-0000-0000-000000000000
ENV LUCKPERMS_DB_HOST=127.0.0.1
ENV LUCKPERMS_DB_PORT=3306
ENV LUCKPERMS_DB_NAME=luckperms_db
ENV LUCKPERMS_DB_USERNAME=luckperms
ENV LUCKPERMS_DB_PASSWORD=0000
ENV SKINSRESTORER_DB_HOST=127.0.0.1
ENV SKINSRESTORER_DB_PORT=3306
ENV SKINSRESTORER_DB_NAME=skinsrestorer_db
ENV SKINSRESTORER_DB_USERNAME=skinsrestorer
ENV SKINSRESTORER_DB_PASSWORD=0000
ENV COREPROTECT_DB_HOST=127.0.0.1
ENV COREPROTECT_DB_PORT=3306
ENV COREPROTECT_DB_NAME=coreprotect_db
ENV COREPROTECT_DB_USERNAME=coreprotect
ENV COREPROTECT_DB_PASSWORD=0000
ENV LUCKPERMS_DB_HOST=127.0.0.1
ENV LUCKPERMS_DB_PORT=3306
ENV LUCKPERMS_DB_NAME=luckperms
ENV LUCKPERMS_DB_USERNAME=luckperms
ENV LUCKPERMS_DB_PASSWORD=0000
ENV LIBERTYBANS_DB_HOST=127.0.0.1
ENV LIBERTYBANS_DB_PORT=3306
ENV LIBERTYBANS_DB_NAME=libertybans_db
ENV LIBERTYBANS_DB_USERNAME=libertybans
ENV LIBERTYBANS_DB_PASSWORD=0000
ENV GRIM_DB_HOST=127.0.0.1
ENV GRIM_DB_PORT=3306
ENV GRIM_DB_NAME=luckperms
ENV GRIM_DB_USERNAME=luckperms
ENV GRIM_DB_PASSWORD=0000
ENV DISCORDSRV_BOT_TOKEN=dummy-token
ENV DISCORDSRV_DB_HOST=127.0.0.1
ENV DISCORDSRV_DB_PORT=3306
ENV DISCORDSRV_DB_NAME=discordsrv_db
ENV DISCORDSRV_DB_USERNAME=discordsrv
ENV DISCORDSRV_DB_PASSWORD=0000
WORKDIR ${WORKDIR_PATH}/config
EXPOSE 25565/tcp
CMD \
# Create and switch to user with desired UID and GID.
# All processes that create/change files in ${DATA_PATH}
# must be run under this user.
groupadd -g ${GID} worker && \
useradd -M -g ${GID} -u ${UID} worker && \
chmod -R o-rwx ${WORKDIR_PATH} && \
# Add proxy secret
sed -i "s/_PROXY_SECRET_/${PROXY_SECRET}/g" config/paper-global.yml && \
@ -69,6 +164,13 @@ CMD \
sed -i "s/_LUCKPERMS_DB_USERNAME_/${LUCKPERMS_DB_USERNAME}/g" plugins/LuckPerms/config.yml && \
sed -i "s/_LUCKPERMS_DB_PASSWORD_/${LUCKPERMS_DB_PASSWORD}/g" plugins/LuckPerms/config.yml && \
# Add database info to skinsrestorer config
sed -i "s/_SKINSRESTORER_DB_HOST_/${SKINSRESTORER_DB_HOST}/g" plugins/SkinsRestorer/config.yml && \
sed -i "s/_SKINSRESTORER_DB_PORT_/${SKINSRESTORER_DB_PORT}/g" plugins/SkinsRestorer/config.yml && \
sed -i "s/_SKINSRESTORER_DB_NAME_/${SKINSRESTORER_DB_NAME}/g" plugins/SkinsRestorer/config.yml && \
sed -i "s/_SKINSRESTORER_DB_USERNAME_/${SKINSRESTORER_DB_USERNAME}/g" plugins/SkinsRestorer/config.yml && \
sed -i "s/_SKINSRESTORER_DB_PASSWORD_/${SKINSRESTORER_DB_PASSWORD}/g" plugins/SkinsRestorer/config.yml && \
# Add coreprotect database secrets
sed -i "s/_COREPROTECT_DB_HOST_/${COREPROTECT_DB_HOST}/g" plugins/CoreProtect/config.yml && \
sed -i "s/_COREPROTECT_DB_PORT_/${COREPROTECT_DB_PORT}/g" plugins/CoreProtect/config.yml && \
@ -76,5 +178,32 @@ CMD \
sed -i "s/_COREPROTECT_DB_USERNAME_/${COREPROTECT_DB_USERNAME}/g" plugins/CoreProtect/config.yml && \
sed -i "s/_COREPROTECT_DB_PASSWORD_/${COREPROTECT_DB_PASSWORD}/g" plugins/CoreProtect/config.yml && \
# Add grim database secrets
sed -i "s/_GRIM_DB_HOST_/${GRIM_DB_HOST}/g" plugins/GrimAC/config.yml && \
sed -i "s/_GRIM_DB_PORT_/${GRIM_DB_PORT}/g" plugins/GrimAC/config.yml && \
sed -i "s/_GRIM_DB_NAME_/${GRIM_DB_NAME}/g" plugins/GrimAC/config.yml && \
sed -i "s/_GRIM_DB_USERNAME_/${GRIM_DB_USERNAME}/g" plugins/GrimAC/config.yml && \
sed -i "s/_GRIM_DB_PASSWORD_/${GRIM_DB_PASSWORD}/g" plugins/GrimAC/config.yml && \
# Add libertybans database secrets
sed -i "s/_LIBERTYBANS_DB_HOST_/${LIBERTYBANS_DB_HOST}/g" plugins/LibertyBans/sql.yml && \
sed -i "s/_LIBERTYBANS_DB_PORT_/${LIBERTYBANS_DB_PORT}/g" plugins/LibertyBans/sql.yml && \
sed -i "s/_LIBERTYBANS_DB_NAME_/${LIBERTYBANS_DB_NAME}/g" plugins/LibertyBans/sql.yml && \
sed -i "s/_LIBERTYBANS_DB_USERNAME_/${LIBERTYBANS_DB_USERNAME}/g" plugins/LibertyBans/sql.yml && \
sed -i "s/_LIBERTYBANS_DB_PASSWORD_/${LIBERTYBANS_DB_PASSWORD}/g" plugins/LibertyBans/sql.yml && \
# Add DiscordSRV bot token
sed -i "s/_DISCORDSRV_BOT_TOKEN_/${DISCORDSRV_BOT_TOKEN}/g" plugins/DiscordSRV/config.yml && \
# Add database info to DiscordSRV config
sed -i "s/_DISCORDSRV_DB_HOST_/${DISCORDSRV_DB_HOST}/g" plugins/DiscordSRV/config.yml && \
sed -i "s/_DISCORDSRV_DB_PORT_/${DISCORDSRV_DB_PORT}/g" plugins/DiscordSRV/config.yml && \
sed -i "s/_DISCORDSRV_DB_NAME_/${DISCORDSRV_DB_NAME}/g" plugins/DiscordSRV/config.yml && \
sed -i "s/_DISCORDSRV_DB_USERNAME_/${DISCORDSRV_DB_USERNAME}/g" plugins/DiscordSRV/config.yml && \
sed -i "s/_DISCORDSRV_DB_PASSWORD_/${DISCORDSRV_DB_PASSWORD}/g" plugins/DiscordSRV/config.yml && \
# Change UID and GID of used files to desired values.
chown -R worker:worker ${WORKDIR_PATH} && \
# Launch
java -Xms${MEMORY} -Xmx${MEMORY} -jar *.jar -nogui
su worker -c "java -Xms${MEMORY} -Xmx${MEMORY} -XX:+UseZGC -XX:+ZGenerational -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -jar *.jar -nogui"

View File

@ -1,5 +1,6 @@
# https://bukkit.fandom.com/wiki/Bukkit.yml
settings:
allow-end: true
allow-end: false
warn-on-overload: true
permissions-file: permissions.yml
update-folder: update
@ -21,12 +22,12 @@ spawn-limits:
chunk-gc:
period-in-ticks: 600
ticks-per:
animal-spawns: 400
monster-spawns: 1
water-spawns: 1
water-ambient-spawns: 1
water-underground-creature-spawns: 1
axolotl-spawns: 1
ambient-spawns: 1
animal-spawns: -1
monster-spawns: -1
water-spawns: -1
water-ambient-spawns: -1
water-underground-creature-spawns: -1
axolotl-spawns: -1
ambient-spawns: -1
autosave: 6000
aliases: now-in-commands.yml

View File

@ -122,14 +122,15 @@ timings:
url: https://timings.aikar.co/
verbose: true
unsupported-settings:
allow-headless-pistons: false
allow-permanent-block-break-exploits: false
allow-piston-duplication: false
allow-tripwire-disarming-exploits: false
allow-unsafe-end-portal-teleportation: false
allow-headless-pistons: true
allow-permanent-block-break-exploits: true
allow-piston-duplication: true
allow-tripwire-disarming-exploits: true
allow-unsafe-end-portal-teleportation: true
compression-format: ZLIB
perform-username-validation: true
perform-username-validation: false
skip-vanilla-damage-tick-when-shield-blocked: false
update-equipment-on-player-actions: false
watchdog:
early-warning-delay: 10000
early-warning-every: 5000

View File

@ -56,7 +56,7 @@ anticheat:
hide-itemmeta-with-visual-effects: false
chunks:
auto-save-interval: default
delay-chunk-unloads-by: 10s
delay-chunk-unloads-by: 0s
entity-per-chunk-save-limit:
arrow: -1
ender_pearl: -1
@ -65,14 +65,14 @@ chunks:
small_fireball: -1
snowball: -1
fixed-chunk-inhabited-time: -1
flush-regions-on-save: false
max-auto-save-chunks-per-tick: 24
flush-regions-on-save: true
max-auto-save-chunks-per-tick: 200
prevent-moving-into-unloaded-chunks: false
collisions:
allow-player-cramming-damage: false
allow-player-cramming-damage: true
allow-vehicle-collisions: true
fix-climbing-bypassing-cramming-rule: false
max-entity-collisions: 8
max-entity-collisions: 4096
only-players-collide: false
command-blocks:
force-follow-perm-level: true
@ -80,8 +80,10 @@ command-blocks:
entities:
armor-stands:
do-collision-entity-lookups: true
tick: true
tick: false
behavior:
cooldown-failed-beehive-releases: false
only-merge-items-horizontally: true
allow-spider-world-border-climbing: true
baby-zombie-movement-modifier: 0.5
disable-chest-cat-detection: false
@ -105,9 +107,9 @@ entities:
skeletons: false
zombies: false
nerf-pigmen-from-nether-portals: false
parrots-are-unaffected-by-player-movement: false
parrots-are-unaffected-by-player-movement: true
phantoms-do-not-spawn-on-creative-players: true
phantoms-only-attack-insomniacs: true
phantoms-only-attack-insomniacs: false
phantoms-spawn-attempt-max-seconds: 119
phantoms-spawn-attempt-min-seconds: 60
piglins-guard-chests: true
@ -173,13 +175,8 @@ entities:
duplicate-uuid:
mode: SAFE_REGEN
safe-regen-delete-range: 32
filter-bad-tile-entity-nbt-from-falling-blocks: true
filtered-entity-tag-nbt-paths:
- Pos
- Motion
- SleepingX
- SleepingY
- SleepingZ
filter-bad-tile-entity-nbt-from-falling-blocks: false
filtered-entity-tag-nbt-paths: []
iron-golems-can-spawn-in-air: false
monster-spawn-max-light-level: default
non-player-arrow-despawn-rate: default
@ -241,7 +238,7 @@ environment:
max-block-ticks: 65536
max-fluid-ticks: 65536
nether-ceiling-void-damage-height: disabled
optimize-explosions: false
optimize-explosions: true
portal-create-radius: 16
portal-search-radius: 128
portal-search-vanilla-dimension-scaling: true
@ -257,14 +254,14 @@ fishing-time-range:
maximum: 600
minimum: 100
fixes:
disable-unloaded-chunk-enderpearl-exploit: true
disable-unloaded-chunk-enderpearl-exploit: false
falling-block-height-nerf: disabled
fix-items-merging-through-walls: false
prevent-tnt-from-moving-in-water: false
split-overstacked-loot: true
tnt-entity-height-nerf: disabled
hopper:
cooldown-when-full: true
cooldown-when-full: false
disable-move-event: false
ignore-occluding-blocks: false
lootables:
@ -293,7 +290,7 @@ misc:
redstone-implementation: VANILLA
shield-blocking-delay: 5
show-sign-click-command-failure-msgs-to-player: false
update-pathfinding-on-block-update: true
update-pathfinding-on-block-update: false
scoreboards:
allow-non-player-entities-on-scoreboards: true
use-vanilla-world-scoreboard-name-coloring: false
@ -312,5 +309,5 @@ tick-rates:
secondarypoisensor: 40
wet-farmland: 1
unsupported-settings:
disable-world-ticking-when-empty: false
disable-world-ticking-when-empty: true
fix-invulnerable-end-crystal-exploit: true

BIN
src/plugins/ArmorPoser-Plugin-1.0.2.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,125 @@
#----------------------- Translation ------------------------#
# Content of all messages in BlueMap-Marker. #
#------------------------------------------------------------#
# Some messages support MiniMessage styling (marked with #m) #
# and extra variables (marked with #v). #
# Syntax: <input-i> -> #
# i is a number from 0 to the message max #
#------------------------------------------------------------#
creator: Miraculixx
version: 1.0.0
#-----------------------------------------#
# Common Translations #
# Translation keys that persist in every #
# project for simple values #
#-----------------------------------------#
common:
cancel: "Abbrechen"
build: "Erstellen"
or: "oder"
notSet: "Nicht gesetzt"
use: "Nutze"
#-----------------------------------------#
# Command Responses #
# Translation keys that fires on command #
# executions and help #
#-----------------------------------------#
command:
alreadyStarted: "<red>Du hast bereits angefangen einen Marker zu erstellen!" #m
alreadyStarted2: "<red> vor dem neuerstellen!" #m (Cancel or build ...)
notValidMarker: "<red>Dies ist kein valider Marker! (<input-1>)" #m #v1
notValidSet: "<red>Ungültige set-ID oder Map Name! (<input-1> - <input-2>)" #m #v2
mustProvideID: "<red>Bitte gebe eine Marker ID und ein Markerset an!" #m
mustProvideIDSet: "<red>Bitte gebe eine marker-set ID und eine Zielwelt an!" #m
mustAlphanumeric: "<red>IDs müssen alphanumerisch sein (nur Buchstaben und Zahlen)" #m
switchLang: "<green>Die Sprache wurde zu Deutsch gewechselt!" #m
switchLangFailed: "<red>Deine angegebene Sprache existiert nicht!" #m
createMarker: "<gray>Marker<input-1> setup gestartet! Änderer Werte mit " #m #v1 (using <command> ...)
createMarker2: "<gray> und bestätige dein setup mit " #m (<command> ... <command>)
createdMarker: "<green>Marker erstellt! Es sollte in ein paar Sekunden auf deiner BlueMap erscheinen" #m
createdSet: "<green>Marker-Set erstellt! Nutze es um neue Marker drin zu erstellen mit "
deleteMarker: "<gray>Erfolgreich <color:#6e94ff><input-1></color> marker gelöscht! Es sollte in ein paar Sekunden auf deiner BlueMap verschwinden" #m #v1
deleteSet: "<gray>Erfolgreich <color:#6e94ff><input-1></color> marker-set gelöscht! Es sollte in ein paar Sekunden auf deiner BlueMap verschwinden" #m #v1
confirmDelete: "<red>Bist du dir wirklich sicher das '<input-1>' set auf der Map '<input-2>' zu löschen? Bitte bestätige es mit " #m #v2
idAlreadyExist: "<red>Die ID <u><input-1></u> existiert bereits in dem set/der Welt!" #m #v1
markerReplaced: "<grey>Der alte Marker wird ersetzt mit dem neuen..." #m
canceledSetup: "<grey>Aktuelles Marker<input-1> setup abgebrochen!" #m #v1
notValidPlayer: "<red>Konnte den angegebenen Spieler nicht finden!" #m
changedVisibility: "<grey><color:#6e94ff><input-1></color> ist jetzt <input-2> auf deiner BlueMap" #m #v2
#-----------------------------------------#
# Creator Messages #
# Translation keys that are used while #
# creating markers(set) #
#-----------------------------------------#
event:
currentSetup: "Der aktuelle Erstellungsstatus (<input-1>)" #v1
buildHover: "Erstelle neuen Marker mit den\neingestellten Einstellungen. Rote Werte\nsind Pflicht!"
cancelHover: "Breche das aktuelle Erstellen ab.\nDies löscht alle gesetzten Werte!"
clickToAdd: "Klicke um einen Wert hinzuzufügen"
#-----------------------------------------#
# Arguments #
# Translation keys for all modifiers #
# to create markers(set) #
#-----------------------------------------#
arg:
ID: "ID"
MARKER_SET: "MARKER SET"
POSITION: "POSITION"
LABEL: "NAME"
ICON: "BILD"
ANCHOR: "ANKER"
MAX_DISTANCE: "MAX DISTANZ"
MIN_DISTANCE: "MIN DISTANZ"
ADD_POSITION: "NEUE POSITION"
ADD_EDGE: "NEUE ECKE"
DETAIL: "BESCHREIBUNG"
LINK: "LINK"
NEW_TAB: "NEUER TAB"
DEPTH_TEST: "TIEFEN TEST"
LINE_WIDTH: "LINIEN DICKE"
LINE_COLOR: "LINIEN FARBE"
FILL_COLOR: "FÜLLFARBE"
HEIGHT: "HÖHE"
MAX_HEIGHT: "MAX HÖHE"
POINTS: "PUNKTE"
X_RADIUS: "RADIUS X"
Z_RADIUS: "RADIUS Z"
MAP: "MAP"
TOGGLEABLE: "ÄNDERBAR"
DEFAULT_HIDDEN: "DEFAULT VERSTECKT"
arg-desc:
ID: "Interne ID für den Zugriff auf den Marker(-set)"
MARKER_SET: "Markerset, in dem die Markierung\ngespeichert werden soll (Welt)"
POSITION: "Position wo der Marker gesetzt\nwird. (NICHT die Welt)"
LABEL: "Angezeigter Name in der Marker Liste/Menü"
ICON: "Bild URL für ein angezeigtes Bild\nbei der gegebenen Position (POI exklusiv)"
ANCHOR: "Verschiebung für das angezeigte \nBild/Html Code (in Pixel)"
MAX_DISTANCE: "Max Distanz zu der Kamera\nbei welcher der Marker sichtbar ist"
MIN_DISTANCE: "Min Distanz zu der Kamera\nbei welcher der Marker sichtbar ist"
ADD_POSITION: "Füge neue Positionen zum Marker\nhinzu um die Linie zu bilden (Line exklusiv)"
ADD_EDGE: "Füge neue Ecken zu dem Marker\nhinzu um die Form zu bilden"
DETAIL: "Beschreibung welche sichtbar ist\nbeim anklicken"
LINK: "Eine Verlinkung beim anklicken"
NEW_TAB: "Ob der angeklickte Link in einem\nneuen Tab geöffnet werden soll oder im selben"
DEPTH_TEST: "Wenn false, wird der Marker immer über allem\nangezeigt. Andernfalls respektiert er blockierende Ebenen."
LINE_WIDTH: "Die Dicke der Umrandung/Linie (in Pixel)"
LINE_COLOR: "Farbe der Umrandung/Linie (RGBA)\n- https://htmlcolorcodes.com -"
FILL_COLOR: "Farbe des inneres Feldes (RGBA)\n- https://htmlcolorcodes.com -"
HEIGHT: "Die minimale Höhe des Markierungsfeldes.\nDefinitionshöhe für Form Marker"
MAX_HEIGHT: "Die maximale Höhe des Markerfelds.\nFür eine flache Form auf dieselbe Y-Höhe/Position eingestellt."
POINTS: "Die Anzahl der Punkte, die zum Rendern des\nKreises/der Ellipse verwendet werden. Mehr Punkte\nerzeugen sauberere Ränder, aber zu viele\nPunkte beeinträchtigen die Leistung!"
X_RADIUS: "Der Ellipsen Radius in der +-x Richtung"
Z_RADIUS: "Der Ellipsen Radius in der +-z Richtung"
MAP: "Ziel BlueMap Map\nDies ist nicht die Welt!"
TOGGLEABLE: "Wenn true kann das Marker-Set im\nMenü aktiviert oder deaktiviert werden"
DEFAULT_HIDDEN: "Wenn true ist das Marker-Set standardmäßig\nausgeblendet und kann vom Benutzer aktiviert werden.\nWenn 'ÄNDERBAR' false ist, ist dies der erzwungene Zustand"

View File

@ -0,0 +1,159 @@
#----------------------- Translation ------------------------#
# Content of all messages in BlueMap-Marker. #
#------------------------------------------------------------#
# Some messages support MiniMessage styling (marked with #m) #
# and extra variables (marked with #v). #
# Syntax: <input-i> -> #
# i is a number from 0 to the message max #
#------------------------------------------------------------#
creator: Miraculixx
version: 1.0.0
#-----------------------------------------#
# Common Translations #
# Translation keys that persist in every #
# project for simple values #
#-----------------------------------------#
common:
cancel: "Cancel"
build: "Build"
or: "or"
notSet: "Not Set"
use: "Use"
#-----------------------------------------#
# Command Responses #
# Translation keys that fires on command #
# executions and help #
#-----------------------------------------#
command:
alreadyStarted: "<red>You already started a marker setup!" #m
alreadyStarted2: "<red> it before creating a new one" #m (Cancel or build ...)
notValidMarker: "<red>This is not a valid marker! (<input-1>)" #m #v1
notValidSet: "<red>Invalid set-ID or map name! (<input-1> - <input-2>)" #m #v2
mustProvideID: "<red>Please provide a marker ID!" #m
mustProvideIDSet: "<red>Please provide a marker-set ID and a target world!" #m
mustAlphanumeric: "<red>IDs must be alphanumeric (only contains letters and numbers)" #m
switchLang: "<green>Switched language to <u>en_US</u>!" #m
switchLangFailed: "<red>Your provided language does not exist!" #m
createMarker: "<gray>Marker<input-1> setup started! Modify values using " #m #v1 (using <command> ...)
createMarker2: "<gray> and finish your setup with " #m (<command> ... <command>)
createdMarker: "<green>Marker created! It should appear on your BlueMap in a few seconds" #m
createdSet: "<green>Marker-Set created! Use it to add new markers inside this set with "
deleteMarker: "<gray>Successfully deleted <color:#6e94ff><input-1></color> marker! It should disappear from your BlueMap in a few seconds" #m #v1
deleteSet: "<gray>Successfully deleted <color:#6e94ff><input-1></color> marker-set! It should disappear from your BlueMap in a few seconds" #m #v1
confirmDelete: "<red>Are you really sure you want to delete the '<input-1>' set on map '<input-2>'? Please confirm by typing " #m #v2
idAlreadyExist: "<red>The ID <u><input-1></u> already exist in this set/world!" #m #v1
canceledSetup: "<grey>Canceled current marker<input-1> setup!" #m #v1
notValidPlayer: "<red>Could not found given player!" #m
changedVisibility: "<grey><color:#6e94ff><input-1></color> is now <input-2> on your BlueMap" #m #v2
setNotFound: "<red>Could not find the marker-set with the ID <u><input-1></u>! (/<input-2> set-create)" #m #v1
mapNotFound: "<red>Could not find the map with the name <u><input-1></u>!" #m #v1
missingImportant: "<red>Missing one or more important values! Please fill in all red marked values" #m
selectMap: "<gray>Select a BlueMap-Map:" #m
selectSet: "<gray>Select a Marker-Set:" #m
noSets: "<red>There are no marker-sets in map <input-1>! (/<input-2> set-create)" #m #v1
notYourSet: "<red>You are not the owner of this marker-set!" #m
notYourMarker: "<red>You are not the owner of this marker!" #m
maxMarkers: "<red>You reached your maximum amount of markers in this set! (<input-1>)" #m #v1
maxSets: "<red>You reached your maximum amount of marker-sets in this map! (<input-1>)" #m #v1
notTeleportMarker: "<red>This marker is not setup to be teleportable!" #m
teleportMarker: "<green>Teleported to the marker <u><input-1></u>!" #m #v1
settings:
current: "<gray>Current value: <color:#6e94ff><input-1></color>" #m #v1
changed: "<gray>Changed value to: <color:#6e94ff><input-1></color>" #m #v1
template:
help: "<gray>Templates are a powerful tool to create markers faster or automated. They can be a bit complicated to setup first, so feel free to <click:open_url:'https://discord.gg/zmkyJa3'><u>ask me</u></click> for help :)\n\n- Templates have their own custom command <blue>(/id)</blue>\n- Templates need their own set <blue>(/id edit set)</blue>\n- Can contain multiple \"template\" marker <blue>(/id edit marker)</blue>\n- Can be automated by certain events <blue>(/id edit automate)</blue>"
help-marker: "<gray>Template markers are just like normal markers, but they do not appear on the map. They can be put on the map by a single command <blue>(/id mark <marker-id>)</blue>.\n\n- Markers will copy the position of target\n- Label & detail supports placeholder <blue>(%NAME%)</blue>"
create: "<green>Template created! Use <u>/<input-1> edit <...></u> to add new template markers, rules and more" #m #v1
delete: "<red>Template <input-1> deleted with all associated markers and sets!" #m #v1
setArg: "<green>Applied new value <color:#6e94ff><input-1></color>" #m #v1
addTemplateMarker: "<green>Added template marker <input-1> to the template! You can now quick place or automate it.\n" #m #v1
removeMarkerTemplate: "<gray>Removed template <color:#6e94ff><input-1></color> and all placed markers to it." #m #v1
updateMarker: "<green>Updated template marker <input-1> and all placed markers!" #m #v1
noValidTemplate: "<red><input-1> is not a valid template in this set!" #m #v1
invalidWorld: "<red>The set is not available in your current world!" #m
place: "<green>New <input-1> marker placed!" #m #v1
unplace: "<red>Removed your <input-1> marker!" #m #v1
mapAlreadyAdded: "<red>The map <input-1> is already added to the template!" #m #v1
mapNotAdded: "<red>The map <input-1> is not added to the template!" #m #v1
addMap: "<green>Added map <input-1> to the template! <grey>(This action didn't cloned existing markers)" #m #v1
confirmRemoval: "<grey>Are you sure you want to <red>delete</red> this template set? This will also delete <red>all markers inside</red>!\n\nConfirm with <red><u><input-1>"
#-----------------------------------------#
# Command Responses #
# Translation keys that fires on command #
# executions and help #
#-----------------------------------------#
event:
currentSetup: "Your current setup state (<input-1>)" #v1
buildHover: "Build a new marker with applied\nsettings. Red highlighted values\nare required!"
cancelHover: "Cancel the current marker builder.\nThis will delete all your values!"
clickToAdd: "Click to add a value"
#-----------------------------------------#
# Creator Messages #
# Translation keys that are used while #
# creating markers(set) #
#-----------------------------------------#
arg:
ID: "ID"
MARKER_SET: "MARKER SET"
POSITION: "POSITION"
LABEL: "LABEL"
ICON: "ICON"
ANCHOR: "ANCHOR"
MAX_DISTANCE: "MAX DISTANCE"
MIN_DISTANCE: "MIN DISTANCE"
ADD_POSITION: "ADD POSITION"
ADD_EDGE: "ADD EDGE"
DETAIL: "DETAIL"
LINK: "LINK"
NEW_TAB: "NEW TAB"
DEPTH_TEST: "DEPTH TEST"
LINE_WIDTH: "LINE WIDTH"
LINE_COLOR: "LINE COLOR"
FILL_COLOR: "FILL COLOR"
HEIGHT: "HEIGHT"
MAX_HEIGHT: "MAX HEIGHT"
POINTS: "POINTS"
X_RADIUS: "RADIUS X"
Z_RADIUS: "RADIUS Z"
MAP: "MAP"
TOGGLEABLE: "TOGGLEABLE"
DEFAULT_HIDDEN: "DEFAULT HIDDEN"
LISTED: "LISTED"
LISTING_POSITION: "LISTING POSITION"
arg-desc:
ID: "Internal ID to access the marker(-set)"
MARKER_SET: "Target marker-set where the marker\nshould be stored (provides world)"
POSITION: "Position where the marker will be \nplaced. (NOT the world)"
LABEL: "Displayed label in the marker menu"
ICON: "Image URL for displayed image on\ngiven position (POI exclusive)"
ANCHOR: "Offset for displayed image/html code (in pixel)"
MAX_DISTANCE: "Max distance to the camera at\nwhich the marker is shown"
MIN_DISTANCE: "Min distance to the camera at\nwhich the marker is shown"
ADD_POSITION: "Add more positions to a marker\nto define the path (Line exclusive)"
ADD_EDGE: "Add more edges to a marker\nto define the shape"
DETAIL: "Description that is shown on marker click"
LINK: "A redirect link on marker click"
NEW_TAB: "If the redirect link is opened\nin a new tab or replace BlueMap tab"
DEPTH_TEST: "If false the marker will always\nrender above everything. Otherwise\nit will respect blocking layers"
LINE_WIDTH: "The width of the line/outline (in pixel)"
LINE_COLOR: "Color of the line/outline (RGBA)\n- https://htmlcolorcodes.com -"
FILL_COLOR: "Color of the drawn field (RGBA)\n- https://htmlcolorcodes.com -"
HEIGHT: "The minimal height of the marker field.\nDefinition height for shape markers"
MAX_HEIGHT: "The maximal height of the marker field.\nSet to the same Y height/position\nfor a flat shape"
POINTS: "The amount of points used to render\nthe circle/ellipse. More points\ncreate cleaner borders but to many\npoints affect performance!"
X_RADIUS: "The ellipse radius to the +-x direction"
Z_RADIUS: "The ellipse radius to the +-z direction"
MAP: "Target BlueMap Map\nThis is not world exclusive!"
TOGGLEABLE: "If this is true, the marker-set\ncan be enabled or disabled in the menu"
DEFAULT_HIDDEN: "If this is true, the marker-set\nwill be hidden by default and can be\nenabled by the user. If 'TOGGELABLE' is\nfalse, this is the forced state"
LISTED: "If this is false, the marker will\nnot be listed in the BlueMap set menu"
LISTING_POSITION: "Position of the marker(-set) in the BlueMap menu.\n Higher values are higher in the list compared to others"

View File

@ -0,0 +1,5 @@
{
"language": "en",
"maxUserSets": 100,
"maxUserMarker": 1000
}

View File

@ -0,0 +1,48 @@
## ##
## BlueMap ##
## Core-Config ##
## ##
# By changing the setting (accept-download) below to TRUE you are indicating that you have accepted mojang's EULA (https://account.mojang.com/documents/minecraft_eula),
# you confirm that you own a license to Minecraft (Java Edition)
# and you agree that BlueMap will download and use a minecraft-client file (depending on the minecraft-version) from mojangs servers (https://piston-meta.mojang.com/) for you.
# This file contains resources that belong to mojang and you must not redistribute it or do anything else that is not compliant with mojang's EULA.
# BlueMap uses resources in this file to generate the 3D-Models used for the map and texture them. (BlueMap will not work without those resources.)
# 2025-07-19T16:02:57
accept-download: true
# The folder where bluemap saves data-files it needs during runtime or to save e.g. the render-progress to resume it later.
# Default is "bluemap"
data: "plugins/BlueMap/data"
# This changes the amount of threads that BlueMap will use to render the maps.
# A higher value can improve render-speed but could impact performance on the host machine.
# This should be always below or equal to the number of available processor-cores.
# Zero or a negative value means the amount of available processor-cores subtracted by the value.
# (So a value of -2 with 6 cores results in 4 render-processes)
# Default is 1
render-thread-count: 1
# Controls whether BlueMap should try to find and load mod-resources and datapacks from the server/world-directories.
# Default is true
scan-for-mod-resources: false
# If this is true, BlueMap might send really basic metrics reports containing only the implementation-type and the version that is being used to https://metrics.bluecolored.de/bluemap/
# This allows me to track the basic usage of BlueMap and helps me stay motivated to further develop this tool! Please leave it on :)
# An example report looks like this: {"implementation":"bukkit","version":"5.9","mcVersion":"?"}
# Default is true
metrics: false
# Config-section for debug-logging
log: {
# The file where the debug-log will be written to.
# Comment out to disable debug-logging completely.
# Java String formatting syntax can be used to add time, see: https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
# Default is no logging
file: "plugins/BlueMap/data/logs/debug.log"
#file: "bluemap/logs/debug_%1$tF_%1$tT.log"
# Whether the logger should append to an existing file, or overwrite it
# Default is false
append: false
}

View File

@ -0,0 +1 @@
{"render-threads-enabled":true,"maps":{"world":{"update-enabled":true},"world_the_end":{"update-enabled":true},"world_nether":{"update-enabled":true}},"hidden-players":[]}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -0,0 +1,19 @@
{
"$schema": "https://json.schemastore.org/web-manifest-combined.json",
"name": "BlueMap",
"short_name": "BlueMap",
"start_url": "..",
"display": "standalone",
"background_color": "#181818",
"theme_color": "#006EDE",
"description": "BlueMap is a tool that generates 3D maps of your Minecraft worlds and displays them in your browser.",
"icons": [{
"src": "logoCircle512.png",
"sizes": "512x512",
"type": "image/png"
},{
"src": "logoCircle64.png",
"sizes": "64x64",
"type": "image/png"
}]
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="50px" height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g>
<path fill="#FFFFFF" d="M37.468,17.123C37.468,29.596,25,45.346,25,45.346s-12.468-14.93-12.468-28.223
c0-6.885,5.581-12.468,12.468-12.468C31.885,4.655,37.468,10.237,37.468,17.123z"/>
</g>
<g>
<path fill="#333333" d="M26.901,12.559c0.034,1.046-0.732,1.885-1.954,1.885c-1.083,0-1.85-0.838-1.85-1.885
c0-1.082,0.804-1.92,1.918-1.92C26.169,10.639,26.901,11.478,26.901,12.559z M23.464,29.063l0.017-11.757h3.072l-0.018,11.757
H23.464z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 934 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

View File

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">
<meta name="description"
content="BlueMap is a tool that generates 3D maps of your Minecraft worlds and displays them in your browser">
<meta name="version" content="5.9">
<meta name="keywords" content="bluemap, map, minecraft, minecraft map">
<meta name="theme-color" content="#006EDE">
<meta name="og:site_name" content="BlueMap">
<meta name="og:title" content="BlueMap">
<meta name="og:description"
content="BlueMap is a tool that generates 3D maps of your Minecraft worlds and displays them in your browser">
<meta name="og:type" content="website">
<meta name="og:image" content="https://avatars.githubusercontent.com/u/42522657?s=200&v=4">
<meta name="robots" content="index,nofollow">
<link rel="icon" href="./assets/favicon-DEN7TZ5X.png">
<link rel="manifest" href="./assets/manifest-Ciy5FJKl.webmanifest">
<title>BlueMap</title>
<script type="module" crossorigin src="./assets/index-Q7i7_FGJ.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-BgiqB2rB.css">
</head>
<body>
<noscript>
<strong>Sorry but BlueMap doesn't work without JavaScript enabled.
Please <a href="https://www.enable-javascript.com/">enable</a> it to continue.</strong>
</noscript>
<div id="map-container"></div>
<div id="app"></div>
</body>
</html>

View File

@ -0,0 +1,144 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menu"
tooltip: "Menu"
}
maps: {
title: "Mapy"
button: "Mapy"
tooltip: "Seznam map"
}
markers: {
title: "Značky"
button: "Značky"
tooltip: "Seznam značek"
marker: "značka | značky"
markerSet: "sada značek | sady značek"
}
settings: {
title: "Nastavení"
button: "Nastavení"
}
goFullscreen: {
button: "Celá obrazovka"
}
resetCamera: {
button: "Obnovit kameru"
tooltip: "Obnovit kameru a pozici"
}
updateMap: {
button: "Aktualizovat mapu"
tooltip: "Vymazat mezipaměť dlaždic"
}
lighting: {
title: "Osvětlení"
dayNightSwitch: {
tooltip: "Den/noc"
}
sunlight: "Sluneční světlo"
ambientLight: "Ambientní osvětlení"
}
resolution: {
title: "Rozlišení"
high: "Vysoké (SSAA x2)"
normal: "Normální (Native x1)"
low: "Nízké (Upscaling x0.5)"
}
freeFlightControls: {
title: "Ovládání volného létání"
mouseSensitivity: "Citlivost myši"
invertMouseY: "Invertovat Y myši"
}
renderDistance: {
title: "Dohled"
hiresLayer: "Vrstva vysokého rozlišení"
lowersLayer: "Vrstva nízkého rozlišení"
}
theme: {
title: "Téma"
default: "Výchozí (systém/prohlížeč)"
dark: "Tmavé"
light: "Světlé"
}
debug: {
button: "Ladění"
}
resetAllSettings: {
button: "Obnovit všechna nastavení"
}
players: {
title: "Hráči"
tooltip: "Seznam hráčů"
}
compass: {
tooltip: "Kompas / sever"
}
controls: {
title: "Zobrazení / ovládání"
perspective: {
button: "Perspektiva"
tooltip: "Zobrazení perspektivy"
}
flatView: {
button: "Plochý"
tooltip: "Ortografické / ploché zobrazení"
}
freeFlight: {
button: "Volné létání"
tooltip: "Volné létání / režim pozorovatele"
}
}
language: {
title: "Jazyk"
}
blockTooltip: {
block: "Blok"
position: "Pozice"
chunk: "Chunk"
region: {
region: "Oblast"
file: "Soubor"
}
light: {
light: "Světlo"
sun: "Slunce"
block: "Blok"
}
}
info: {
title: "Informace"
button: "Informace"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Ovládání myší:</h2>
<table>
<tr><th>pohyb</th><td><kbd>levé tlačítko</kbd> + táhnutí</td></tr>
<tr><th>přiblížení</th><td><kbd>kolečko myši</kbd> (otáčení)</td></tr>
<tr><th>rotace / naklonění</th><td><kbd>pravé tlačítko</kbd> + táhnutí</td></tr>
</table>
</p>
<p>
<h2>Ovládání klávesnicí:</h2>
<table>
<tr><th>pohyb</th><td><kbd>wasd</kbd> / <kbd>šipky</kbd></td></tr>
<tr><th>přiblížení</th><td>Num. klávesnice: <kbd>+</kbd>/<kbd>-</kbd> nebo <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>rotace / naklonění</th><td><kbd>Levý Alt</kbd> + <kbd>wasd</kbd> / <kbd>šipky</kbd> nebo <kbd>Del</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Ovládání dotykem:</h2>
<table>
<tr><th>pohyb</th><td>dotyk + táhnutí</td></tr>
<tr><th>přiblížení</th><td>dotyk dvěma prsty + roztáhnutí</td></tr>
<tr><th>rotace / naklonění</th><td>dotyk dvěma prsty + rotace / pohyb nahoru/dolů</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Mapa byla vygenerována s &#9829; pomocí <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menü"
tooltip: "Menü"
}
map: {
unloaded: "Keine Karte geladen."
loading: "Lade Karte..."
errored: "Beim laden der Karte ist ein Fehler aufgetreten!"
}
maps: {
title: "Karten"
button: "Karten"
tooltip: "Kartenliste"
}
markers: {
title: "Marker"
button: "Marker"
tooltip: "Markerliste"
marker: "Marker | Marker"
markerSet: "Markerset | Markersets"
searchPlaceholder: "Suche..."
followPlayerTitle: "Spieler folgen"
sort {
title: "Sortieren nach"
by {
default: "Standard"
label: "Name"
distance: "Distanz"
}
}
}
settings: {
title: "Einstellungen"
button: "Einstellungen"
}
goFullscreen: {
button: "Vollbildmodus"
}
resetCamera: {
button: "Kamera zurücksetzen"
tooltip: "Kamera & Position zurücksetzen"
}
updateMap: {
button: "Karte aktualisieren"
tooltip: "Leere den Karten-Cache"
}
lighting: {
title: "Beleuchtung"
dayNightSwitch: {
tooltip: "Tag/Nacht"
}
sunlight: "Sonnenlicht"
ambientLight: "Umgebungslicht"
}
resolution: {
title: "Auflösung"
high: "Hoch (SSAA x2)"
normal: "Normal (Nativ x1)"
low: "Niedrig (Hochskalieren x0.5)"
}
mapControls: {
title: "Steuerung"
showZoomButtons: "Zoom-Buttons"
}
freeFlightControls: {
title: "Freie Kamera"
mouseSensitivity: "Maus-Sensitivität"
invertMouseY: "Maus Y umkehren"
}
renderDistance: {
title: "Renderdistanz"
hiresLayer: "Hires-Schicht"
lowersLayer: "Lowres-Schicht"
loadHiresWhileMoving: "Lade Hires während Bewegung"
off: "Off"
}
theme: {
title: "Farbmodus"
default: "Standard (System/Browser)"
dark: "Dunkel"
light: "Hell"
contrast: "Kontrast"
}
chunkBorders: {
button: "Chunkgrenzen anzeigen"
}
debug: {
button: "Debug"
}
resetAllSettings: {
button: "Einstellungen zurücksetzen"
}
players: {
title: "Spieler"
tooltip: "Spielerliste"
}
compass: {
tooltip: "Kompass / nach Norden ausrichten"
}
screenshot: {
title: "Screenshot"
button: "Screenshot machen"
clipboard: "In Zwischenablage kopieren"
}
controls: {
title: "Ansicht / Steuerung"
perspective: {
button: "Perspektiv-Sicht"
tooltip: "Perspektivische Sicht"
}
flatView: {
button: "Flache Sicht"
tooltip: "Orthographisch / Flache Sicht"
}
freeFlight: {
button: "Freie Kamera"
tooltip: "Freie Kamera / Zuschauermodus"
}
}
language: {
title: "Sprache"
}
blockTooltip: {
block: "Block"
position: "Position"
chunk: "Chunk"
region: {
region: "Region"
file: "Datei"
}
light: {
light: "Licht"
sun: "Sonne"
block: "Block"
}
}
info: {
title: "Info"
button: "Info"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Maussteuerung:</h2>
<table>
<tr><th>Bewegen</th><td><kbd>Linksklick</kbd> + ziehen</td></tr>
<tr><th>Zoomen</th><td><kbd>Mausrad</kbd> (scrollen)</td></tr>
<tr><th>Drehen / Schwenken</th><td><kbd>Rechtsklick</kbd> + ziehen</td></tr>
</table>
</p>
<p>
<h2>Tastatursteuerung:</h2>
<table>
<tr><th>Bewegen</th><td><kbd>wasd</kbd> / <kbd>Pfeiltasten</kbd></td></tr>
<tr><th>Zoomen</th><td>Nummernblock: <kbd>+</kbd>/<kbd>-</kbd> oder <kbd>Einfg</kbd>/<kbd>Pos 1</kbd></td></tr>
<tr><th>Drehen / Schwenken</th><td><kbd>Alt</kbd> + <kbd>wasd</kbd> / <kbd>Pfeiltasten</kbd> oder <kbd>Entf</kbd>/<kbd>Ende</kbd>/<kbd>Bild &uarr;</kbd>/<kbd>Bild &darr;</kbd></td></tr>
</table>
</p>
<p>
<h2>Touchsteuerung:</h2>
<table>
<tr><th>Bewegen</th><td>berühren + ziehen</td></tr>
<tr><th>Zoomen</th><td>mit zwei Fingern berühren + zusammen/auseinander ziehen</td></tr>
<tr><th>Drehen / Schwenken</th><td>mit zwei Fingern berühren + drehen / hoch/runter ziehen</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Diese Map wurde mit &#9829; von <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} generiert
</p>
"""
}
}

View File

@ -0,0 +1,175 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menu"
tooltip: "Menu"
}
map: {
unloaded: "No map loaded."
loading: "Loading map..."
errored: "There was an error trying to load this map!"
}
maps: {
title: "Maps"
button: "Maps"
tooltip: "Map-List"
}
markers: {
title: "Markers"
button: "Markers"
tooltip: "Marker-List"
marker: "marker | markers"
markerSet: "marker-set | marker-sets"
searchPlaceholder: "Search..."
followPlayerTitle: "Follow Player"
sort {
title: "Sort by"
by {
default: "default"
label: "name"
distance: "distance"
}
}
}
settings: {
title: "Settings"
button: "Settings"
}
goFullscreen: {
button: "Go Fullscreen"
}
resetCamera: {
button: "Reset Camera"
tooltip: "Reset Camera & Position"
}
updateMap: {
button: "Update Map"
tooltip: "Clear Tile Cache"
}
lighting: {
title: "Lighting"
dayNightSwitch: {
tooltip: "Day/Night"
}
sunlight: "Sunlight"
ambientLight: "Ambient-Light"
}
resolution: {
title: "Resolution"
high: "High (SSAA x2)"
normal: "Normal (Native x1)"
low: "Low (Upscaling x0.5)"
}
mapControls: {
title: "Map Controls"
showZoomButtons: "Show Zoom Buttons"
}
freeFlightControls: {
title: "Free-Flight Controls"
mouseSensitivity: "Mouse-Sensitivity"
invertMouseY: "Invert Mouse Y"
}
renderDistance: {
title: "Render Distance"
hiresLayer: "Hires layer"
lowersLayer: "Lowres layer"
loadHiresWhileMoving: "Load hires while moving"
off: "Off"
}
theme: {
title: "Theme"
default: "Default (System/Browser)"
dark: "Dark"
light: "Light"
contrast: "Contrast"
}
chunkBorders: {
button: "Show chunk borders"
}
debug: {
button: "Debug"
}
resetAllSettings: {
button: "Reset All Settings"
}
players: {
title: "Players"
tooltip: "Player-List"
}
compass: {
tooltip: "Compass / Face North"
}
screenshot: {
title: "Screenshot"
button: "Take Screenshot"
clipboard: "Copy to Clipboard"
}
controls: {
title: "View / Controls"
perspective: {
button: "Perspective"
tooltip: "Perspective-View"
}
flatView: {
button: "Flat"
tooltip: "Orthographic / Flat-View"
}
freeFlight: {
button: "Free-Flight"
tooltip: "Free-Flight / Spectator Mode"
}
}
language: {
title: "Language"
}
blockTooltip: {
block: "Block"
position: "Position"
chunk: "Chunk"
region: {
region: "Region"
file: "File"
}
light: {
light: "Light"
sun: "Sun"
block: "Block"
}
clipboard: "click to copy"
}
info: {
title: "Info"
button: "Info"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Mouse-Controls:</h2>
<table>
<tr><th>move</th><td><kbd>left-click</kbd> + drag</td></tr>
<tr><th>zoom</th><td><kbd>mousewheel</kbd> (scroll)</td></tr>
<tr><th>rotate / tilt</th><td><kbd>right-click</kbd> + drag</td></tr>
</table>
</p>
<p>
<h2>Keyboard-Controls:</h2>
<table>
<tr><th>move</th><td><kbd>wasd</kbd> / <kbd>arrow-keys</kbd></td></tr>
<tr><th>zoom</th><td>Numpad: <kbd>+</kbd>/<kbd>-</kbd> or <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>rotate / tilt</th><td><kbd>Left-Alt</kbd> + <kbd>wasd</kbd> / <kbd>arrow-keys</kbd> or <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Touch-Controls:</h2>
<table>
<tr><th>move</th><td>touch + drag</td></tr>
<tr><th>zoom</th><td>touch with two fingers + pinch</td></tr>
<tr><th>rotate / tilt</th><td>touch with two fingers + rotate / move up/down</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
This map has been generated with &#9829; using <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,151 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menú"
tooltip: "Menú"
}
maps: {
title: "Mapas"
button: "Mapas"
tooltip: "Lista de mapas"
}
markers: {
title: "Marcadores"
button: "Marcadores"
tooltip: "Lista de marcadores"
marker: "marcador | marcadores"
markerSet: "Conjunto de Marcadores | Conjuntos de Marcadores"
searchPlaceholder: "Buscar..."
followPlayerTitle: "Seguir Jugador"
}
settings: {
title: "Ajustes"
button: "Ajustes"
}
goFullscreen: {
button: "Pantalla Completa"
}
resetCamera: {
button: "Restablecer Cámara"
tooltip: "Restablecer Cámara y Posición"
}
updateMap: {
button: "Actualizar Mapa"
tooltip: "Limpiar Cache"
}
lighting: {
title: "Iluminación"
dayNightSwitch: {
tooltip: "Día/Noche"
}
sunlight: "Luz de Día"
ambientLight: "Luz Ambiental"
}
resolution: {
title: "Resolución"
high: "Alta (SSAA x2)"
normal: "Normal (Nativa x1)"
low: "Baja (Ampliada x0.5)"
}
freeFlightControls: {
title: "Controles de Vuelo Libre"
mouseSensitivity: "Sensibilidad de Ratón"
invertMouseY: "Invertir Eje Y del Ratón"
}
renderDistance: {
title: "Distancia de Renderizado"
hiresLayer: "Capa de Alta Resolución"
lowersLayer: "Capa de Baja Resolución"
}
theme: {
title: "Tema"
default: "Predeterminado (Sistema/Navegador)"
dark: "Oscuro"
light: "Claro"
}
debug: {
button: "Debug"
}
resetAllSettings: {
button: "Restaurar todo los ajustes"
}
players: {
title: "Jugadores"
tooltip: "Lista de Jugadores"
}
compass: {
tooltip: "Brújula / Norte"
}
screenshot: {
title: "Captura de Pantalla"
button: "Tomar Captura de Pantalla"
clipboard: "Copiar al Portapapeles"
}
controls: {
title: "Vista / Controles"
perspective: {
button: "Perspectiva"
tooltip: "Vista en perspectiva"
}
flatView: {
button: "Plano"
tooltip: "Ortogonal / Visualización Plana"
}
freeFlight: {
button: "Vuelo libre"
tooltip: "Vuelo libre / Modo espectador"
}
}
language: {
title: "Idioma"
}
blockTooltip: {
block: "Bloque"
position: "Posición"
chunk: "Chunk"
region: {
region: "Región"
file: "Archivo"
}
light: {
light: "Iluminación"
sun: "Sol"
block: "Bloque"
}
}
info: {
title: "Información"
button: "Información"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Control con ratón:</h2>
<table>
<tr><th>movimiento</th><td><kbd>clic izquierdo</kbd> + arrastrar</td></tr>
<tr><th>zoom</th><td><kbd>rueda del ratón</kbd> (desplazar)</td></tr>
<tr><th>rotar / inclinar</th><td><kbd>clic derecho</kbd> + arrastrar</td></tr>
</table>
</p>
<p>
<h2>Control con teclado:</h2>
<table>
<tr><th>movimiento</th><td><kbd>wasd</kbd> / <kbd>flechas de desplazamiento</kbd></td></tr>
<tr><th>zoom</th><td>Pad numérico: <kbd>+</kbd>/<kbd>-</kbd> ó <kbd>Insertar</kbd>/<kbd>Inicio</kbd></td></tr>
<tr><th>rotar / inclinar</th><td><kbd>Alt izquierdo</kbd> + <kbd>wasd</kbd> / <kbd>flechas de desplazamiento</kbd> ó <kbd>Supr</kbd>/<kbd>Fin</kbd>/<kbd>Re pág</kbd>/<kbd>Av Pág</kbd></td></tr>
</table>
</p>
<p>
<h2>Control con panel táctil:</h2>
<table>
<tr><th>movimiento</th><td>pulsa + arrastrar</td></tr>
<tr><th>zoom</th><td>pulsa con dos dedos + junta</td></tr>
<tr><th>rotar / inclinar</th><td>pulsa con dos dedos + rotar / desliza arriba/abajo</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Este mapa ha sido generado con &#9829; usando <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Valikko"
tooltip: "Valikko"
}
map: {
unloaded: "Ei karttaa ladattuna."
loading: "Ladataan karttaa..."
errored: "Karttaa ladatessa ilmeni ongelmia!"
}
maps: {
title: "Kartat"
button: "Kartat"
tooltip: "Karttalista"
}
markers: {
title: "Merkit"
button: "Merkit"
tooltip: "Merkkilista"
marker: "merkki | merkkiä"
markerSet: "merkkisetti | merkkisettiä"
searchPlaceholder: "Etsi..."
followPlayerTitle: "Seuraa pelaajaa"
sort {
title: "Järjestys"
by {
default: "oletus"
label: "nimi"
distance: "etäisyys"
}
}
}
settings: {
title: "Asetukset"
button: "Asetukset"
}
goFullscreen: {
button: "Mene kokoruudun tilaan"
}
resetCamera: {
button: "Nollaa kamera"
tooltip: "Nolla kamera ja sijainti"
}
updateMap: {
button: "Päivitä kartta"
tooltip: "Tyhjennä välimuisti"
}
lighting: {
title: "Valaistus"
dayNightSwitch: {
tooltip: "Päivä/Yö"
}
sunlight: "Auringonvalo"
ambientLight: "Ympäristön valo"
}
resolution: {
title: "Resoluutio"
high: "Korkea (SSAA x2)"
normal: "Normaali (Natiivi x1)"
low: "Alhainen (Skaalaus x0.5)"
}
mapControls: {
title: "Kartan ohjaimet"
showZoomButtons: "Näytä zoomauksen nappulat"
}
freeFlightControls: {
title: "Vapaan lennon ohjaimet"
mouseSensitivity: "Hiiren herkkyys"
invertMouseY: "Käännä hiiren Y-akseli"
}
renderDistance: {
title: "Näköetäisyys"
hiresLayer: "Korkealaatuinen kerros"
lowersLayer: "Matalalaatuinen kerros"
loadHiresWhileMoving: "Lataa korkealaatuinen kerros liikkuessa"
off: "Pois"
}
theme: {
title: "Teema"
default: "Oletus (Järjestelmä/Selain)"
dark: "Tumma"
light: "Vaalea"
contrast: "Kontrasti"
}
chunkBorders: {
button: "Näytä lohkojen rajat"
}
debug: {
button: "Debug"
}
resetAllSettings: {
button: "Nollaa kaikki asetukset"
}
players: {
title: "Pelaajat"
tooltip: "Pelaajalista"
}
compass: {
tooltip: "Kompassi / Katso pohjoiseen"
}
screenshot: {
title: "Kuvankaappaus"
button: "Ota kuvankaappaus"
clipboard: "Kopioi leikepöydälle"
}
controls: {
title: "Näkymä / Ohjaus"
perspective: {
button: "Perspektiivi"
tooltip: "Perspektiivi näkymä"
}
flatView: {
button: "Tasainen"
tooltip: "Ortografinen / Tasainen näkymä"
}
freeFlight: {
button: "Vapaa lento"
tooltip: "Vapaa lento / Katsojatila"
}
}
language: {
title: "Kieli"
}
blockTooltip: {
block: "Kuutio"
position: "Sijainti"
chunk: "Lohko"
region: {
region: "Alue"
file: "Tiedosto"
}
light: {
light: "Valo"
sun: "Aurinko"
block: "Kuutio"
}
}
info: {
title: "Tiedot"
button: "Tiedot"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Hiiriasetukset:</h2>
<table>
<tr><th>liiku</th><td><kbd>vasen painallus</kbd> + vedä</td></tr>
<tr><th>zoomaa</th><td><kbd>hiiren rulla</kbd> (rullaa)</td></tr>
<tr><th>käänny / kallista</th><td><kbd>oikea painallus</kbd> + vedä</td></tr>
</table>
</p>
<p>
<h2>Näppäimistöasetukset:</h2>
<table>
<tr><th>liiku</th><td><kbd>wasd</kbd> / <kbd>nuolinäppäimet</kbd></td></tr>
<tr><th>zoomaa</th><td>Numero näppäimistö: <kbd>+</kbd>/<kbd>-</kbd> tai <kbd>Ins-näppäin</kbd>/<kbd>Home-näppäin</kbd></td></tr>
<tr><th>käänny / kallista</th><td><kbd>Vasen-Alt</kbd> + <kbd>wasd</kbd> / <kbd>nuolinäppäimet</kbd> tai <kbd>Delete-näppäin</kbd>/<kbd>End-näppäin</kbd>/<kbd>Page Up -näppäin</kbd>/<kbd>Page Down -näppäin</kbd></td></tr>
</table>
</p>
<p>
<h2>Kosketusasetukset:</h2>
<table>
<tr><th>liiku</th><td>kosketa + vedä</td></tr>
<tr><th>zoomaa</th><td>kosketa kahdella sormella + nipistä</td></tr>
<tr><th>käänny / kallista</th><td>kosketa kahdella sormella + käännä / liiku ylös/alas</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Tämä kartta on tehty rakkaudella &#9829; käyttäen <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} -ohjelmaa
</p>
"""
}
}

View File

@ -0,0 +1,171 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menu"
tooltip: "Menu"
}
map: {
unloaded: "Pas de carte chargée."
loading: "Chargement de la carte..."
errored: "Il y a eu une erreur lors du chargement de la carte !"
}
maps: {
title: "Cartes"
button: "Cartes"
tooltip: "Liste des cartes"
}
markers: {
title: "Balises"
button: "Balises"
tooltip: "Liste des balises"
marker: "balise | balises"
markerSet: "Collection de balises | Collections de balises"
searchPlaceholder: "Rechercher..."
followPlayerTitle: "Suivre ce Joueur"
sort {
title: "Trier par"
by {
default: "défaut"
label: "nom"
distance: "distance"
}
}
}
settings: {
title: "Paramètres"
button: "Paramètres"
}
goFullscreen: {
button: "Plein Écran"
}
resetCamera: {
button: "Réinitialiser la Caméra"
tooltip: "Réinitialiser la Caméra et la Position"
}
updateMap: {
button: "Mettre à jour la Carte"
tooltip: "Nettoyer le Cache des Tuiles"
}
lighting: {
title: "Lumière"
dayNightSwitch: {
tooltip: "Jour/Nuit"
}
sunlight: "Lumière du Soleil"
ambientLight: "Lumière Ambiante"
}
resolution: {
title: "Résolution"
high: "Haute (SSAA x2)"
normal: "Normale (Native x1)"
low: "Basse (Upscaling x0.5)"
}
mapControls: {
title: "Contrôles de la Carte"
showZoomButtons: "Montrer les Boutons de Zoom"
}
freeFlightControls: {
title: "Contrôles du Vol Libre"
mouseSensitivity: "Sensibilité de la Souris"
invertMouseY: "Inverser l\'Y de la Souris"
}
renderDistance: {
title: "Distance de Rendu"
hiresLayer: "Couche Haute Définition"
lowersLayer: "Couche Basse Définition"
loadHiresWhileMoving: "Charger la haute définition en bougeant"
off: "Désactivé"
}
theme: {
title: "Thème"
default: "Par Défaut (Système/Navigateur)"
dark: "Sombre"
light: "Clair"
contrast: "Contrasté"
}
debug: {
button: "Debogage"
}
resetAllSettings: {
button: "Réinitialiser tous les Paramètres"
}
players: {
title: "Joueurs"
tooltip: "Liste des Joueurs"
}
compass: {
tooltip: "Boussole / Pointer le Nord"
}
screenshot: {
title: "Capture d\'écran"
button: "Prendre une Capture d\'écran"
clipboard: "Copier la Capture"
}
controls: {
title: "Vue / Contrôles"
perspective: {
button: "Perspective"
tooltip: "Vue en Perspective"
}
flatView: {
button: "Plate"
tooltip: "Orthographique / Vue Plate"
}
freeFlight: {
button: "Vol Libre"
tooltip: "Vol Libre / Mode Spectateur"
}
}
language: {
title: "Langue"
}
blockTooltip: {
block: "Bloc"
position: "Position"
chunk: "Tronçon"
region: {
region: "Région"
file: "Fichier"
}
light: {
light: "Lumière"
sun: "Soleil"
block: "Bloc"
}
}
info: {
title: "Info"
button: "Info"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Contrôles de la Souris :</h2>
<table>
<tr><th>déplacer</th><td><kbd>clic-gauche</kbd> + glisser</td></tr>
<tr><th>zoomer</th><td><kbd>molette</kbd> (défiler)</td></tr>
<tr><th>tourner / incliner</th><td><kbd>clic-droit</kbd> + glisser</td></tr>
</table>
</p>
<p>
<h2>Contrôles du Clavier :</h2>
<table>
<tr><th>déplacer</th><td><kbd>zqsd</kbd> / <kbd>flèches directionnelles</kbd></td></tr>
<tr><th>zoomer</th><td>Pavé Numérique : <kbd>+</kbd>/<kbd>-</kbd> ou <kbd>Inser</kbd>/<kbd>Début</kbd></td></tr>
<tr><th>tourner / incliner</th><td><kbd>Alt-Gauche</kbd> + <kbd>zqsd</kbd> / <kbd>flèches</kbd> ou <kbd>Suppr</kbd>/<kbd>Fin</kbd>/<kbd>Page Haut</kbd>/<kbd>Page Bas</kbd></td></tr>
</table>
</p>
<p>
<h2>Contrôles Tactiles :</h2>
<table>
<tr><th>déplacer</th><td>toucher + glisser</td></tr>
<tr><th>zoomer</th><td>toucher avec 2 doigts + pincement</td></tr>
<tr><th>tourner / incliner</th><td>toucher avec 2 doigts + tourner / haut/bas</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Cette carte a été générée avec &#9829; par <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,146 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "मेन्यू"
tooltip: "मेन्यू"
}
maps: {
title: "नक्शे"
button: "नक्शे"
tooltip: "मानचित्र-सूची"
}
markers: {
title: "मार्करों"
button: "मार्करों"
tooltip: "मार्कर-सूची"
marker: "मार्कर | मार्करों"
markerSet: "मार्कर-सेट | मार्कर-सेट"
searchPlaceholder: "खोज..."
followPlayerTitle: "प्लेयर को फॉलो करें"
}
settings: {
title: "सेटिंग्स"
button: "सेटिंग्स"
}
goFullscreen: {
button: "पूर्णस्क्रीन मोड"
}
resetCamera: {
button: "कैमरा रीसेट करें"
tooltip: "कैमरा और स्थिति रीसेट करें"
}
updateMap: {
button: "नक्शा अपडेट करें"
tooltip: "टाइल कैश साफ़ करें"
}
lighting: {
title: "प्रकाश"
dayNightSwitch: {
tooltip: "दिन हो या रात"
}
sunlight: "सूरज की रोशनी"
ambientLight: "परिवेश प्रकाश"
}
resolution: {
title: "संकल्प"
high: "उच्च (SSAA x2)"
normal: "सामान्य (देशी x1)"
low: "कम (अप स्केलिंग x0.5)"
}
freeFlightControls: {
title: "मुक्त उड़ान नियंत्रण"
mouseSensitivity: "माउस-संवेदनशीलता"
invertMouseY: "माउस-संवेदनशीलता"
}
renderDistance: {
title: "रेंडर दूरी"
hiresLayer: "परत काम देता है"
lowersLayer: "निचली परत"
}
theme: {
title: "थीम"
default: "डिफ़ॉल्ट (सिस्टम / ब्राउज़र)"
dark: "डार्क"
light: "प्रकाश"
}
debug: {
button: "डिबग"
}
resetAllSettings: {
button: "सभी सेटिंग्स रीसेट करें"
}
players: {
title: "खिलाड़ी"
tooltip: "प्लेयर-सूची"
}
compass: {
tooltip: "कम्पास / फेस नॉर्थ"
}
controls: {
title: "देखें / नियंत्रण"
perspective: {
button: "परिप्रेक्ष्य"
tooltip: "परिप्रेक्ष्य-दृश्य"
}
flatView: {
button: "फ्लैट"
tooltip: "ऑर्थोग्राफिक / फ्लैट-व्यू"
}
freeFlight: {
button: "फ्री-फ्लाइट"
tooltip: "फ्री-फ्लाइट / दर्शक मोड"
}
}
language: {
title: "भाषा"
}
blockTooltip: {
block: "ब्लॉक"
position: "स्थिति"
chunk: "चंक"
region: {
region: "क्षेत्र"
file: "फ़ाइल"
}
light: {
light: "प्रकाश"
sun: "सूर्य"
block: "ब्लॉक"
}
}
info: {
title: "जानकारी"
button: "जानकारी"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>माउस-नियंत्रण:</h2>
<table>
<tr><th>कदम</th><td><kbd>बाएँ क्लिक करें</kbd> + खींचें</td></tr>
<tr><th>ज़ूम</th><td><kbd>माउसव्हील</kbd> (स्क्रॉल)</td></tr>
<tr><th>घुमाएँ / झुकाव</th><td><kbd>राइट-क्लिक करें</kbd> + खींचें</td></tr>
</table>
</p>
<p>
<h2>कीबोर्ड पर नियंत्रण:</h2>
<table>
<tr><th>कदम</th><td><kbd>wasd</kbd> / <kbd>तीर कुंजी</kbd></td></tr>
<tr><th>ज़ूम</th><td>Numpad: <kbd>या</kbd>/<kbd>इन</kbd> होम <kbd>इन</kbd>/<kbd>होम</kbd></td></tr>
<tr><th>घुमाएँ / झुकाव</th><td><kbd>बाईं-Alt</kbd> + <kbd>wasd</kbd> / <kbd>तीर कुंजी</kbd> या <kbd>हटाएं</kbd>/<kbd>अंत</kbd>/<kbd>पृष्ठ</kbd>/<kbd>पृष्ठ के नीचे</kbd></td></tr>
</table>
</p>
<p>
<h2>स्पर्श नियंत्रण:</h2>
<table>
<tr><th>कदम</th><td>टच + खींचें</td></tr>
<tr><th>ज़ूम</th><td>दो उंगलियों के साथ स्पर्श + चुटकी</td></tr>
<tr><th>घुमाएँ / झुकाव</th><td>दो उंगलियों के साथ टच + घुमाएँ/ऊपर / नीचे ले जाएँ</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
का उपयोग कर उत्पन्न <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,146 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menü"
tooltip: "Menü"
}
maps: {
title: "Térképek"
button: "Térképek"
tooltip: "Térképlista"
}
markers: {
title: "Jelölők"
button: "Jelölők"
tooltip: "Jelölőlista"
marker: "jelölő | jelölők"
markerSet: "jelölőkészlet | jelölőkészletek"
searchPlaceholder: "Keresés..."
followPlayerTitle: "Játékos követése"
}
settings: {
title: "Beállítások"
button: "Beállítások"
}
goFullscreen: {
button: "Teljes képernyős mód bekapcsolása"
}
resetCamera: {
button: "Kamera visszaállítása"
tooltip: "Kamera & pozíció visszaállítása"
}
updateMap: {
button: "Térkép frissítése"
tooltip: "Csempe gyorsítótárának törlése"
}
lighting: {
title: "Villámlás"
dayNightSwitch: {
tooltip: "Reggel/Éjszaka"
}
sunlight: "Napfény"
ambientLight: "Háttérvilágítás"
}
resolution: {
title: "Felbontás"
high: "Magas (SSAA x2)"
normal: "Normál (Native x1)"
low: "Alacsony (Upscaling x0.5)"
}
freeFlightControls: {
title: "Szabadrepülési vezérlők"
mouseSensitivity: "Egér érzékenység"
invertMouseY: "Egér Y tengelyének invertálása"
}
renderDistance: {
title: "Látótávolság"
hiresLayer: "Hires réteg"
lowersLayer: "Lowres réteg"
}
theme: {
title: "Téma"
default: "Alapértelmezett (Rendszer/Böngésző)"
dark: "Sötét"
light: "Világos"
}
debug: {
button: "Hibakeresés"
}
resetAllSettings: {
button: "Minden beállítás alaphelyzetbe állítása"
}
players: {
title: "Játékosok"
tooltip: "Játékos lista"
}
compass: {
tooltip: "Iránytű / Északra fordulás"
}
controls: {
title: "Nézet / Vezérlés"
perspective: {
button: "Perspektivikus"
tooltip: "Perspektivikus nézet"
}
flatView: {
button: "Lapos"
tooltip: "Orthographic / Lapos nézet"
}
freeFlight: {
button: "Szabadrepülés"
tooltip: "Szabadrepülési / Szemlélő mód"
}
}
language: {
title: "Nyelv"
}
blockTooltip: {
block: "Blokk"
position: "Pozíció"
chunk: "Chunk"
region: {
region: "Régió"
file: "Fájl"
}
light: {
light: "Fény"
sun: "Nap"
block: "Blokk"
}
}
info: {
title: "Infó"
button: "Infó"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Egeres vezérlés:</h2>
<table>
<tr><th>mozgatás</th><td><kbd>bal klikk</kbd> + húzás</td></tr>
<tr><th>zoomolás</th><td><kbd>görgő</kbd> (görgetés)</td></tr>
<tr><th>elforgatás / döntés</th><td><kbd>jobb klikk</kbd> + húzás</td></tr>
</table>
</p>
<p>
<h2>Billentyűzetes vezérlés:</h2>
<table>
<tr><th>mozgatás</th><td><kbd>wasd</kbd> / <kbd>nyilak</kbd></td></tr>
<tr><th>zoomolás</th><td>Numpad: <kbd>+</kbd>/<kbd>-</kbd> or <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>elforgatás / döntés</th><td><kbd>Bal alt</kbd> + <kbd>wasd</kbd> / <kbd>arrow-keys</kbd> vagy <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Érintéses vezérlés:</h2>
<table>
<tr><th>mozgatás</th><td>érintés + húzás</td></tr>
<tr><th>zoomolás</th><td>két ujjal érintés + csípés</td></tr>
<tr><th>elforgatás / döntés</th><td>két ujjal érintés + forgatás / felfele/lefele mozgatás</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Ez a térkép &#9829; a <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} segítségével lett generálva
</p>
"""
}
}

View File

@ -0,0 +1,175 @@
{
  pageTitle: "BlueMap - {map}"
  menu: {
    title: "Menu"
    tooltip: "Menu"
  }
  map: {
    unloaded: "Peta tidak tersedia."
    loading: "Memuat peta..."
    errored: "Terjadi kesalahan saat memuat peta ini!"
  }
  maps: {
    title: "Peta-Peta"
    button: "Peta-Peta"
    tooltip: "Daftar Peta"
  }
  markers: {
    title: "Penanda"
    button: "Penanda"
    tooltip: "Daftar Penanda"
    marker: "penanda | penanda"
    markerSet: "set-penanda | set-penanda"
    searchPlaceholder: "Cari..."
    followPlayerTitle: "Ikuti Pemain"
    sort {
      title: "Urutkan berdasarkan"
      by {
        default: "bawaan"
        label: "nama"
        distance: "jarak"
      }
    }
  }
  settings: {
    title: "Pengaturan"
    button: "Pengaturan"
  }
  goFullscreen: {
    button: "Layar Penuh"
  }
  resetCamera: {
    button: "Atur Ulang Kamera"
    tooltip: "Atur Ulang Kamera & Posisi"
  }
  updateMap: {
    button: "Perbarui Peta"
    tooltip: "Bersihkan Tembolok Ubin"
  }
  lighting: {
    title: "Pencahayaan"
    dayNightSwitch: {
      tooltip: "Siang/Malam"
    }
    sunlight: "Cahaya Matahari"
    ambientLight: "Cahaya Ambien"
  }
  resolution: {
    title: "Resolusi"
    high: "Tinggi (SSAA x2)"
    normal: "Normal (Native x1)"
    low: "Rendah (Upscaling x0.5)"
  }
  mapControls: {
    title: "Kontrol Peta"
    showZoomButtons: "Tampilkan Tombol Zum"
  }
  freeFlightControls: {
    title: "Kontrol Free-Flight"
    mouseSensitivity: "Sensitivitas Tetikus"
    invertMouseY: "Balikkan Tetikus Y"
  }
  renderDistance: {
    title: "Jarak Render"
    hiresLayer: "Layer resolusi tinggi"
    lowersLayer: "Layer resolusi rendah"
    loadHiresWhileMoving: "Muat resolusi tinggi saat bergerak"
    off: "Mati"
  }
  theme: {
    title: "Tema"
    default: "Bawaan (Sistem/Peramban)"
    dark: "Gelap"
    light: "Terang"
contrast: "Kontras"
  }
  chunkBorders: {
    button: "Tampilkan batas bongkahan"
  }
  debug: {
    button: "Awakutu"
  }
  resetAllSettings: {
    button: "Reset Semua Pengaturan"
  }
  players: {
    title: "Pemain"
    tooltip: "Daftar Pemain"
  }
  compass: {
    tooltip: "Kompas / Hadap Utara"
  }
  screenshot: {
    title: "Screenshot"
    button: "Ambil Tangkapan Layar"
    clipboard: "Salin ke Papan Klip"
  }
  controls: {
    title: "Tampilan / Kontrol"
    perspective: {
      button: "Perspektif"
      tooltip: "Tampilan Perspektif"
    }
    flatView: {
      button: "Datar"
      tooltip: "Tampilan Ortografik / Datar"
    }
    freeFlight: {
      button: "Free-Flight"
      tooltip: "Mode Free-Flight / Spektator"
    }
  }
  language: {
    title: "Bahasa"
  }
  blockTooltip: {
    block: "Blok"
    position: "Posisi"
    chunk: "Bongkahan"
    region: {
      region: "Wilayah"
      file: "Berkas"
    }
    light: {
      light: "Cahaya"
      sun: "Matahari"
      block: "Blok"
    }
    clipboard: "klik untuk menyalin"
  }
  info: {
    title: "Info"
    button: "Info"
    content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
    <h2>Kontrol Tetikus:</h2>
    <table>
        <tr><th>gerak</th><td><kbd>klik kiri</kbd> + seret</td></tr>
        <tr><th>zoom</th><td><kbd>roda tetikus</kbd> (gulir)</td></tr>
        <tr><th>putar / miringkan</th><td><kbd>klik kanan</kbd> + seret</td></tr>
    </table>
</p>
<p>
    <h2>Kontrol Keyboard:</h2>
    <table>
        <tr><th>gerak</th><td><kbd>wasd</kbd> / <kbd>tombol panah</kbd></td></tr>
        <tr><th>zoom</th><td>Numpad: <kbd>+</kbd>/<kbd>-</kbd> atau <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
        <tr><th>putar / miringkan</th><td><kbd>Left-Alt</kbd> + <kbd>wasd</kbd> / <kbd>tombol panah</kbd> atau <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
    </table>
</p>
<p>
    <h2>Kontrol Sentuh:</h2>
    <table>
        <tr><th>gerak</th><td>sentuh + seret</td></tr>
        <tr><th>zoom</th><td>sentuh dengan dua jari + cubit</td></tr>
        <tr><th>putar / miringkan</th><td>sentuh dengan dua jari + putar / gerakkan ke atas/bawah</td></tr>
    </table>
</p>
<br><hr>
<p class="info-footer">
    Peta ini dibuat dengan &#9829; menggunakan <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
  }
}

View File

@ -0,0 +1,144 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menu"
tooltip: "Menu"
}
maps: {
title: "Mappe"
button: "Mappe"
tooltip: "Map-List"
}
markers: {
title: "Marcatori"
button: "Marcatori"
tooltip: "Lista-Marcatori"
marker: "marcatore | marcatori"
markerSet: "set-di-marcatori | sets-di-marcatori"
}
settings: {
title: "Impostazioni"
button: "Impostazioni"
}
goFullscreen: {
button: "Metti Lo Schermo Pieno"
}
resetCamera: {
button: "Resetta La Telecamera"
tooltip: "Resetta La Telecamera E La Posizione"
}
updateMap: {
button: "Aggiorna Mappa"
tooltip: "Pulisci La Chace Delle Caselle"
}
lighting: {
title: "Illuminazione"
dayNightSwitch: {
tooltip: "Giorno/Notte"
}
sunlight: "Luce"
ambientLight: "Luce-Ambientale"
}
resolution: {
title: "Risoluzione"
high: "Alta (SSAA x2)"
normal: "Normale (Nativa x1)"
low: "Bassa (Upscaling x0.5)"
}
freeFlightControls: {
title: "Controlli Free-Flight"
mouseSensitivity: "Sensitivita-Mouse"
invertMouseY: "Inverti Y Del Mouse"
}
renderDistance: {
title: "Distanza Rendering"
hiresLayer: "Layer Alta Risoluzione"
lowersLayer: "Layer Bassa Risoluzione"
}
theme: {
title: "Tema"
default: "Default (Sistema/Browser)"
dark: "Scuro"
light: "Chiaro"
}
debug: {
button: "Debug"
}
resetAllSettings: {
button: "Ripristina Impostazioni"
}
players: {
title: "Giocatori"
tooltip: "Lista-Giocatori"
}
compass: {
tooltip: "Compasso / Verso Nord"
}
controls: {
title: "Visuale / Controlli"
perspective: {
button: "Prospettiva"
tooltip: "Visuale-Prospettiva"
}
flatView: {
button: "Piatta"
tooltip: "Ortografica / Visuale-Piatta"
}
freeFlight: {
button: "Free-Flight"
tooltip: "Free-Flight / Modalita Spettatore"
}
}
language: {
title: "Lingua"
}
blockTooltip: {
block: "Blocco"
position: "Posizione"
chunk: "Chunk"
region: {
region: "Regione"
file: "File"
}
light: {
light: "Luminosita"
sun: "Sole"
block: "Blocco"
}
}
info: {
title: "Informazioni"
button: "Informazioni"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Controlli-Mouse:</h2>
<table>
<tr><th>movimento</th><td><kbd>tasto-sinistro</kbd> + scorrimento</td></tr>
<tr><th>zoom</th><td><kbd>rotellina</kbd> (scroll)</td></tr>
<tr><th>rotazione / inclinazione</th><td><kbd>tasto-destro</kbd> + scorrimento</td></tr>
</table>
</p>
<p>
<h2>Controlli-Tastiera:</h2>
<table>
<tr><th>movimento</th><td><kbd>wasd</kbd> / <kbd>tasti-direzionali</kbd></td></tr>
<tr><th>zoom</th><td>Numpad: <kbd>+</kbd>/<kbd>-</kbd> or <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>rotazione / inclinazione</th><td><kbd>Alt-Sinistro</kbd> + <kbd>wasd</kbd> / <kbd>tasti-direzionali</kbd> or <kbd>Rimuovi</kbd>/<kbd>End</kbd>/<kbd>Pagina Su</kbd>/<kbd>Pagina Giu</kbd></td></tr>
</table>
</p>
<p>
<h2>Touch-Controls:</h2>
<table>
<tr><th>movimento</th><td>tocco + scorrimento</td></tr>
<tr><th>zoom</th><td>tocco con due dita + pizzico</td></tr>
<tr><th>rotazione / inclinazione</th><td>tocco con due dita + rotazione / muovi in alto/basso</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Questa mappa e' stata generata con &#9829; usando <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,175 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "メニュー"
tooltip: "メニューを表示"
}
map: {
unloaded: "マップがロードされていません。"
loading: "マップをロードしています…"
errored: "このマップのロード中にエラーが発生しました!"
}
maps: {
title: "マップ"
button: "マップ"
tooltip: "マップ一覧"
}
markers: {
title: "マーカー"
button: "マーカー"
tooltip: "マーカー一覧"
marker: "マーカー | マーカー"
markerSet: "マーカーグループ | マーカーグループ"
searchPlaceholder: "検索…"
followPlayerTitle: "プレイヤーを追跡"
sort {
title: "並べ替え"
by {
default: "デフォルト"
label: "名前"
distance: "距離"
}
}
}
settings: {
title: "設定"
button: "設定"
}
goFullscreen: {
button: "フルスクリーン"
}
resetCamera: {
button: "カメラをリセット"
tooltip: "カメラの位置と角度をリセット"
}
updateMap: {
button: "地形情報を更新"
tooltip: "キャッシュを削除して最新情報に更新する"
}
lighting: {
title: "明るさ"
dayNightSwitch: {
tooltip: "昼夜切り替え"
}
sunlight: "時間帯"
ambientLight: "明るさ"
}
resolution: {
title: "解像度"
high: "高 (SSAA x2)"
normal: "標準 (ネイティブ x1)"
low: "低 (アップスケーリング x0.5)"
}
mapControls: {
title: "マップ"
showZoomButtons: "ズームボタンを表示"
}
freeFlightControls: {
title: "スペクテイターモード"
mouseSensitivity: "マウス感度"
invertMouseY: "Y軸の反転"
}
renderDistance: {
title: "描画距離"
hiresLayer: "高品質レイヤー"
lowersLayer: "低品質レイヤー"
loadHiresWhileMoving: "移動中に高品質レイヤーをロード" // "移動中に高品質レイヤーを読み込む" is too long
off: "オフ"
}
theme: {
title: "テーマ"
default: "デフォルト (システム/ブラウザ)"
dark: "ダーク"
light: "ライト"
contrast: "ハイコントラスト"
}
chunkBorders: {
button: "チャンクの境界を表示"
}
debug: {
button: "デバッグ情報を表示"
}
resetAllSettings: {
button: "すべての設定をリセット"
}
players: {
title: "プレイヤー"
tooltip: "プレイヤー一覧"
}
compass: {
tooltip: "方角 / クリックで方角をリセット"
}
screenshot: {
title: "スクリーンショット"
button: "スクリーンショットを撮る"
clipboard: "クリップボードにコピー"
}
controls: {
title: "視点"
perspective: {
button: "立体"
tooltip: "立体表示"
}
flatView: {
button: "平面"
tooltip: "平面表示"
}
freeFlight: {
button: "スペクテイター"
tooltip: "スペクテイターモード"
}
}
language: {
title: "言語"
}
blockTooltip: {
block: "ブロック"
position: "座標"
chunk: "チャンク"
region: {
region: "リージョン"
file: "ファイル"
}
light: {
light: "明るさ"
sun: "太陽光"
block: "光源"
}
clipboard: "クリックしてコピー"
}
info: {
title: "情報"
button: "情報"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>マウス操作:</h2>
<table>
<tr><th>移動</th><td><kbd>左クリック</kbd> + ドラッグ</td></tr>
<tr><th>ズーム</th><td><kbd>マウスホイール</kbd> (スクロール)</td></tr>
<tr><th>回転 / 傾き</th><td><kbd>右クリック</kbd> + ドラッグ</td></tr>
</table>
</p>
<p>
<h2>キーボード操作:</h2>
<table>
<tr><th>移動</th><td><kbd>wasd</kbd> / <kbd>矢印キー</kbd></td></tr>
<tr><th>ズーム</th><td>テンキー: <kbd>+</kbd>/<kbd>-</kbd> または <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>回転 / 傾き</th><td><kbd>左Alt</kbd> + <kbd>wasd</kbd> / <kbd>矢印キー</kbd> または <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>タッチ操作:</h2>
<table>
<tr><th>移動</th><td>1本指でタッチしてドラッグ</td></tr>
<tr><th>ズーム</th><td>2本指でタッチしてピンチ</td></tr>
<tr><th>回転 / 傾き</th><td>2本指でドラッグ + 回転 / 昇降</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
このマップは&#9829;を込めて<a href="https://bluecolo.red/bluemap">BlueMap</a> {version}で生成されています
</p>
"""
}
}

View File

@ -0,0 +1,175 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "메뉴"
tooltip: "메뉴를 표시"
}
map: {
unloaded: "맵이 로드되지 않았습니다."
loading: "맵을 로드하는 중입니다…"
errored: "이 맵을 로드하는 중에 오류가 발생했습니다!"
}
maps: {
title: "맵"
button: "맵"
tooltip: "맵 목록"
}
markers: {
title: "마커"
button: "마커"
tooltip: "마커 목록"
marker: "마커 | 마커"
markerSet: "마커 그룹 | 마커 그룹"
searchPlaceholder: "검색…"
followPlayerTitle: "플레이어 따라가기"
sort: {
title: "정렬 기준"
by: {
default: "기본"
label: "이름"
distance: "거리"
}
}
}
settings: {
title: "설정"
button: "설정"
}
goFullscreen: {
button: "전체화면"
}
resetCamera: {
button: "카메라 리셋"
tooltip: "카메라 위치와 각도를 리셋"
}
updateMap: {
button: "맵 정보 갱신"
tooltip: "맵 타일 캐시를 삭제합니다."
}
lighting: {
title: "광원"
dayNightSwitch: {
tooltip: "낮/밤 전환"
}
sunlight: "자연광"
ambientLight: "주변광"
}
resolution: {
title: "해상도"
high: "높음 (SSAA x2)"
normal: "표준 (네이티브 x1)"
low: "낮음 (업스케일링 x0.5)"
}
mapControls: {
title: "맵"
showZoomButtons: "확대/축소 버튼 표시"
}
freeFlightControls: {
title: "자유 이동 조작"
mouseSensitivity: "마우스 감도"
invertMouseY: "마우스 Y축 반전"
}
renderDistance: {
title: "렌더 거리"
hiresLayer: "고해상도 레이어"
lowersLayer: "저해상도 레이어"
loadHiresWhileMoving: "이동 중 고해상도 레이어 로딩"
off: "끄기"
}
theme: {
title: "테마"
default: "기본값 (시스템/브라우저)"
dark: "어두운"
light: "밝은"
contrast: "고대비"
}
chunkBorders: {
button: "청크 경계 표시"
}
debug: {
button: "디버그 정보 표시"
}
resetAllSettings: {
button: "설정값 재설정"
}
players: {
title: "플레이어"
tooltip: "플레이어 목록"
}
compass: {
tooltip: "나침반 / 북쪽 보기"
}
screenshot: {
title: "스크린샷"
button: "스크린샷 찍기"
clipboard: "클립보드에 복사"
}
controls: {
title: "시점 / 컨트롤"
perspective: {
button: "투시"
tooltip: "투시로 보기"
}
flatView: {
button: "평면"
tooltip: "직각투영 / 평면으로 보기"
}
freeFlight: {
button: "자유 이동"
tooltip: "자유 이동 / 관전모드로 보기"
}
}
language: {
title: "언어"
}
blockTooltip: {
block: "블록"
position: "위치"
chunk: "청크"
region: {
region: "지역"
file: "파일"
}
light: {
light: "광원"
sun: "자연"
block: "블럭"
}
clipboard: "클릭하여 복사"
}
info: {
title: "정보"
button: "정보"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>마우스 조작:</h2>
<table>
<tr><th>이동</th><td><kbd>좌클릭</kbd> + 끌기</td></tr>
<tr><th>확대</th><td><kbd>마우스 휠</kbd> (스크롤)</td></tr>
<tr><th>회전 / 기울이기</th><td><kbd>우클릭</kbd> + 끌기</td></tr>
</table>
</p>
<p>
<h2>키보드 조작:</h2>
<table>
<tr><th>이동</th><td><kbd>wasd</kbd> / <kbd>화살표 키</kbd></td></tr>
<tr><th>확대</th><td>넘버패드: <kbd>+</kbd>/<kbd>-</kbd> 또는 <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>회전 / 기울이기</th><td><kbd>왼쪽 Alt</kbd> + <kbd>wasd</kbd> / <kbd>화살표 키</kbd> 또는 <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>터치 조작:</h2>
<table>
<tr><th>이동</th><td>터치 + 끌기</td></tr>
<tr><th>확대</th><td>두 손가락으로 터치 + 꼬집기</td></tr>
<tr><th>회전 / 기울이기</th><td>두 손가락으로 터치 + 회전 / 위/아래로 끌기</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
이 맵은 &#9829;을 담아 <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} 을 이용해 제작되었습니다
</p>
"""
}
}

View File

@ -0,0 +1,145 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Izvēlne"
tooltip: "Izvēlne"
}
maps: {
title: "Kartes"
button: "Kartes"
tooltip: "Karšu Saraksts"
}
markers: {
title: "Marķieri"
button: "Marķieri"
tooltip: "Marķieru Saraksts"
marker: "Marķieris | Marķieri"
markerSet: "Marķieru Kopa | Marķieru Kopas"
searchPlaceholder: "Meklēt..."
}
settings: {
title: "Iestatījumi"
button: "Iestatījumi"
}
goFullscreen: {
button: "Pilnekrāna Režīms"
}
resetCamera: {
button: "Atiestatīt Kameru"
tooltip: "Atiestatīt Kameru & Pozīciju"
}
updateMap: {
button: "Atjaunot Karti"
tooltip: "Notīrīt Kartes Kešatmiņu"
}
lighting: {
title: "Apgaismojums"
dayNightSwitch: {
tooltip: "Diena/Nakts"
}
sunlight: "Saules Gaisma"
ambientLight: "Gaisma No Blokiem"
}
resolution: {
title: "Ižšķirtspēja"
high: "Augsta (SSAA x2)"
normal: "Vidēja (Iebūvētā x1)"
low: "Zema (Palielināšana x0.5)"
}
freeFlightControls: {
title: "Brīvā Lidojuma Vadība"
mouseSensitivity: "Peles Jūtība"
invertMouseY: "Izvērst Peli Y Asī"
}
renderDistance: {
title: "Renderēšanas Attālums"
hiresLayer: "Augstās Kval. Slānis"
lowersLayer: "Zemās Kval. Slānis"
}
theme: {
title: "Motīvs"
default: "Noklusētais (Sistēma/Pārlūks)"
dark: "Tumšs"
light: "Gaišs"
}
debug: {
button: "Atķļūdošana"
}
resetAllSettings: {
button: "Atjaunot Iestatījumus"
}
players: {
title: "Spēlētāji"
tooltip: "Spēlētāju Saraksts"
}
compass: {
tooltip: "Kompass / Pagriezt Uz Ziemeļiem"
}
controls: {
title: "Skats / Vadība"
perspective: {
button: "Perspektīvā Projekcija"
tooltip: "3D / Perspektīvā Projekcija"
}
flatView: {
button: "Plakans"
tooltip: "Ortogrāfiskais / Plakanais Skats"
}
freeFlight: {
button: "Brīvais Lidojums"
tooltip: "Brīvais Lidojums / Skatītāja Režīms"
}
}
language: {
title: "Valoda"
}
blockTooltip: {
block: "Bloks"
position: "Pozīcija"
chunk: "Gabals"
region: {
region: "Reģions"
file: "Fails"
}
light: {
light: "Gaisma"
sun: "Saule"
block: "Bloks"
}
}
info: {
title: "Informācija"
button: "Informācija"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Peles Vadība:</h2>
<table>
<tr><th>Pārvietošana</th><td><kbd>Kreisais Peles Klikšķis</kbd> + drag</td></tr>
<tr><th>Pietuvināšana</th><td><kbd>Peles Rullītis</kbd> (scroll)</td></tr>
<tr><th>Rotācija / Sašķiebšana</th><td><kbd>Labais Peles Klikšķis</kbd> + drag</td></tr>
</table>
</p>
<p>
<h2>Klaviatūras Vadība::</h2>
<table>
<tr><th>Pārvietošana</th><td><kbd>WASD</kbd> / <kbd>Bultiņu Taustiņi</kbd></td></tr>
<tr><th>Pietuvināšana</th><td>Numurtaustiņi <kbd>+</kbd>/<kbd>-</kbd> vai <kbd>Insert</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>Rotācija / Sašķiebšana</th><td><kbd>Kreisais-Alt</kbd> + <kbd>WASD</kbd> / <kbd>Bultiņu Taustiņi</kbd> vai <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Pieskārienu Vadība:</h2>
<table>
<tr><th>Pārvietošana</th><td>Pieskāriens + Vilkšana</td></tr>
<tr><th>Pietuvināšana</th><td>Pieskarieties Ar Diviem Pirkstiem + Satvert</td></tr>
<tr><th>Rotācija / Sašķiebšana</th><td>Pieskarieties Ar Diviem Pirkstiem + Rotācija / Uz Augšu/Leju</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Šī karte veidota ar &#9829; <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,153 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Meny"
tooltip: "Meny"
}
maps: {
title: "Kart"
button: "Kart"
tooltip: "Kartliste"
}
markers: {
title: "Markører"
button: "Markører"
tooltip: "Markørliste"
marker: "markør | markører"
markerSet: "markørsett | markørsett"
searchPlaceholder: "Søk..."
followPlayerTitle: "Følg spiller"
}
settings: {
title: "Innstillinger"
button: "Innstillinger"
}
goFullscreen: {
button: "Fullskjerm"
}
resetCamera: {
button: "Tilbakestill kamera"
tooltip: "Tilbakestill kamera og posisjon"
}
updateMap: {
button: "Oppdater kart"
tooltip: "Slett rutebuffer"
}
lighting: {
title: "Belysning"
dayNightSwitch: {
tooltip: "Dag/natt"
}
sunlight: "Sollys"
ambientLight: "Bakgrunnsbelysning"
}
resolution: {
title: "Oppløsning"
high: "Høy (SSAA x2)"
normal: "Normal (Opprinnelig oppløsning x1)"
low: "Lav (Oppskalert x0.5)"
}
freeFlightControls: {
title: "Friflyvningskontroller"
mouseSensitivity: "Mussensitivitet"
invertMouseY: "Snu mus Y"
}
renderDistance: {
title: "Innlastningsavstand"
hiresLayer: "Høyoppløsningslag"
lowersLayer: "Lavoppløsningslag"
loadHiresWhileMoving: "Last inn høyoppløsning under bevegelse"
off: "Av"
}
theme: {
title: "Tema"
default: "Standard (System/Nettleser)"
dark: "Mørk"
light: "Lys"
}
debug: {
button: "Feilsøk"
}
resetAllSettings: {
button: "Tilbakestill alle innstillinger"
}
players: {
title: "Spillere"
tooltip: "Spillerliste"
}
compass: {
tooltip: "Kompass / Pek nord"
}
screenshot: {
title: "Skjermbilde"
button: "Ta skjermbilde"
clipboard: "Kopier til utklippstavle"
}
controls: {
title: "Visning / Kontroller"
perspective: {
button: "Perspektiv"
tooltip: "Perpektivvisning"
}
flatView: {
button: "Flat"
tooltip: "Ortografisk / Flatvisning"
}
freeFlight: {
button: "Friflyvning"
tooltip: "Friflyvning / Tilskuermodus"
}
}
language: {
title: "Språk"
}
blockTooltip: {
block: "Blokk"
position: "Posisjon"
chunk: "Bit"
region: {
region: "Region"
file: "Fil"
}
light: {
light: "Lys"
sun: "Sol"
block: "Blokk"
}
}
info: {
title: "Informasjon"
button: "Informasjon"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Mouse-Controls:</h2>
<table>
<tr><th>move</th><td><kbd>left-click</kbd> + drag</td></tr>
<tr><th>zoom</th><td><kbd>mousewheel</kbd> (scroll)</td></tr>
<tr><th>rotate / tilt</th><td><kbd>right-click</kbd> + drag</td></tr>
</table>
</p>
<p>
<h2>Keyboard-Controls:</h2>
<table>
<tr><th>move</th><td><kbd>wasd</kbd> / <kbd>arrow-keys</kbd></td></tr>
<tr><th>zoom</th><td>Numpad: <kbd>+</kbd>/<kbd>-</kbd> or <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>rotate / tilt</th><td><kbd>Left-Alt</kbd> + <kbd>wasd</kbd> / <kbd>arrow-keys</kbd> or <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Touch-Controls:</h2>
<table>
<tr><th>move</th><td>touch + drag</td></tr>
<tr><th>zoom</th><td>touch with two fingers + pinch</td></tr>
<tr><th>rotate / tilt</th><td>touch with two fingers + rotate / move up/down</td></tr>
</table>
</p>
<br><hr>
<p>
This map has been generated with &#9829; using <a href="https://bluecolo.red/bluemap">BlueMap</a>.
</p>
"""
}
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menu"
tooltip: "Menu"
}
map: {
unloaded: "Geen kaart geladen."
loading: "Kaart laden..."
errored: "Er is een probleem opgetreden tijdens het laden van deze kaart!"
}
maps: {
title: "Kaarten"
button: "Kaarten"
tooltip: "Kaartenlijst"
}
markers: {
title: "Markers"
button: "Markers"
tooltip: "Markerlijst"
marker: "marker | markers"
markerSet: "markerset | markersets"
searchPlaceholder: "Zoek..."
followPlayerTitle: "Volg Speler"
sort {
title: "Sorteer op"
by {
default: "standaard"
label: "naam"
distance: "afstand"
}
}
}
settings: {
title: "Instellingen"
button: "Instellingen"
}
goFullscreen: {
button: "Volledig scherm modus"
}
resetCamera: {
button: "Camera terugzetten"
tooltip: "Camera & Positie terugzetten"
}
updateMap: {
button: "Kaart verversen"
tooltip: "Leeg de kaarten-cache"
}
lighting: {
title: "Belichting"
dayNightSwitch: {
tooltip: "Dag/Nacht"
}
sunlight: "Zonlicht"
ambientLight: "Omgevingslicht"
}
resolution: {
title: "Resolutie"
high: "Hoog (SSAA x2)"
normal: "Normaal (Standaard x1)"
low: "Laag (Opgeschaald x0.5)"
}
mapControls: {
title: "Kaartbesturing"
showZoomButtons: "Laat zoomknoppen zien"
}
freeFlightControls: {
title: "Vrije camera"
mouseSensitivity: "Muis gevoeligheid"
invertMouseY: "Muis Y omdraaien"
}
renderDistance: {
title: "Renderafstand"
hiresLayer: "Hires-Laag"
lowersLayer: "Lowres-Laag"
loadHiresWhileMoving: "Laad hires tijdens het bewegen"
off: "Uit"
}
theme: {
title: "Kleurmodus"
default: "Standaard (Systeem/Browser)"
dark: "Donker"
light: "Licht"
contrast: "Contrast"
}
chunkBorders: {
button: "Laat chunk grenzen zien"
}
debug: {
button: "Debug"
}
resetAllSettings: {
button: "Instellingen terugzetten"
}
players: {
title: "Spelers"
tooltip: "Spelerlijst"
}
compass: {
tooltip: "Kompas / Naar het noorden richten"
}
screenshot: {
title: "Schermafdruk"
button: "Schermafdruk nemen"
clipboard: "Kopieer naar klembord"
}
controls: {
title: "Aanzicht / Besturing"
perspective: {
button: "Perspectief"
tooltip: "Perspectief aanzicht"
}
flatView: {
button: "Plat"
tooltip: "Orthografisch / Plat aanzicht"
}
freeFlight: {
button: "Vrije vlucht"
tooltip: "Vrije vlucht / Toeschouwersmodus"
}
}
language: {
title: "Taal"
}
blockTooltip: {
block: "Blok"
position: "Positie"
chunk: "Chunk"
region: {
region: "Regio"
file: "Datum"
}
light: {
light: "Licht"
sun: "Zon"
block: "Blok"
}
}
info: {
title: "Info"
button: "Info"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Muisbediening:</h2>
<table>
<tr><th>Bewegen</th><td><kbd>Linkerklik</kbd> + slepen</td></tr>
<tr><th>Zoomen</th><td><kbd>Muiswiel</kbd> (scrollen)</td></tr>
<tr><th>Draaien / Kantelen</th><td><kbd>Rechterklik</kbd> + slepen</td></tr>
</table>
</p>
<p>
<h2>Toetsenbordbediening:</h2>
<table>
<tr><th>Bewegen</th><td><kbd>wasd</kbd> / <kbd>Pijltjestoetsen</kbd></td></tr>
<tr><th>Zoomen</th><td>Numeriek toetsenbord: <kbd>+</kbd>/<kbd>-</kbd> of <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>Draaien / Kantelen</th><td><kbd>Alt</kbd> + <kbd>wasd</kbd> / <kbd>Pijltjestoetsen</kbd> of <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Aanraakbediening:</h2>
<table>
<tr><th>Bewegen</th><td>Aanraken + vegen</td></tr>
<tr><th>Zoomen</th><td>Met twee vingers aanraken + knijpen</td></tr>
<tr><th>Draaien / Kantelen</th><td>Met twee vingers aanraken + draaien / naar boven/onder slepen</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Deze kaart is met &#9829; door <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} gegenereerd
</p>
"""
}
}

View File

@ -0,0 +1,177 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menu"
tooltip: "Menu"
}
maps: {
title: "Mapy"
button: "Mapy"
tooltip: "Lista map"
}
markers: {
title: "Znaczniki"
button: "Znaczniki"
tooltip: "Lista znaczników"
marker: "znacznik | znaczniki"
markerSet: "zbiór znaczników | zbiory znaczników"
searchPlaceholder: "Wyszukaj..."
followPlayerTitle: "Śledzenie gracza"
}
settings: {
title: "Ustawienia"
button: "Ustawienia"
}
goFullscreen: {
button: "Tryb pełnoekranowy"
}
resetCamera: {
button: "Wyśrodkuj kamerę"
tooltip: "Zresetuj pozycję kamery"
}
updateMap: {
button: "Załaduj mapę ponownie"
tooltip: "Wyczyść pamięć podręczną mapy"
}
lighting: {
title: "Oświetlenie"
dayNightSwitch: {
tooltip: "Dzień/Noc"
}
sunlight: "Światło słoneczne"
ambientLight: "Światło otoczenia"
}
resolution: {
title: "Rozdzielczość"
high: "Wysoka (SSAA x2)"
normal: "Normalna (Natywna x1)"
low: "Niska (Skalowanie x0.5)"
}
freeFlightControls: {
title: "Sterowanie w locie swobodnym"
mouseSensitivity: "Czułość myszy"
invertMouseY: "Odwróć oś pionową myszy"
}
renderDistance: {
title: "Odległość renderowania"
hiresLayer: "Warstwa wysokiej rozdzielczości"
lowersLayer: "Warstwa niskiej rozdzielczości"
}
theme: {
title: "Motyw"
default: "Domyślny (według ustawień systemowych)"
dark: "Tryb ciemny"
light: "Tryb jasny"
contrast: "Wysoki kontrast"
}
debug: {
button: "Debugowanie"
}
resetAllSettings: {
button: "Przywróć ustawienia domyślne"
}
players: {
title: "Gracze"
tooltip: "Lista graczy"
}
compass: {
tooltip: "Kompas / zwroć na północ"
}
screenshot: {
title: "Zrzut ekranu"
button: "Wykonaj zrzut ekranu"
clipboard: "Skopiuj do schowka"
}
controls: {
title: "Widok"
perspective: {
button: "Perspektywa"
tooltip: "Widok z perspektywy"
}
flatView: {
button: "Płaski"
tooltip: "Widok płaski"
}
freeFlight: {
button: "Lot swobodny"
tooltip: "Tryb widza"
}
}
language: {
title: "Język"
}
blockTooltip: {
block: "Blok"
position: "Pozycja"
chunk: "Chunk"
region: {
region: "Region"
file: "Plik"
}
light: {
light: "Oświetlenie"
sun: "Słońce"
block: "Blok"
}
}
info: {
title: "Informacje"
button: "Informacje i skróty klawiszowe"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Sterowanie myszką</h2>
<table>
<tr><th>Poruszanie się</th><td><kbd>lewy przycisk</kbd> + przeciągnięcie</td></tr>
<tr><th>Zbliżenie i oddalenie</th><td><kbd>kółko myszy</kbd> (przewijanie)</td></tr>
<tr><th>Obrót i pochylenie</th><td><kbd>prawy przycisk</kbd> + przeciągnięcie</td></tr>
</table>
</p>
<br />
<p>
<h2>Sterowanie klawiaturą</h2>
<table>
<tr>
<th>Poruszanie się</th>
<td>
<kbd>Klawisze WASD</kbd>
<br />
albo <kbd>Strzałki</kbd>
</td>
</tr>
<tr>
<th>Zbliżenie i oddalenie</th>
<td>
Klawiatura numeryczna: <kbd>+</kbd> / <kbd>-</kbd>
<br />
lub <kbd>Insert (Ins)</kbd> / <kbd>Home</kbd>
</td>
</tr>
<tr>
<th>Obrót i pochylenie</th>
<td>
<kbd>Lewy ALT</kbd> + <kbd>WASD</kbd>
<br />
<kbd>Lewy ALT</kbd> + <kbd>Strzałki</kbd>
<br /><br />
Alternatywnie: <kbd>Delete</kbd> / <kbd>End</kbd> / <kbd>Page Up</kbd> / <kbd>Page Down</kbd>
</td>
</tr>
</table>
</p>
<br />
<p>
<h2>Sterowanie dotykowe (telefon)</h2>
<table>
<tr><th>Poruszanie się</th><td>Przeciąganie jednym palcem po ekranie</td></tr>
<tr><th>Zbliżenie i oddalenie</th><td>Uszczypnięcie dwoma palcami</td></tr>
<tr><th>Obrót</th><td>Przeciąganie palca po ekranie jednocześnie trzymając mapę drugim palcem</td></tr>
<tr><th>Pochylenie</th><td>Przeciąganie dwoma palcami po ekranie w pionie</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Ta mapa została wygenerowana z &#9829; za pomocą <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}</p>
"""
}
}

View File

@ -0,0 +1,171 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menu"
tooltip: "Menu"
}
map: {
unloaded: "Nenhum mapa carregado."
loading: "A carregar o mapa..."
errored: "Houve um erro ao tentar carregar este mapa!"
}
maps: {
title: "Mapas"
button: "Mapas"
tooltip: "Lista de mapas"
}
markers: {
title: "Marcadores"
button: "Marcadores"
tooltip: "Lista de marcadores"
marker: "marcador | marcadores"
markerSet: "colocar marcador | colocar marcadores"
searchPlaceholder: "Procurar..."
followPlayerTitle: "Seguir Jogador"
sort {
title: "Organizar por"
by {
default: "Padrão"
label: "Nome"
distance: "Distância"
}
}
}
settings: {
title: "Definições"
button: "Definições"
}
goFullscreen: {
button: "Tela Cheia"
}
resetCamera: {
button: "Redefinir Câmara"
tooltip: "Redefinir Câmara e Posição"
}
updateMap: {
button: "Atualizar mapa"
tooltip: "Limpar cache de tiles"
}
lighting: {
title: "Luminosidade"
dayNightSwitch: {
tooltip: "Dia/Noite"
}
sunlight: "Luz do dia"
ambientLight: "Luz ambiental"
}
resolution: {
title: "Resolução"
high: "Alta (SSAA x2)"
normal: "Normal (Nativo x1)"
low: "Baixa (Upscaling x0.5)"
}
mapControls: {
title: "Controlos do mapa"
showZoomButtons: "Mostrar botões de Zoom"
}
freeFlightControls: {
title: "Controlos de voo-livre"
mouseSensitivity: "Sensibilidade do rato"
invertMouseY: "Inverter rato Y"
}
renderDistance: {
title: "Distância de renderização"
hiresLayer: "Camada de alta resolução"
lowersLayer: "Camada de baixa resolução"
loadHiresWhileMoving: "Carregar alta resolução em movimento"
off: "Desligar"
}
theme: {
title: "Tema"
default: "Padrão (Sistema/Browser)"
dark: "Escuro"
light: "Claro"
contrast: "Contraste"
}
debug: {
button: "Debug"
}
resetAllSettings: {
button: "Redefinir todas as configurações"
}
players: {
title: "Jogadores"
tooltip: "Lista de jogadores"
}
compass: {
tooltip: "Compasso / Apontar para norte"
}
screenshot: {
title: "Captura de ecrã"
button: "Tirar captura de ecrã"
clipboard: "Copiar para a área de transferência"
}
controls: {
title: "Visão / Controlos"
perspective: {
button: "Perspetiva"
tooltip: "Visão de perspetiva"
}
flatView: {
button: "Plano"
tooltip: "Visão plana"
}
freeFlight: {
button: "Voo-livre"
tooltip: "Voo-livre / Modo espectador"
}
}
language: {
title: "Língua"
}
blockTooltip: {
block: "Bloco"
position: "Posição"
chunk: "Chunk"
region: {
region: "Região"
file: "Ficheiro"
}
light: {
light: "Luz"
sun: "Sol"
block: "Bloco"
}
}
info: {
title: "Informação"
button: "Informação"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Controlos do rato:</h2>
<table>
<tr><th>mover</th><td><kbd>click-esquerdo</kbd> + arrastar</td></tr>
<tr><th>zoom</th><td><kbd>botão do meio</kbd> (scroll)</td></tr>
<tr><th>rodar / inclinar</th><td><kbd>click-direito</kbd> + arrastar</td></tr>
</table>
</p>
<p>
<h2>Controlos do teclado:</h2>
<table>
<tr><th>mover</th><td><kbd>wasd</kbd> / <kbd>setas</kbd></td></tr>
<tr><th>zoom</th><td>Numpad: <kbd>+</kbd>/<kbd>-</kbd> ou <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>rodar / inclinar</th><td><kbd>Alt-esquerdo</kbd> + <kbd>wasd</kbd> / <kbd>setas</kbd> ou <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Controlos táteis:</h2>
<table>
<tr><th>mover</th><td>tocar + arrastar</td></tr>
<tr><th>zoom</th><td>tocar com 2 dedos + afastar / aproximar os dedos</td></tr>
<tr><th>rodar / inclinar</th><td>tocar com 2 dedos + rodar / mover para cima / baixo</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Este mapa foi gerado com &#9829; usando o <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Меню"
tooltip: "Меню"
}
map: {
unloaded: "Карта не загружена."
loading: "Карта загружается..."
errored: "При загрузке этой карты произошла ошибка!"
}
maps: {
title: "Карта"
button: "Карта"
tooltip: "Список карт"
}
markers: {
title: "Маркеры"
button: "Маркеры"
tooltip: "Список маркеров"
marker: "маркер | маркеры"
markerSet: "набор маркеров | наборы маркеров"
searchPlaceholder: "Поиск..."
followPlayerTitle: "Следовать за игроком"
sort {
title: "Сортировать по"
by {
default: "умолчанию"
label: "имени"
distance: "расстоянию"
}
}
}
settings: {
title: "Настройки"
button: "Настройки"
}
goFullscreen: {
button: "Полноэкранный режим"
}
resetCamera: {
button: "Сброс настроек камеры"
tooltip: "Сброс настроек и положения камеры"
}
updateMap: {
button: "Обновить карту"
tooltip: "Очистить кэш карты"
}
lighting: {
title: "Освещение"
dayNightSwitch: {
tooltip: "День/Ночь"
}
sunlight: "Солнечный свет"
ambientLight: "Свет от блоков"
}
resolution: {
title: "Разрешение"
high: "Высокое (SSAA x2)"
normal: "Нормальное (Нативное x1)"
low: "Низкое (Апскейл x0.5)"
}
mapControls: {
title: "Управление картой"
showZoomButtons: "Показать кнопки масштаба"
}
freeFlightControls: {
title: "Управление свободным полётом"
mouseSensitivity: "Чувствительность мыши"
invertMouseY: "Инвертировать мышь по оси Y"
}
renderDistance: {
title: "Дальность прорисовки"
hiresLayer: "Высокой чёткости"
lowersLayer: "Низкой чёткости"
loadHiresWhileMoving: "Выс. чёткость при движении"
off: "Откл"
}
theme: {
title: "Тема"
default: "По умолчанию (Системная/Браузера)"
dark: "Тёмная"
light: "Светлая"
contrast: "Контрастная"
}
chunkBorders: {
button: "Показывать границы чанков"
}
debug: {
button: "Отладка"
}
resetAllSettings: {
button: "Сбросить все настройки"
}
players: {
title: "Игроки"
tooltip: "Список игроков"
}
compass: {
tooltip: "Компас / Указать на север"
}
screenshot: {
title: "Скриншот"
button: "Сделать Скриншот"
clipboard: "Скопировать в буфер обмена"
}
controls: {
title: "Вид / Управление"
perspective: {
button: "Перспективная проекция"
tooltip: "3D / Перспективная проекция"
}
flatView: {
button: "Ортографическая проекция"
tooltip: "Плоская / Ортографическая проекция"
}
freeFlight: {
button: "Свободный полёт"
tooltip: "Свободный полёт / Режим наблюдателя"
}
}
language: {
title: "Язык"
}
blockTooltip: {
block: "Блок"
position: "Координаты"
chunk: "Чанк"
region: {
region: "Регион"
file: "Файл"
}
light: {
light: "Освещение"
sun: "Небо"
block: "Блоки"
}
}
info: {
title: "Информация"
button: "Информация"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Управление мышью:</h2>
<table>
<tr><th>перемещение</th><td>зажать <kbd>ЛКМ</kbd></td></tr>
<tr><th>приближение</th><td>прокрутить <kbd>колёсико</kbd></td></tr>
<tr><th>поворот / наклон</th><td>зажать <kbd>ПКМ</kbd></td></tr>
</table>
</p>
<p>
<h2>Управление клавиатурой:</h2>
<table>
<tr><th>перемещение</th><td><kbd>WASD</kbd> / <kbd>стрелки</kbd></td></tr>
<tr><th>приближение</th><td>Нампад: <kbd>+</kbd>/<kbd>-</kbd> или <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>поворот / наклон</th><td><kbd>Левый Alt</kbd> + <kbd>WASD</kbd> / <kbd>стрелки</kbd> или <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Управление сенсором:</h2>
<table>
<tr><th>перемещение</th><td>коснуться и переместить</td></tr>
<tr><th>приближение</th><td>коснуться двумя пальцами и ущипнуть</td></tr>
<tr><th>поворот / наклон</th><td>коснуться двумя пальцами и повернуть / переместить вверх/вниз</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Эта карта сгенерирована с &#9829; <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,35 @@
{
default: "en"
useBrowserLanguage: true
languages: [
// remove the languages you don't need reorder them or add your own
{ locale: "id", name: "Bahasa Indonesia" }
{ locale: "cs", name: "Čeština" }
{ locale: "de", name: "Deutsch" }
{ locale: "en", name: "English" }
{ locale: "es", name: "Español" }
{ locale: "fr", name: "Français" }
{ locale: "hi", name: "हिन्दी" }
{ locale: "it", name: "Italiano" }
{ locale: "lv", name: "Latviešu" }
{ locale: "hu", name: "Magyar" }
{ locale: "nl", name: "Nederlands" }
{ locale: "nb", name: "Norsk bokmål" }
{ locale: "pl", name: "Polski" }
{ locale: "pt-PT", name: "Português (Portugal)" }
{ locale: "ru", name: "Русский" }
{ locale: "sr-Latn-RS", name: "Srpski (latinica)" }
{ locale: "sr-Cyrl-RS", name: "Српски (ћирилица)" }
{ locale: "fi", name: "Suomi" }
{ locale: "sv", name: "Svenska" }
{ locale: "tr", name: "Türkçe" }
{ locale: "th", name: "ภาษาไทย" }
{ locale: "ua", name: "Українська" }
{ locale: "ja", name: "日本語" }
{ locale: "zh-CN", name: "简体中文 (中国大陆)" }
{ locale: "zh-TW", name: "繁體中文 (台灣)" }
{ locale: "zh-HK", name: "繁體中文 (香港特別行政區)" }
{ locale: "ko", name: "한국어" }
{ locale: "vi", name: "Tiếng Việt"}
]
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Мени"
tooltip: "Мени"
}
map: {
unloaded: "Није учитана мапа."
loading: "Учитава се мапа..."
errored: "Дошло је до грешке при покушају учитавања ове мапе!"
}
maps: {
title: "Мапе"
button: "Мапе"
tooltip: "Листа мапа"
}
markers: {
title: "Маркери"
button: "Маркери"
tooltip: "Листа маркера"
marker: "маркер | маркери"
markerSet: "сет маркера | сетови маркера"
searchPlaceholder: "Претражите..."
followPlayerTitle: "Прати играча"
sort {
title: "Сортирај по"
by {
default: "подразумијевано"
label: "име"
distance: "удаљеност"
}
}
}
settings: {
title: "Подешавања"
button: "Подешавања"
}
goFullscreen: {
button: "Уђите у режим цијелог екрана"
}
resetCamera: {
button: "Ресетуј камеру"
tooltip: "Ресетуј камеру и положај"
}
updateMap: {
button: "Ажурирај мапу"
tooltip: "Обриши кеш плочица"
}
lighting: {
title: "Освјетљење"
dayNightSwitch: {
tooltip: "Дан/Ноћ"
}
sunlight: "Сунчева свијетлост"
ambientLight: "Амбијентално свијетло"
}
resolution: {
title: "Резолуција"
high: "Висока (SSAA x2)"
normal: "Нормална (Основно x1)"
low: "Ниска (Повећање x0.5)"
}
mapControls: {
title: "Контроле за мапу"
showZoomButtons: "Прикажи дугмад за зумирање"
}
freeFlightControls: {
title: "Контроле слободног лијета"
mouseSensitivity: "Осјетљивост миша"
invertMouseY: "Обрни миш по Y оси"
}
renderDistance: {
title: "Видљивост"
hiresLayer: "Слој високе резолуције"
lowersLayer: "Слој ниске резолуције"
loadHiresWhileMoving: "Учитавајте високу резолуцију док се крећете"
off: "Угашено"
}
theme: {
title: "Тема"
default: "Подразумијевана (Систем/Прегледач)"
dark: "Тамна"
light: "Свијетла"
contrast: "Контраст"
}
chunkBorders: {
button: "Прикажи границе чанкова"
}
debug: {
button: "Отклањање грешака"
}
resetAllSettings: {
button: "Ресетуј сва подешавања"
}
players: {
title: "Играчи"
tooltip: "Листа играча"
}
compass: {
tooltip: "Компас / Окрените се према сјеверу"
}
screenshot: {
title: "Снимак екрана"
button: "Направите снимак екрана"
clipboard: "Копирајте у међуспремник"
}
controls: {
title: "Поглед / Контроле"
perspective: {
button: "Перспективан"
tooltip: "Перспективан поглед"
}
flatView: {
button: "Раван"
tooltip: "Ортографски / Раван поглед"
}
freeFlight: {
button: "Слободан лет"
tooltip: "Слободан лет / Посматрачки режим"
}
}
language: {
title: "Језик"
}
blockTooltip: {
block: "Блок"
position: "Положај"
chunk: "Чанк"
region: {
region: "Регион"
file: "Датотека"
}
light: {
light: "Свијетлост"
sun: "Сунце"
block: "Блок"
}
}
info: {
title: "Информације"
button: "Информације"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Контроле за миш:</h2>
<table>
<tr><th>помјерање</th><td><kbd>лијеви клик</kbd> + превуците</td></tr>
<tr><th>зумирање</th><td><kbd>точак миша</kbd> (скрол)</td></tr>
<tr><th>ротирање / нагињање</th><td><kbd>десни клик</kbd> + превуците</td></tr>
</table>
</p>
<p>
<h2>Контроле за тастатуру:</h2>
<table>
<tr><th>помјерање</th><td><kbd>wasd</kbd> / <kbd>стрелице</kbd></td></tr>
<tr><th>зумирање</th><td>Нумеричка тастатура: <kbd>+</kbd>/<kbd>-</kbd> или <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>ротирање / нагињање</th><td><kbd>Лијеви Alt</kbd> + <kbd>wasd</kbd> / <kbd>стрелице</kbd> или <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Контроле за додир:</h2>
<table>
<tr><th>помјерање</th><td>додирните + превуците</td></tr>
<tr><th>зумирање</th><td>додирните са 2 прста + уштините</td></tr>
<tr><th>ротирање / нагињање</th><td>додирните са 2 прста + окрените / помјерите горе/доље</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Ова мапа је генерисана са &#9829; користећи <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Meni"
tooltip: "Meni"
}
map: {
unloaded: "Nije učitana mapa."
loading: "Učitava se mapa..."
errored: "Došlo je do greške pri pokušaju učitavanja ove mape!"
}
maps: {
title: "Mape"
button: "Mape"
tooltip: "Lista mapa"
}
markers: {
title: "Markeri"
button: "Markeri"
tooltip: "Lista markera"
marker: "marker | markeri"
markerSet: "set markera | setovi markera"
searchPlaceholder: "Pretražite..."
followPlayerTitle: "Prati igrača"
sort {
title: "Sortiraj po"
by {
default: "podrazumijevano"
label: "ime"
distance: "udaljenost"
}
}
}
settings: {
title: "Podešavanja"
button: "Podešavanja"
}
goFullscreen: {
button: "Uđite u režim cijelog ekrana"
}
resetCamera: {
button: "Resetuj kameru"
tooltip: "Resetuj kameru i položaj"
}
updateMap: {
button: "Ažuriraj mapu"
tooltip: "Obriši keš pločica"
}
lighting: {
title: "Osvjetljenje"
dayNightSwitch: {
tooltip: "Dan/Noć"
}
sunlight: "Sunčeva svijetlost"
ambientLight: "Ambijentalno svijetlo"
}
resolution: {
title: "Rezolucija"
high: "Visoka (SSAA x2)"
normal: "Normalna (Osnovno x1)"
low: "Niska (Povećanje x0.5)"
}
mapControls: {
title: "Kontrole za mapu"
showZoomButtons: "Prikaži dugmad za zumiranje"
}
freeFlightControls: {
title: "Kontrole slobodnog lijeta"
mouseSensitivity: "Osjetljivost miša"
invertMouseY: "Obrni miš po Y osi"
}
renderDistance: {
title: "Vidljivost"
hiresLayer: "Sloj visoke rezolucije"
lowersLayer: "Sloj niske rezolucije"
loadHiresWhileMoving: "Učitavajte visoku rezoluciju dok se krećete"
off: "Ugašeno"
}
theme: {
title: "Tema"
default: "Podrazumijevana (Sistem/Pregledač)"
dark: "Tamna"
light: "Svijetla"
contrast: "Kontrast"
}
chunkBorders: {
button: "Prikaži granice čankova"
}
debug: {
button: "Otklanjanje grešaka"
}
resetAllSettings: {
button: "Resetuj sva podešavanja"
}
players: {
title: "Igrači"
tooltip: "Lista igrača"
}
compass: {
tooltip: "Kompas / Okrenite se prema sjeveru"
}
screenshot: {
title: "Snimak ekrana"
button: "Napravite snimak ekrana"
clipboard: "Kopirajte u međuspremnik"
}
controls: {
title: "Pogled / Kontrole"
perspective: {
button: "Perspektivan"
tooltip: "Perspektivан pogled"
}
flatView: {
button: "Ravan"
tooltip: "Ortografski / Ravan pogled"
}
freeFlight: {
button: "Slobodan let"
tooltip: "Slobodan let / Posmatrački režim"
}
}
language: {
title: "Jezik"
}
blockTooltip: {
block: "Blok"
position: "Položaj"
chunk: "Čank"
region: {
region: "Region"
file: "Datoteka"
}
light: {
light: "Svijetlost"
sun: "Sunce"
block: "Blok"
}
}
info: {
title: "Informacije"
button: "Informacije"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Kontrole za miš:</h2>
<table>
<tr><th>pomjeranje</th><td><kbd>lijevi klik</kbd> + prevucite</td></tr>
<tr><th>zumiranje</th><td><kbd>točak miša</kbd> (skrol)</td></tr>
<tr><th>rotiranje / naginjanje</th><td><kbd>desni klik</kbd> + prevucite</td></tr>
</table>
</p>
<p>
<h2>Kontrole za tastaturu:</h2>
<table>
<tr><th>pomjeranje</th><td><kbd>wasd</kbd> / <kbd>strelice</kbd></td></tr>
<tr><th>zumiranje</th><td>Numerička tastatura: <kbd>+</kbd>/<kbd>-</kbd> ili <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>rotiranje / naginjanje</th><td><kbd>Lijevi Alt</kbd> + <kbd>wasd</kbd> / <kbd>strelice</kbd> ili <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Kontrole za dodir:</h2>
<table>
<tr><th>pomjeranje</th><td>dodirnite + prevucite</td></tr>
<tr><th>zumiranje</th><td>dodirnite sa 2 prsta + uštinite</td></tr>
<tr><th>rotiranje / naginjanje</th><td>dodirnite sa 2 prsta + okrenite / pomjerite gore/dolje</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Ova mapa je generisana sa &#9829; koristeći <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Meny"
tooltip: "Meny"
}
map: {
unloaded: "Ingen karta laddad."
loading: "Laddar karta..."
errored: "Ett fel uppstod när kartan skulle laddas!"
}
maps: {
title: "Kartor"
button: "Kartor"
tooltip: "Kartlista"
}
markers: {
title: "Markörer"
button: "Markörer"
tooltip: "Markörslista"
marker: "Markör | Markörer"
markerSet: "Placera markör | Placera markör"
searchPlaceholder: "Sök..."
followPlayerTitle: "Följ spelare"
sort {
title: "Sortering"
by {
default: "standard"
label: "namn"
distance: "distans"
}
}
}
settings: {
title: "Inställningar"
button: "Inställningar"
}
goFullscreen: {
button: "Öppna i helskärm"
}
resetCamera: {
button: "Återställ kamera"
tooltip: "Återställ kamera och position"
}
updateMap: {
button: "Uppdatera karta"
tooltip: "Rensa cacheminne"
}
lighting: {
title: "Ljus"
dayNightSwitch: {
tooltip: "Dag/Natt"
}
sunlight: "Solljus"
ambientLight: "Ljussättning"
}
resolution: {
title: "Upplösning"
high: "Hög (SSAA x2)"
normal: "Normal (Ursprunglig x1)"
low: "Låg (Uppskalning x0.5)"
}
mapControls: {
title: "Kartkontroller"
showZoomButtons: "Visa zoom-knappar"
}
freeFlightControls: {
title: "Kontroller för fri flygning"
mouseSensitivity: "Muskänslighet"
invertMouseY: "Invertera mus Y"
}
renderDistance: {
title: "Renderings avstånd"
hiresLayer: "Högupplösningslager"
lowersLayer: "Lågupplösningslager"
loadHiresWhileMoving: "Ladda högupplösningslager under rörelse"
off: "Off"
}
theme: {
title: "Teman"
default: "Standard (System/Webbläsare)"
dark: "Mörkt"
light: "Ljust"
contrast: "Kontrast"
}
chunkBorders: {
button: "Visa chunkgränser"
}
debug: {
button: "Felsökning"
}
resetAllSettings: {
button: "Återställ alla inställningar"
}
players: {
title: "Spelare"
tooltip: "Spelarlista"
}
compass: {
tooltip: "Kompass / Vänd mot norr"
}
screenshot: {
title: "Skärmdump"
button: "Ta en skärmdump"
clipboard: "Kopiera till urklipp"
}
controls: {
title: "Visningsläge"
perspective: {
button: "Perspektiv"
tooltip: "Perspektiv-vy"
}
flatView: {
button: "Platt"
tooltip: "Ortografisk / platt vy"
}
freeFlight: {
button: "Fri flygning"
tooltip: "Fri flygning / Åskådarläge"
}
}
language: {
title: "Språk"
}
blockTooltip: {
block: "Block"
position: "Position"
chunk: "Chunk"
region: {
region: "Område"
file: "Fil"
}
light: {
light: "Ljus"
sun: "Sol"
block: "Block"
}
}
info: {
title: "Info"
button: "Info"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Muskontroller:</h2>
<table>
<tr><th>Styra</th><td><kbd>vänster klick</kbd> + dra</td></tr>
<tr><th>Zoom</th><td><kbd>mushjul</kbd> (scroll)</td></tr>
<tr><th>Rotera / luta</th><td><kbd>Höger klick</kbd> + dra</td></tr>
</table>
</p>
<p>
<h2>Tangentbordskontroller:</h2>
<table>
<tr><th>Styra</th><td><kbd>wasd</kbd> / <kbd>piltangenter</kbd></td></tr>
<tr><th>Zoom</th><td><kbd>+</kbd>/<kbd>-</kbd> eller <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>Rotera / luta</th><td><kbd>Vänster-Alt</kbd> + <kbd>wasd</kbd> / <kbd>piltangenter</kbd> eller <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Pekkontroller:</h2>
<table>
<tr><th>Styra</th><td>rör + dra</td></tr>
<tr><th>Zoom</th><td>rör med två fingrar + nypa</td></tr>
<tr><th>Rotera / luta</th><td>rör med två fingrar + rotera / flytta upp / ner</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Denna karta har blivit genererad med &#9829; med hjälp av <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,171 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "เมนู"
tooltip: "เมนู"
}
map: {
unloaded: "ไม่มีแผนที่โหลด"
loading: "กำลังโหลดแผนที่..."
errored: "เกิดข้อผิดพลาดในขณะโหลดแผนที่"
}
maps: {
title: "แผนที่"
button: "แผนที่"
tooltip: "รายชื่อ-แผนที่"
}
markers: {
title: "จุดมาร์ค"
button: "จุดมาร์ค"
tooltip: "รายชื่อ-จุดมาร์ค"
marker: "จุดมาร์ค | จุดมาร์ค"
markerSet: "ตั้งจุดมาร์ค | ตั้งจุดมาร์ค"
searchPlaceholder: "ค้นหา..."
followPlayerTitle: "ติดตามผู้เล่น"
sort {
title: "เรียงตาม"
by {
default: "ค่าเริ่มต้น"
label: "ชื่อ"
distance: "ระยะทาง"
}
}
}
settings: {
title: "ตั้งค่า"
button: "ตั้งค่า"
}
goFullscreen: {
button: "ไปแบบเต็มหน้าจอ"
}
resetCamera: {
button: "รีเซ็ตกล้อง"
tooltip: "รีเซ็ตกล้องและตำแหน่ง"
}
updateMap: {
button: "อัพเดทแผนที่"
tooltip: "ล้างแคชไทล์"
}
lighting: {
title: "แสง"
dayNightSwitch: {
tooltip: "กลางวัน/กลางคืน"
}
sunlight: "แสงแดด"
ambientLight: "แสงบรรยกาศ"
}
resolution: {
title: "ความละเอียด"
high: "สูง (SSAA x2)"
normal: "ธรรมดา (Native x1)"
low: "ต่ำ (Upscaling x0.5)"
}
mapControls: {
title: "การควบคุมแผนที่"
showZoomButtons: "แสดงปุ่มซูม"
}
freeFlightControls: {
title: "การควบคุมการบินอิสระ"
mouseSensitivity: "ความไวของเมาส์"
invertMouseY: "กลับเมาส์แกน Y"
}
renderDistance: {
title: "ระยะเรนเดอร์"
hiresLayer: "ชั้นหลัก"
lowersLayer: "ชั้นคุณภาพน้อย"
loadHiresWhileMoving: "โหลดชั้นกลางในขณะเคลื่อนที่"
off: "ปิด"
}
theme: {
title: "ธีม"
default: "ค่าเริ่มต้น (ระบบ/เบราว์เซอร์)"
dark: "มืด"
light: "สว่าง"
contrast: "มืดสนิด"
}
debug: {
button: "ดีบัก"
}
resetAllSettings: {
button: "รีเซ็ตการตั้งค่าทั้งหมด"
}
players: {
title: "ผู้เล่น"
tooltip: "รายชื่อ-ผู้เล่น"
}
compass: {
tooltip: "เข็มทิศ / หันหน้าไปทางทิศเหนือ"
}
screenshot: {
title: "ภาพหน้าจอ"
button: "ถ่ายภาพหน้าจอ"
clipboard: "คัดลอกไปยังคลิปบอร์ด"
}
controls: {
title: "ดู / ควบคุม"
perspective: {
button: "มุมมอง"
tooltip: "มุมมอง"
}
flatView: {
button: "แบน"
tooltip: "ออร์โธกราฟิก / มุมมองแบน"
}
freeFlight: {
button: "บินอิสระ"
tooltip: "บินอิสระ / โหมดผู้ชม"
}
}
language: {
title: "ภาษา"
}
blockTooltip: {
block: "บล็อก"
position: "ตำแหน่ง"
chunk: "ชังก์"
region: {
region: "กลุ่มชังก์"
file: "ไฟล์"
}
light: {
light: "แสงสว่าง"
sun: "ดวงอาทิตย์"
block: "บล็อก"
}
}
info: {
title: "ข้อมูล"
button: "ข้อมูล"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>การควบคุมเมาส์:</h2>
<table>
<tr><th>เคลื่อนไหว</th><td><kbd>คลิกซำย</kbd> + ลาก</td></tr>
<tr><th>ซูม</th><td><kbd>ลูกกลิ้งเมาส์</kbd> (เหลื่อน)</td></tr>
<tr><th>หมุน / เอียง</th><td><kbd>คลิกขวา</kbd> + ลาก</td></tr>
</table>
</p>
<p>
<h2>แป้นพิมพ์ควบคุม:</h2>
<table>
<tr><th>เคลื่อนไหว</th><td><kbd>wasd</kbd> / <kbd>ปุ่มลูกศร</kbd></td></tr>
<tr><th>ซูม</th><td>แป้นตัวเลข: <kbd>+</kbd>/<kbd>-</kbd> หรือ <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>หมุน / เอียง</th><td><kbd>Alt ซ้าย</kbd> + <kbd>wasd</kbd> / <kbd>ปุ่มลูกศร</kbd> หรือ <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>สัมผัสหน้าจอควบคุม:</h2>
<table>
<tr><th>เคลื่อนไหว</th><td>แตะ + ลาก</td></tr>
<tr><th>ซูม</th><td>แตะด้วยสองนิ้ว + หยิก</td></tr>
<tr><th>หมุน / เอียง</th><td>สัมผัสด้วยสองนิ้ว + หมุน / เลื่อนขึ้น / ลง</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
แผนที่นี้ถูกสร้างขึ้นด้วย &#9829; <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,171 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menü"
tooltip: "Menü"
}
map: {
unloaded: "Haritalar yüklenmedi."
loading: "Harita yükleniyor..."
errored: "Haritayı yüklerken bir hata oluştu!"
}
maps: {
title: "Haritalar"
button: "Haritalar"
tooltip: "Harita listesi"
}
markers: {
title: "Noktalar"
button: "Noktalar"
tooltip: "Nokta listesi"
marker: "nokta | noktalar"
markerSet: "nokta kur | noktalar kur"
searchPlaceholder: "Ara..."
followPlayerTitle: "Oyuncuyu takip et"
sort {
title: "Sıralama türü"
by {
default: "varsayılan"
label: "isim"
distance: "uzaklık"
}
}
}
settings: {
title: "Ayarlar"
button: "Ayarlar"
}
goFullscreen: {
button: "Tam ekran"
}
resetCamera: {
button: "Kamerayı sıfırla"
tooltip: "Kamerayı ve pozisyonu sıfırla"
}
updateMap: {
button: "Haritayı güncele"
tooltip: "Harita Parça önbelleğini temizle"
}
lighting: {
title: "Aydınlatma"
dayNightSwitch: {
tooltip: "Sabah/Akşam"
}
sunlight: "Güneş ışığı"
ambientLight: "Çevre ışığı"
}
resolution: {
title: "Çözünürlük"
high: "Yüksek (SSAA x2)"
normal: "Normal (Native x1)"
low: "Düşük (Upscaling x0.5)"
}
mapControls: {
title: "Harita kontrolleri"
showZoomButtons: "Yakınlaştırma tuşlarını göster"
}
freeFlightControls: {
title: "Serbest kamera kontrolleri"
mouseSensitivity: "Fare hassasiyeti"
invertMouseY: "Fareyi tersine çevir"
}
renderDistance: {
title: "Görüş mesafesi"
hiresLayer: "Yüksek çözünürlük katmanı"
lowersLayer: "Düşük çözünürlük Katmanı"
loadHiresWhileMoving: "Haraket ettirirken yüklemeye devam et"
off: "Kapalı"
}
theme: {
title: "Tema"
default: "Varsayılan (Sistem/Tarayıcı)"
dark: "Karanlık"
light: "Aydınlık"
contrast: "Kontrast"
}
debug: {
button: "Hata ayıklama"
}
resetAllSettings: {
button: "Tüm ayarları sıfırla"
}
players: {
title: "Oyuncular"
tooltip: "Oyuncu listesi"
}
compass: {
tooltip: "Pusula / Kuzeye Dön"
}
screenshot: {
title: "Ekran görüntüsü"
button: "Ekran görüntüsü Al"
clipboard: "Panoya kaydet"
}
controls: {
title: "Görüş / Kontroller"
perspective: {
button: "Perspektif"
tooltip: "Perspektif bakışı"
}
flatView: {
button: "Kuşbakışı"
tooltip: "Ortografik / Kuşbakışı"
}
freeFlight: {
button: "Serbest kamera"
tooltip: "Serbest kamera / Seyirci modu"
}
}
language: {
title: "Dil"
}
blockTooltip: {
block: "Blok"
position: "Pozisyon"
chunk: "Chunk"
region: {
region: "Bölge"
file: "Dosya"
}
light: {
light: "Işık"
sun: "Güneş"
block: "Blok"
}
}
info: {
title: "Bilgi"
button: "Bilgi"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Fare Kontrolleri:</h2>
<table>
<tr><th>Taşı</th><td><kbd>sol tık</kbd> + haraket ettir</td></tr>
<tr><th>Yakınlaştır</th><td><kbd>fare tekerleği</kbd> (kaydır)</td></tr>
<tr><th>Döndür / Eğilt</th><td><kbd>sağ tık</kbd> + haraket ettir</td></tr>
</table>
</p>
<p>
<h2>Klavye Kontrolleri:</h2>
<table>
<tr><th>Taşı</th><td><kbd>wasd</kbd> / <kbd>ok tuşları</kbd></td></tr>
<tr><th>Yakınlaştır</th><td>Numpad: <kbd>+</kbd>/<kbd>-</kbd> veya <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>Döndür / Eğim ver</th><td><kbd>Left-Alt</kbd> + <kbd>wasd</kbd> / <kbd>ok tuşları</kbd> veya <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Dokunmatik Kontrolleri:</h2>
<table>
<tr><th>Taşı</th><td>dokun + kaydır</td></tr>
<tr><th>Yakınlaştır</th><td>iki parmaklarını birbirine yaklaştır/uzaklaştır</td></tr>
<tr><th>Döndür / Eğim ver</th><td>iki parmağınla dokun + haraket ettir / aşağı/yukarı kaydır</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Bu harita &#9829; <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} ile oluşturulmuştur
</p>
"""
}
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Меню"
tooltip: "Меню"
}
map: {
unloaded: "Карта не завантажена."
loading: "Карта завантажується..."
errored: "При завантаженні цієї карти сталася помилка!"
}
maps: {
title: "Карти"
button: "Карти"
tooltip: "Список карт"
}
markers: {
title: "Мітки"
button: "Мітки"
tooltip: "Список міток"
marker: "маркер | маркери"
markerSet: "набір маркерів | набори маркерів"
searchPlaceholder: "Пошук..."
followPlayerTitle: "Слідкувати за гравцем"
sort {
title: "Сортувати за"
by {
default: "замовчуванням"
label: "імені"
distance: "відстані"
}
}
}
settings: {
title: "Налаштування"
button: "Налаштування"
}
goFullscreen: {
button: "Перейти в повноекранний режим"
}
resetCamera: {
button: "Скинути налаштування камери"
tooltip: "Скинути налаштування та позицію камери"
}
updateMap: {
button: "Оновити карту"
tooltip: "Очистити кеш тайлів"
}
lighting: {
title: "Освітлення"
dayNightSwitch: {
tooltip: "День/Ніч"
}
sunlight: "Сонячне світло"
ambientLight: "Навколишнє світло"
}
resolution: {
title: "Роздільна здатність"
high: "Висока (SSAA x2)"
normal: "Нормальна (Системна x1)"
low: "Низька (Апскейл x0.5)"
}
mapControls: {
title: "Керування мапою"
showZoomButtons: "Показати кнопки масштабування"
}
freeFlightControls: {
title: "Налаштування вільного польоту"
mouseSensitivity: "Чутливість миші"
invertMouseY: "Вертикальне інвертування миші"
}
renderDistance: {
title: "Відстань промальовки"
hiresLayer: "Високодеталізований шар"
lowersLayer: "Низькодеталізований шар"
loadHiresWhileMoving: "Вис. шар під час руху"
off: "Вимк"
}
theme: {
title: "Тема"
default: "За замовчуванням (Браузерна)"
dark: "Темна"
light: "Світла"
contrast: "Контрастна"
}
chunkBorders: {
button: "Показувати межі чанків"
}
debug: {
button: "Відлагоджувальний режим"
}
resetAllSettings: {
button: "Скинути всі налаштування"
}
players: {
title: "Гравці"
tooltip: "Список гравців"
}
compass: {
tooltip: "Компас / Повернути на північ"
}
screenshot: {
title: "Скріншот"
button: "Зробити Скріншот"
clipboard: "Скопіювати в буфер обміну"
}
controls: {
title: "Налаштування відображення"
perspective: {
button: "Перспектива"
tooltip: "Перспективна проекція"
}
flatView: {
button: "Пласка карта"
tooltip: "Ортографічна / Пласка проекція"
}
freeFlight: {
button: "Вільний політ"
tooltip: "Вільний політ / \"Spectator mode\""
}
}
language: {
title: "Мова"
}
blockTooltip: {
block: "Блок"
position: "Позиція"
chunk: "Чанк"
region: {
region: "Регіон"
file: "Файл"
}
light: {
light: "Освітлення"
sun: "Сонце"
block: "Блоки"
}
}
info: {
title: "Інформація"
button: "Інформація"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Керування-мишею:</h2>
<table>
<tr><th>рух</th><td><kbd>лівий-клік</kbd> + пересування</td></tr>
<tr><th>приближення</th><td><kbd>колесико-миші</kbd> (прокрутити)</td></tr>
<tr><th>повернути / повернути</th><td><kbd>правий-клік</kbd> + пересування</td></tr>
</table>
</p>
<p>
<h2>Керування-клавіатурою:</h2>
<table>
<tr><th>рух</th><td><kbd>wasd</kbd> / <kbd>стрілки-клавіатури</kbd></td></tr>
<tr><th>приблизити</th><td>Цифроблок: <kbd>+</kbd>/<kbd>-</kbd> або <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>повернути / нахилити</th><td><kbd>Лівий-Alt</kbd> + <kbd>wasd</kbd> / <kbd>стрілки-клавіатури</kbd> або <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Сенсорна-панель:</h2>
<table>
<tr><th>рух</th><td>дотик + перетягування</td></tr>
<tr><th>приблизити</th><td>дотик двома пальцями + зсув доверху</td></tr>
<tr><th>поворот / нахил</th><td>дотик двома пальцями + поворот / зсув доверху / донизу</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Цю карту було згенеровано з &#9829; використовуючи <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,175 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "Menu"
tooltip: "Menu"
}
map: {
unloaded: "Không có bản đồ."
loading: "Đang tải bản đồ..."
errored: "Có lỗi khi tải bản đồ!"
}
maps: {
title: "Bản đồ"
button: "Bản đồ"
tooltip: "Mọi bản đồ"
}
markers: {
title: "Đánh dấu"
button: "Đánh dấu"
tooltip: "Mọi đánh dấu"
marker: "đánh dấu | các đánh dấu"
markerSet: "cụm đánh dấu | các cụm đánh dấu"
searchPlaceholder: "Tìm..."
followPlayerTitle: "Bám theo"
sort {
title: "Sắp xếp"
by {
default: "mặc định"
label: "tên"
distance: "khoảng cách"
}
}
}
settings: {
title: "Cài đặt"
button: "Cài đặt"
}
goFullscreen: {
button: "Toàn màn hình"
}
resetCamera: {
button: "Đặt lại camera"
tooltip: "Đặt lại camera và vị trí"
}
updateMap: {
button: "Cập nhật bản đồ"
tooltip: "Xóa bộ nhớ đệm"
}
lighting: {
title: "Ánh sáng"
dayNightSwitch: {
tooltip: "Ngày/Đêm"
}
sunlight: "Nhật quang"
ambientLight: "Phát quang"
}
resolution: {
title: "Độ phân giải"
high: "Cao (SSAA x2)"
normal: "Thường (Native x1)"
low: "Thấp (Upscaling x0.5)"
}
mapControls: {
title: "Điều khiển"
showZoomButtons: "Hiện nút thu phóng"
}
freeFlightControls: {
title: "Chế độ bay"
mouseSensitivity: "Độ nhạy chuột"
invertMouseY: "Đảo trục dọc"
}
renderDistance: {
title: "Khoảng cách kết xuất"
hiresLayer: "Vùng chất lượng cao"
lowersLayer: "Vùng chất lượng thấp"
loadHiresWhileMoving: "Tải vùng chất lượng cao khi di chuyển"
off: "Tắt"
}
theme: {
title: "Giao diện"
default: "Mặc định (hệ thống)"
dark: "Tối"
light: "Sáng"
contrast: "Tương phản"
}
chunkBorders: {
button: "Hiện đường viền chunk"
}
debug: {
button: "Gỡ lỗi"
}
resetAllSettings: {
button: "Thiết đặt lại"
}
players: {
title: "Người chơi"
tooltip: "Danh sách người chơi"
}
compass: {
tooltip: "Hướng / chỉ bắc"
}
screenshot: {
title: "Chụp màn hình"
button: "Chụp màn hình"
clipboard: "Sao chép"
}
controls: {
title: "Chế độ"
perspective: {
button: "Xung quanh"
tooltip: "Góc nhìn xung quanh"
}
flatView: {
button: "Phẳng"
tooltip: "Góc nhìn từ trên xuống"
}
freeFlight: {
button: "Bay"
tooltip: "Góc nhìn chim bay"
}
}
language: {
title: "Ngôn ngữ"
}
blockTooltip: {
block: "Khối"
position: "Vị trí"
chunk: "Vùng"
region: {
region: "Khu vực"
file: "Tập tin"
}
light: {
light: "Ánh sáng"
sun: "Nhật quang"
block: "Phát quang"
}
clipboard: "Bấm để sao chép"
}
info: {
title: "Thông tin"
button: "Thông tin"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>Điều khiển chuột:</h2>
<table>
<tr><th>Di chuyển</th><td><kbd>chuột trái</kbd> + kéo</td></tr>
<tr><th>Thu phóng</th><td><kbd>lăn chuột</kbd></td></tr>
<tr><th>Xoay/nghiêng</th><td><kbd>chuột phải</kbd> + kéo</td></tr>
</table>
</p>
<p>
<h2>Điều khiển bàn phím:</h2>
<table>
<tr><th>Di chuyển</th><td><kbd>wasd</kbd> / <kbd>phím mũi tên</kbd></td></tr>
<tr><th>Thu phóng</th><td>Bàn phím số: <kbd>+</kbd>/<kbd>-</kbd> or <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>Xoay/nghiêng</th><td><kbd>Alt trái</kbd> + <kbd>wasd</kbd> / <kbd>phím mũi tên</kbd> hoặc <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>Điều khiển cảm ứng:</h2>
<table>
<tr><th>Di chuyển</th><td>chạm + kéo</td></tr>
<tr><th>Thu phóng</th><td>chạm 2 ngón + nhón</td></tr>
<tr><th>Xoay/nghiêng</th><td>chạm 2 ngón + di chuyển / xoay</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
Trang được tạo bằng &#9829; với <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,171 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "菜单"
tooltip: "打开菜单"
}
map: {
unloaded: "未加载地图."
loading: "正在加载地图..."
errored: "尝试加载此地图时出错!"
}
maps: {
title: "地图"
button: "地图"
tooltip: "地图列表"
}
markers: {
title: "标记"
button: "标记"
tooltip: "标记列表"
marker: "标记 | 标记列表"
markerSet: "标记集 | 标记集"
searchPlaceholder: "搜索..."
followPlayerTitle: "跟随玩家"
sort {
title: "排序方式"
by {
default: "默认"
label: "名称"
distance: "距离"
}
}
}
settings: {
title: "设置"
button: "打开设置"
}
goFullscreen: {
button: "全屏"
}
resetCamera: {
button: "重置镜头"
tooltip: "重置镜头和位置"
}
updateMap: {
button: "更新地图"
tooltip: "清除方块缓存"
}
lighting: {
title: "光照"
dayNightSwitch: {
tooltip: "昼/夜"
}
sunlight: "日光"
ambientLight: "环境光"
}
resolution: {
title: "抗锯齿"
high: "高SSAA x2"
normal: "普通(默认 x1"
low: "低(粗糙 x0.5"
}
mapControls: {
title: "地图控制"
showZoomButtons: "显示缩放按钮"
}
freeFlightControls: {
title: "自由飞行控制"
mouseSensitivity: "鼠标灵敏度"
invertMouseY: "反转鼠标 Y 轴"
}
renderDistance: {
title: "渲染距离"
hiresLayer: "高分辨率"
lowersLayer: "低分辨率"
loadHiresWhileMoving: "移动时加载高清图像"
off: "关闭"
}
theme: {
title: "主题"
default: "默认(系统/浏览器)"
dark: "深色模式"
light: "浅色模式"
contrast: "高对比模式"
}
debug: {
button: "调试"
}
resetAllSettings: {
button: "重置所有设置"
}
players: {
title: "玩家"
tooltip: "玩家列表"
}
compass: {
tooltip: "指南针 / 朝北"
}
screenshot: {
title: "截图"
button: "截图"
clipboard: "复制到剪贴板"
}
controls: {
title: "视野 / 控制"
perspective: {
button: "透视"
tooltip: "透视视野"
}
flatView: {
button: "平视"
tooltip: "正交视图 / 平坦视图"
}
freeFlight: {
button: "自由视野"
tooltip: "自由视野 / 观察者模式"
}
}
language: {
title: "语言"
}
blockTooltip: {
block: "方块"
position: "坐标"
chunk: "区块"
region: {
region: "区域"
file: "文件"
}
light: {
light: "光源"
sun: "太阳"
block: "方块"
}
}
info: {
title: "信息"
button: "信息"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>鼠标控制:</h2>
<table>
<tr><th>移动</th><td><kbd>左键点击</kbd> + 拖动</td></tr>
<tr><th>缩放</th><td><kbd>鼠标滚轮</kbd>(滚动)</td></tr>
<tr><th>旋转 / 倾斜</th><td><kbd>右键点击</kbd> + 拖动</td></tr>
</table>
</p>
<p>
<h2>键盘控制:</h2>
<table>
<tr><th>移动</th><td><kbd>wasd</kbd> / <kbd>方向键</kbd></td></tr>
<tr><th>缩放</th><td>小键盘: <kbd>+</kbd>/<kbd>-</kbd> 或者 <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>旋转 / 倾斜</th><td><kbd>左-Alt</kbd> + <kbd>wasd</kbd> / <kbd>方向键</kbd> 或 <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>触屏控制:</h2>
<table>
<tr><th>移动</th><td>触屏 + 拖动</td></tr>
<tr><th>缩放</th><td>双指触屏 + 捏合</td></tr>
<tr><th>旋转 / 倾斜</th><td>双指触屏 + 旋转 / 向上滑动 / 向下滑动</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
本地图用 &#9829 制作,使用了 <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} 程序。
</p>
"""
}
}

View File

@ -0,0 +1,144 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "菜單"
tooltip: "菜單"
}
maps: {
title: "地圖"
button: "地圖"
tooltip: "地圖列表"
}
markers: {
title: "標記"
button: "標記"
tooltip: "標記列表"
marker: "標記 | 標記"
markerSet: "標記設定 | 標記設定"
}
settings: {
title: "設定"
button: "設定"
}
goFullscreen: {
button: "開啟全螢幕模式"
}
resetCamera: {
button: "重設鏡頭視角"
tooltip: "重設鏡頭視角及位置"
}
updateMap: {
button: "重新讀取地圖"
tooltip: "移除地圖快取"
}
lighting: {
title: "光影"
dayNightSwitch: {
tooltip: "日/夜"
}
sunlight: "日光"
ambientLight: "環境亮度"
}
resolution: {
title: "解像度"
high: "高 (SSAA反鋸齒 x2)"
normal: "普通 (預設 x1)"
low: "低 (倍率 x0.5)"
}
freeFlightControls: {
title: "自由瀏覽飛行模式"
mouseSensitivity: "滑鼠靈敏度"
invertMouseY: "反轉Y軸"
}
renderDistance: {
title: "渲染距離"
hiresLayer: "高解像度層"
lowersLayer: "低解像度層"
}
theme: {
title: "顯示距離"
default: "預設 (系統/瀏覽器)"
dark: "黑暗"
light: "光亮"
}
debug: {
button: "除錯"
}
resetAllSettings: {
button: "重設所有設定"
}
players: {
title: "玩家"
tooltip: "玩家列表"
}
compass: {
tooltip: "指南針/朝北"
}
controls: {
title: "觀賞模式/控制"
perspective: {
button: "3D透視"
tooltip: "3D透視-觀賞模式"
}
flatView: {
button: "平面"
tooltip: "平面投射 / 平面-觀賞模式"
}
freeFlight: {
button: "自由瀏覽飛行模式"
tooltip: "自由瀏覽 / 觀察者模式"
}
}
language: {
title: "語言"
}
blockTooltip: {
block: "方塊"
position: "位置"
chunk: "區塊"
region: {
region: "區域"
file: "檔案"
}
light: {
light: "光亮度"
sun: "太陽"
block: "方塊"
}
}
info: {
title: "資訊"
button: "資訊"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>滑鼠控制:</h2>
<table>
<tr><th>移動</th><td><kbd>左鍵</kbd> + 拖拉</td></tr>
<tr><th>放大縮小</th><td><kbd>滑鼠滾輪</kbd> (滾動)</td></tr>
<tr><th>旋轉 / 傾斜</th><td><kbd>右鍵</kbd> + 拖拉</td></tr>
</table>
</p>
<p>
<h2>鍵盤控制:</h2>
<table>
<tr><th>移動</th><td><kbd>wasd</kbd> / <kbd>箭嘴按鍵</kbd></td></tr>
<tr><th>放大縮小</th><td>數字鍵: <kbd>+</kbd>/<kbd>-</kbd> 或 <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>旋轉 / 傾斜</th><td><kbd>左 Alt</kbd> + <kbd>wasd</kbd> / <kbd>arrow-keys</kbd> 或 <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>觸碰控制:</h2>
<table>
<tr><th>移動</th><td>觸碰 + 拖拉</td></tr>
<tr><th>放大縮小</th><td>用兩隻手指觸碰 </td></tr>
<tr><th>旋轉 / 傾斜</th><td>用兩隻手指觸碰 + 旋轉 或 同時向上/下</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
此地圖是用 &#9829; 製作,地圖插件名稱是 <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
</p>
"""
}
}

View File

@ -0,0 +1,174 @@
{
pageTitle: "BlueMap - {map}"
menu: {
title: "選單"
tooltip: "選單"
}
map: {
unloaded: "未載入任何地圖。"
loading: "正在載入地圖..."
errored: "載入地圖時發生錯誤!"
}
maps: {
title: "地圖"
button: "地圖"
tooltip: "地圖清單"
}
markers: {
title: "標記"
button: "標記"
tooltip: "標記清單"
marker: "個標記 | 個標記"
markerSet: "個標記組 | 個標記組"
searchPlaceholder: "搜尋..."
followPlayerTitle: "跟隨玩家"
sort: {
title: "排序方式"
by: {
default: "預設"
label: "名稱"
distance: "距離"
}
}
}
settings: {
title: "設定"
button: "設定"
}
goFullscreen: {
button: "全螢幕模式"
}
resetCamera: {
button: "重設相機"
tooltip: "重設相機與位置"
}
updateMap: {
button: "更新地圖"
tooltip: "清除暫存"
}
lighting: {
title: "光照"
dayNightSwitch: {
tooltip: "日 / 夜"
}
sunlight: "陽光"
ambientLight: "環境光"
}
resolution: {
title: "解析度"
high: "高SSAA 反鋸齒×2"
normal: "正常原生×1"
low: "低縮放×0.5"
}
mapControls: {
title: "地圖控制"
showZoomButtons: "顯示縮放按鈕"
}
freeFlightControls: {
title: "自由飛行控制"
mouseSensitivity: "滑鼠靈敏度"
invertMouseY: "反轉滑鼠 Y 軸"
}
renderDistance: {
title: "顯示距離"
hiresLayer: "高解析度層"
lowersLayer: "低解析度層"
loadHiresWhileMoving: "移動時載入高解析度層"
off: "關閉"
}
theme: {
title: "主題"
default: "預設(系統 / 瀏覽器)"
dark: "深色模式"
light: "淺色模式"
contrast: "對比模式"
}
chunkBorders: {
button: "顯示區塊邊界"
}
debug: {
button: "除錯模式"
}
resetAllSettings: {
button: "重設所有設定"
}
players: {
title: "玩家"
tooltip: "玩家清單"
}
compass: {
tooltip: "指南針 / 面向北方"
}
screenshot: {
title: "螢幕擷取畫面"
button: "擷圖"
clipboard: "複製到剪貼板"
}
controls: {
title: "視角 / 控制"
perspective: {
button: "透視"
tooltip: "透視視角"
}
flatView: {
button: "平面"
tooltip: "正交 / 平面視角"
}
freeFlight: {
button: "自由飛行"
tooltip: "自由飛行 / 旁觀模式"
}
}
language: {
title: "語言"
}
blockTooltip: {
block: "方塊"
position: "位置"
chunk: "區塊"
region: {
region: "區域"
file: "檔案"
}
light: {
light: "亮度"
sun: "日光"
block: "方塊"
}
}
info: {
title: "資訊"
button: "資訊"
content: """
<img src="assets/logo.png" style="display: block; width: 40%; margin: 3em auto; border-radius: 50%">
<p>
<h2>滑鼠控制:</h2>
<table>
<tr><th>移動</th><td><kbd>按下左鍵</kbd> + 拖曳</td></tr>
<tr><th>縮放</th><td><kbd>滑鼠滾輪</kbd滾動</td></tr>
<tr><th>旋轉 / 傾斜</th><td><kbd>按下右鍵</kbd> + 拖曳</td></tr>
</table>
</p>
<p>
<h2>鍵盤控制:</h2>
<table>
<tr><th>移動</th><td><kbd>wasd</kbd> / <kbd>方向鍵</kbd></td></tr>
<tr><th>縮放</th><td>Numpad數字鍵盤<kbd>+</kbd>/<kbd>-</kbd> 或 <kbd>Ins</kbd>/<kbd>Home</kbd></td></tr>
<tr><th>旋轉 / 傾斜</th><td><kbd>左 Alt</kbd> + <kbd>wasd</kbd> / <kbd>方向鍵</kbd> 或 <kbd>Delete</kbd>/<kbd>End</kbd>/<kbd>Page Up</kbd>/<kbd>Page Down</kbd></td></tr>
</table>
</p>
<p>
<h2>觸控控制:</h2>
<table>
<tr><th>移動</th><td>觸控 + 拖曳</td></tr>
<tr><th>縮放</th><td>雙指觸控 + 開合</td></tr>
<tr><th>旋轉/傾斜</th><td>雙指觸控 + 旋轉 / 上下移動</td></tr>
</table>
</p>
<br><hr>
<p class="info-footer">
這張地圖使用 <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} 充滿愛心 &#9829 地製作而成
</p>
"""
}
}

View File

@ -0,0 +1 @@
{"version":"5.9","useCookies":true,"defaultToFlatView":true,"resolutionDefault":1.0,"minZoomDistance":5,"maxZoomDistance":100000,"hiresSliderMax":500,"hiresSliderDefault":100,"hiresSliderMin":0,"lowresSliderMax":7000,"lowresSliderDefault":2000,"lowresSliderMin":500,"mapDataRoot":"maps","liveDataRoot":"maps","maps":["world","world_the_end","world_nether"],"scripts":[],"styles":[]}

View File

@ -0,0 +1,256 @@
<?php
// !!! SET YOUR SQL-CONNECTION SETTINGS HERE: !!!
$driver = 'mysql'; // 'mysql' (MySQL) or 'pgsql' (PostgreSQL)
$hostname = '127.0.0.1';
$port = 3306;
$username = 'root';
$password = '';
$database = 'bluemap';
// !!! END - DONT CHANGE ANYTHING AFTER THIS LINE !!!
// compression
$compressionHeaderMap = [
"bluemap:none" => null,
"bluemap:gzip" => "gzip",
"bluemap:deflate" => "deflate",
"bluemap:zstd" => "zstd",
"bluemap:lz4" => "lz4"
];
// meta files
$metaFileKeys = [
"settings.json" => "bluemap:settings",
"textures.json" => "bluemap:textures",
"live/markers.json" => "bluemap:markers",
"live/players.json" => "bluemap:players",
];
// mime-types for meta-files
$mimeDefault = "application/octet-stream";
$mimeTypes = [
"txt" => "text/plain",
"css" => "text/css",
"csv" => "text/csv",
"htm" => "text/html",
"html" => "text/html",
"js" => "text/javascript",
"xml" => "text/xml",
"png" => "image/png",
"jpg" => "image/jpeg",
"jpeg" => "image/jpeg",
"gif" => "image/gif",
"webp" => "image/webp",
"tif" => "image/tiff",
"tiff" => "image/tiff",
"svg" => "image/svg+xml",
"json" => "application/json",
"mp3" => "audio/mpeg",
"oga" => "audio/ogg",
"wav" => "audio/wav",
"weba" => "audio/webm",
"mp4" => "video/mp4",
"mpeg" => "video/mpeg",
"webm" => "video/webm",
"ttf" => "font/ttf",
"woff" => "font/woff",
"woff2" => "font/woff2"
];
// some helper functions
function error($code, $message = null) {
global $path;
http_response_code($code);
header("Content-Type: text/plain");
echo "BlueMap php-script - $code\n";
if ($message != null) echo $message."\n";
echo "Requested Path: $path";
exit;
}
function startsWith($haystack, $needle) {
return substr($haystack, 0, strlen($needle)) === $needle;
}
function issetOrElse(& $var, $fallback) {
return isset($var) ? $var : $fallback;
}
function compressionHeader($compressionKey) {
global $compressionHeaderMap;
$compressionHeader = issetOrElse($compressionHeaderMap[$compressionKey], null);
if ($compressionHeader)
header("Content-Encoding: ".$compressionHeader);
}
function getMimeType($path) {
global $mimeDefault, $mimeTypes;
$i = strrpos($path, ".");
if ($i === false) return $mimeDefault;
$s = strrpos($path, "/");
if ($s !== false && $i < $s) return $mimeDefault;
$suffix = substr($path, $i + 1);
if (isset($mimeTypes[$suffix]))
return $mimeTypes[$suffix];
return $mimeDefault;
}
function send($data) {
if (is_resource($data)) {
fpassthru($data);
} else {
echo $data;
}
}
// determine relative request-path
$root = dirname($_SERVER['PHP_SELF']);
if ($root === "/" || $root === "\\") $root = "";
$uriPath = $_SERVER['REQUEST_URI'];
$path = substr($uriPath, strlen($root));
// add /
if ($path === "") {
header("Location: $uriPath/");
exit;
}
// root => index.html
if ($path === "/") {
header("Content-Type: text/html");
echo file_get_contents("index.html");
exit;
}
if (startsWith($path, "/maps/")) {
// determine map-path
$pathParts = explode("/", substr($path, strlen("/maps/")), 2);
$mapId = $pathParts[0];
$mapPath = explode("?", $pathParts[1], 2)[0];
// Initialize PDO
try {
$sql = new PDO("$driver:host=$hostname;port=$port;dbname=$database", $username, $password);
$sql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e ) {
error_log($e->getMessage(), 0); // Logs the detailed error message
error(500, "Failed to connect to database");
}
// provide map-tiles
if (startsWith($mapPath, "tiles/")) {
// parse tile-coordinates
preg_match_all("/tiles\/([\d\/]+)\/x(-?[\d\/]+)z(-?[\d\/]+).*/", $mapPath, $matches);
$lod = intval($matches[1][0]);
$storage = $lod === 0 ? "bluemap:hires" : "bluemap:lowres/".$lod;
$tileX = intval(str_replace("/", "", $matches[2][0]));
$tileZ = intval(str_replace("/", "", $matches[3][0]));
// query for tile
try {
$statement = $sql->prepare("
SELECT d.data, c.key
FROM bluemap_grid_storage_data d
INNER JOIN bluemap_map m
ON d.map = m.id
INNER JOIN bluemap_grid_storage s
ON d.storage = s.id
INNER JOIN bluemap_compression c
ON d.compression = c.id
WHERE m.map_id = :map_id
AND s.key = :storage
AND d.x = :x
AND d.z = :z
");
$statement->bindParam( ':map_id', $mapId, PDO::PARAM_STR );
$statement->bindParam( ':storage', $storage, PDO::PARAM_STR );
$statement->bindParam( ':x', $tileX, PDO::PARAM_INT );
$statement->bindParam( ':z', $tileZ, PDO::PARAM_INT );
$statement->setFetchMode(PDO::FETCH_ASSOC);
$statement->execute();
// return result
if ($line = $statement->fetch()) {
header("Cache-Control: public,max-age=86400");
compressionHeader($line["key"]);
if ($lod === 0) {
header("Content-Type: application/octet-stream");
} else {
header("Content-Type: image/png");
}
send($line["data"]);
exit;
}
} catch (PDOException $e) {
error_log($e->getMessage(), 0);
error(500, "Failed to fetch data");
}
// no content if nothing found
http_response_code(204);
exit;
}
// provide meta-files
$storage = issetOrElse($metaFileKeys[$mapPath], null);
if ($storage === null && startsWith($mapPath, "assets/"))
$storage = "bluemap:asset/".substr($mapPath, strlen("assets/"));
if ($storage !== null) {
try {
$statement = $sql->prepare("
SELECT d.data, c.key
FROM bluemap_item_storage_data d
INNER JOIN bluemap_map m
ON d.map = m.id
INNER JOIN bluemap_item_storage s
ON d.storage = s.id
INNER JOIN bluemap_compression c
ON d.compression = c.id
WHERE m.map_id = :map_id
AND s.key = :storage
");
$statement->bindParam( ':map_id', $mapId, PDO::PARAM_STR );
$statement->bindParam( ':storage', $storage, PDO::PARAM_STR );
$statement->setFetchMode(PDO::FETCH_ASSOC);
$statement->execute();
if ($line = $statement->fetch()) {
header("Cache-Control: public,max-age=86400");
header("Content-Type: ".getMimeType($mapPath));
compressionHeader($line["key"]);
send($line["data"]);
exit;
}
} catch (PDOException $e) {
error_log($e->getMessage(), 0);
error(500, "Failed to fetch data");
}
}
}
// no match => 404
error(404);

View File

@ -0,0 +1,147 @@
## ##
## BlueMap ##
## Map-Config ##
## ##
# The path to the save-folder of the world to render.
# (If this is not defined (commented out or removed), the map will be only registered to the web-server and the web-app
# but not rendered or loaded by BlueMap. This can be used to display a map that has been rendered somewhere else.)
world: "world"
# The dimension of the world. Can be "minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"
# or any dimension-key introduced by a mod or datapack.
dimension: "minecraft:overworld"
# The display-name of this map -> how this map will be named on the webapp.
# You can change this at any time.
# Default is the id of this map
name: "world (overworld)"
# A lower value makes the map sorted first (in lists and menus), a higher value makes it sorted later.
# The value needs to be an integer but it can be negative.
# You can change this at any time.
# Default is 0
sorting: 0
# The position on the world where the map will be centered if you open it.
# You can change this at any time.
# This defaults to the world-spawn if you don't set it.
#start-pos: {x:500, z:-820}
# The color of the sky as a hex-color
# You can change this at any time.
# Default is "#7dabff"
sky-color: "#7dabff"
# The color of the void as a hex-color
# You can change this at any time.
# Default is "#000000"
void-color: "#000000"
# Defines the initial sky-light-strength the map will be set to when it is opened.
# 0 is no sky-light, 1 is fully lighted.
# You can change this at any time.
# Default is 1
sky-light: 1
# Defines the ambient light-strength that every block is receiving, regardless of the sunlight/blocklight.
# 0 is no ambient light, 1 is fully lighted.
# You can change this at any time.
# Default is 0
ambient-light: 0.1
# BlueMap tries to omit all blocks that are below this Y-level and are not visible from above-ground.
# More specific: Block-Faces that have a sunlight/skylight value of 0 are removed.
# This improves the performance of the map on slower devices by a lot, but might cause some blocks to disappear that should normally be visible.
# Changing this value requires a re-render of the map.
# Set to a very high value to remove caves everywhere (e.g. 10000)
# Set to a very low value to remove nothing and render all caves (e.g. -10000)
# Default is 55 (slightly below water-level)
remove-caves-below-y: 55
# This is the amount of blocks relative to the "ocean-floor" heightmap that the cave-detection will start at.
# Everything above that (heightmap-relative) y-level will not be removed.
# Comment or set to a very high value to disable using the ocean-floor heightmap for cave-detection.
# Changing this value requires a re-render of the map.
# Defaults to 10000 (disabled)
cave-detection-ocean-floor: -5
# With this value set to true, BlueMap also uses the block-light value (additionally to the sky-light) to "detect caves".
# (See: remove-caves-below-y)
# Changing this value requires a re-render of the map.
# Default is false
cave-detection-uses-block-light: false
# With the below values you can limit the map-render.
# This can be used to ignore the nethers ceiling or render only a certain part of a world.
# If you change these values, bluemap automatically tries to update the map,
# including deleting map-tiles which are outside the new limits.
# Default is no min or max value (= infinite bounds)
#min-x: -4000
#max-x: 4000
#min-z: -4000
#max-z: 4000
#min-y: 50
#max-y: 100
# The minimum "inhabitedTime" value that a chunk must have to be rendered.
# If you set this to a value greater than 0, bluemap will only render chunks that players have visited already.
# Default is 0
min-inhabited-time: 0
# Using this, BlueMap pretends that every Block out of the defined render-bounds is AIR,
# this means you can see the blocks where the world is cut (instead of having a see-through/xray view).
# This has only an effect if you set some render-bounds above.
# Changing this value requires a re-render of the map.
# Default is true
render-edges: true
# Whether the perspective view will be enabled for this map.
# Changing this to true requires a re-render of the map, only if the hires-layer is enabled and free-flight view is disabled.
# Default is true
enable-perspective-view: false
# Whether the flat (isometric, top-down) view will be enabled for this map.
# Having only flat-view enabled while disabling free-flight and perspective will speed up the render and reduce the maps storage-size.
# Default is true
enable-flat-view: true
# Whether the free-flight view will be enabled for this map.
# Changing this to true requires a re-render of the map, only if the hires-layer is enabled and perspective view is disabled.
# Default is true
enable-free-flight-view: false
# Whether the hires-layer will be enabled.
# Disabling this will speed up rendering and reduce the size of the map-files a lot.
# But you will not be able to see the full 3d-models if you zoom in on the map.
# Changing this to false will not remove any existing tiles, existing tiles just won't get updated anymore.
# Changing this to true will require a re-render of the map.
# Default is true
enable-hires: false
# This defines the storage-config that will be used to save this map.
# You can find your storage configs next to this config file in the 'storages'-folder.
# Changing this value requires a re-render of the map. The map in the old storage will not be deleted.
# Default is "file"
storage: "file"
# Normally BlueMap detects if a chunk has not yet generated it's light-data and omits rendering those chunks.
# If this is set to true BlueMap will render Chunks even if there is no light-data!
# This can be useful for example if some mod prevents light-data from being saved correctly.
# However, this also has a few drawbacks:
# - For those chunks, every block will always be fully lit
# - Night-mode might not work correctly
# - Caves will always be rendered (ignoring the 'renderCaves' setting)
# Default is false
ignore-missing-light-data: false
# Here you can define any static marker-sets with markers that should be displayed on the map.
# You can change this at any time.
# If you need dynamic markers, you can use any plugin that integrates with BlueMap's API.
# Here is a list: https://bluemap.bluecolored.de/community/3rdPartySupport.html
marker-sets: {
# Please check out the wiki for information on how to configure this:
# https://bluemap.bluecolored.de/wiki/customization/Markers.html
}

View File

@ -0,0 +1,147 @@
## ##
## BlueMap ##
## Map-Config ##
## ##
# The path to the save-folder of the world to render.
# (If this is not defined (commented out or removed), the map will be only registered to the web-server and the web-app
# but not rendered or loaded by BlueMap. This can be used to display a map that has been rendered somewhere else.)
world: "world_nether"
# The dimension of the world. Can be "minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"
# or any dimension-key introduced by a mod or datapack.
dimension: "minecraft:the_nether"
# The display-name of this map -> how this map will be named on the webapp.
# You can change this at any time.
# Default is the id of this map
name: "world_nether (the_nether)"
# A lower value makes the map sorted first (in lists and menus), a higher value makes it sorted later.
# The value needs to be an integer but it can be negative.
# You can change this at any time.
# Default is 0
sorting: 100
# The position on the world where the map will be centered if you open it.
# You can change this at any time.
# This defaults to the world-spawn if you don't set it.
#start-pos: {x:500, z:-820}
# The color of the sky as a hex-color
# You can change this at any time.
# Default is "#7dabff"
sky-color: "#290000"
# The color of the void as a hex-color
# You can change this at any time.
# Default is "#000000"
void-color: "#150000"
# Defines the initial sky-light-strength the map will be set to when it is opened.
# 0 is no sky-light, 1 is fully lighted.
# You can change this at any time.
# Default is 1
sky-light: 1
# Defines the ambient light-strength that every block is receiving, regardless of the sunlight/blocklight.
# 0 is no ambient light, 1 is fully lighted.
# You can change this at any time.
# Default is 0
ambient-light: 0.6
# BlueMap tries to omit all blocks that are below this Y-level and are not visible from above-ground.
# More specific: Block-Faces that have a sunlight/skylight value of 0 are removed.
# This improves the performance of the map on slower devices by a lot, but might cause some blocks to disappear that should normally be visible.
# Changing this value requires a re-render of the map.
# Set to a very high value to remove caves everywhere (e.g. 10000)
# Set to a very low value to remove nothing and render all caves (e.g. -10000)
# Default is 55 (slightly below water-level)
remove-caves-below-y: -10000
# This is the amount of blocks relative to the "ocean-floor" heightmap that the cave-detection will start at.
# Everything above that (heightmap-relative) y-level will not be removed.
# Comment or set to a very high value to disable using the ocean-floor heightmap for cave-detection.
# Changing this value requires a re-render of the map.
# Defaults to 10000 (disabled)
cave-detection-ocean-floor: -5
# With this value set to true, BlueMap also uses the block-light value (additionally to the sky-light) to "detect caves".
# (See: remove-caves-below-y)
# Changing this value requires a re-render of the map.
# Default is false
cave-detection-uses-block-light: false
# With the below values you can limit the map-render.
# This can be used to ignore the nethers ceiling or render only a certain part of a world.
# If you change these values, bluemap automatically tries to update the map,
# including deleting map-tiles which are outside the new limits.
# Default is no min or max value (= infinite bounds)
#min-x: -4000
#max-x: 4000
#min-z: -4000
#max-z: 4000
#min-y: 50
max-y: 90
# The minimum "inhabitedTime" value that a chunk must have to be rendered.
# If you set this to a value greater than 0, bluemap will only render chunks that players have visited already.
# Default is 0
min-inhabited-time: 0
# Using this, BlueMap pretends that every Block out of the defined render-bounds is AIR,
# this means you can see the blocks where the world is cut (instead of having a see-through/xray view).
# This has only an effect if you set some render-bounds above.
# Changing this value requires a re-render of the map.
# Default is true
render-edges: true
# Whether the perspective view will be enabled for this map.
# Changing this to true requires a re-render of the map, only if the hires-layer is enabled and free-flight view is disabled.
# Default is true
enable-perspective-view: false
# Whether the flat (isometric, top-down) view will be enabled for this map.
# Having only flat-view enabled while disabling free-flight and perspective will speed up the render and reduce the maps storage-size.
# Default is true
enable-flat-view: true
# Whether the free-flight view will be enabled for this map.
# Changing this to true requires a re-render of the map, only if the hires-layer is enabled and perspective view is disabled.
# Default is true
enable-free-flight-view: false
# Whether the hires-layer will be enabled.
# Disabling this will speed up rendering and reduce the size of the map-files a lot.
# But you will not be able to see the full 3d-models if you zoom in on the map.
# Changing this to false will not remove any existing tiles, existing tiles just won't get updated anymore.
# Changing this to true will require a re-render of the map.
# Default is true
enable-hires: false
# This defines the storage-config that will be used to save this map.
# You can find your storage configs next to this config file in the 'storages'-folder.
# Changing this value requires a re-render of the map. The map in the old storage will not be deleted.
# Default is "file"
storage: "file"
# Normally BlueMap detects if a chunk has not yet generated it's light-data and omits rendering those chunks.
# If this is set to true BlueMap will render Chunks even if there is no light-data!
# This can be useful for example if some mod prevents light-data from being saved correctly.
# However, this also has a few drawbacks:
# - For those chunks, every block will always be fully lit
# - Night-mode might not work correctly
# - Caves will always be rendered (ignoring the 'renderCaves' setting)
# Default is false
ignore-missing-light-data: false
# Here you can define any static marker-sets with markers that should be displayed on the map.
# You can change this at any time.
# If you need dynamic markers, you can use any plugin that integrates with BlueMap's API.
# Here is a list: https://bluemap.bluecolored.de/community/3rdPartySupport.html
marker-sets: {
# Please check out the wiki for information on how to configure this:
# https://bluemap.bluecolored.de/wiki/customization/Markers.html
}

View File

@ -0,0 +1,147 @@
## ##
## BlueMap ##
## Map-Config ##
## ##
# The path to the save-folder of the world to render.
# (If this is not defined (commented out or removed), the map will be only registered to the web-server and the web-app
# but not rendered or loaded by BlueMap. This can be used to display a map that has been rendered somewhere else.)
world: "world_the_end"
# The dimension of the world. Can be "minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"
# or any dimension-key introduced by a mod or datapack.
dimension: "minecraft:the_end"
# The display-name of this map -> how this map will be named on the webapp.
# You can change this at any time.
# Default is the id of this map
name: "world_the_end (the_end)"
# A lower value makes the map sorted first (in lists and menus), a higher value makes it sorted later.
# The value needs to be an integer but it can be negative.
# You can change this at any time.
# Default is 0
sorting: 200
# The position on the world where the map will be centered if you open it.
# You can change this at any time.
# This defaults to the world-spawn if you don't set it.
#start-pos: {x:500, z:-820}
# The color of the sky as a hex-color
# You can change this at any time.
# Default is "#7dabff"
sky-color: "#080010"
# The color of the void as a hex-color
# You can change this at any time.
# Default is "#000000"
void-color: "#080010"
# Defines the initial sky-light-strength the map will be set to when it is opened.
# 0 is no sky-light, 1 is fully lighted.
# You can change this at any time.
# Default is 1
sky-light: 1
# Defines the ambient light-strength that every block is receiving, regardless of the sunlight/blocklight.
# 0 is no ambient light, 1 is fully lighted.
# You can change this at any time.
# Default is 0
ambient-light: 0.6
# BlueMap tries to omit all blocks that are below this Y-level and are not visible from above-ground.
# More specific: Block-Faces that have a sunlight/skylight value of 0 are removed.
# This improves the performance of the map on slower devices by a lot, but might cause some blocks to disappear that should normally be visible.
# Changing this value requires a re-render of the map.
# Set to a very high value to remove caves everywhere (e.g. 10000)
# Set to a very low value to remove nothing and render all caves (e.g. -10000)
# Default is 55 (slightly below water-level)
remove-caves-below-y: -10000
# This is the amount of blocks relative to the "ocean-floor" heightmap that the cave-detection will start at.
# Everything above that (heightmap-relative) y-level will not be removed.
# Comment or set to a very high value to disable using the ocean-floor heightmap for cave-detection.
# Changing this value requires a re-render of the map.
# Defaults to 10000 (disabled)
cave-detection-ocean-floor: -5
# With this value set to true, BlueMap also uses the block-light value (additionally to the sky-light) to "detect caves".
# (See: remove-caves-below-y)
# Changing this value requires a re-render of the map.
# Default is false
cave-detection-uses-block-light: false
# With the below values you can limit the map-render.
# This can be used to ignore the nethers ceiling or render only a certain part of a world.
# If you change these values, bluemap automatically tries to update the map,
# including deleting map-tiles which are outside the new limits.
# Default is no min or max value (= infinite bounds)
#min-x: -4000
#max-x: 4000
#min-z: -4000
#max-z: 4000
#min-y: 50
#max-y: 100
# The minimum "inhabitedTime" value that a chunk must have to be rendered.
# If you set this to a value greater than 0, bluemap will only render chunks that players have visited already.
# Default is 0
min-inhabited-time: 0
# Using this, BlueMap pretends that every Block out of the defined render-bounds is AIR,
# this means you can see the blocks where the world is cut (instead of having a see-through/xray view).
# This has only an effect if you set some render-bounds above.
# Changing this value requires a re-render of the map.
# Default is true
render-edges: true
# Whether the perspective view will be enabled for this map.
# Changing this to true requires a re-render of the map, only if the hires-layer is enabled and free-flight view is disabled.
# Default is true
enable-perspective-view: false
# Whether the flat (isometric, top-down) view will be enabled for this map.
# Having only flat-view enabled while disabling free-flight and perspective will speed up the render and reduce the maps storage-size.
# Default is true
enable-flat-view: true
# Whether the free-flight view will be enabled for this map.
# Changing this to true requires a re-render of the map, only if the hires-layer is enabled and perspective view is disabled.
# Default is true
enable-free-flight-view: false
# Whether the hires-layer will be enabled.
# Disabling this will speed up rendering and reduce the size of the map-files a lot.
# But you will not be able to see the full 3d-models if you zoom in on the map.
# Changing this to false will not remove any existing tiles, existing tiles just won't get updated anymore.
# Changing this to true will require a re-render of the map.
# Default is true
enable-hires: false
# This defines the storage-config that will be used to save this map.
# You can find your storage configs next to this config file in the 'storages'-folder.
# Changing this value requires a re-render of the map. The map in the old storage will not be deleted.
# Default is "file"
storage: "file"
# Normally BlueMap detects if a chunk has not yet generated it's light-data and omits rendering those chunks.
# If this is set to true BlueMap will render Chunks even if there is no light-data!
# This can be useful for example if some mod prevents light-data from being saved correctly.
# However, this also has a few drawbacks:
# - For those chunks, every block will always be fully lit
# - Night-mode might not work correctly
# - Caves will always be rendered (ignoring the 'renderCaves' setting)
# Default is false
ignore-missing-light-data: false
# Here you can define any static marker-sets with markers that should be displayed on the map.
# You can change this at any time.
# If you need dynamic markers, you can use any plugin that integrates with BlueMap's API.
# Here is a list: https://bluemap.bluecolored.de/community/3rdPartySupport.html
marker-sets: {
# Please check out the wiki for information on how to configure this:
# https://bluemap.bluecolored.de/wiki/customization/Markers.html
}

View File

@ -0,0 +1,72 @@
## ##
## BlueMap ##
## Plugin-Config ##
## ##
# If the server should send player-positions to the webapp.
# This only works if the integrated webserver is enabled.
# Default is true
live-player-markers: false
# A list of gamemodes that will prevent a player from appearing on the map.
# Possible values are: survival, creative, spectator, adventure
hidden-game-modes: [
"spectator"
]
# If this is true, players that are vanished (by a plugin) will be hidden on the map.
# (This only works with Spigot and Sponge based vanish-plugins)
# Default is true
hide-vanished: true
# If this is true, players that have an invisibility (potion-)effect will be hidden on the map.
# Default is true
hide-invisible: true
# If this is true, players that are sneaking will be hidden on the map.
# Default is false
hide-sneaking: false
# Hides the player if they are in a sky or block-light level below the given number.
# BOTH values have to be below the threshold for the player to be hidden!
# E.g. if you set both to 1, then the player will be hidden on the map if they are in absolute darkness
# Or, if you want players only be visible on the surface you set the sky-threshold to something between 1 and 15
# and the block-threshold to 16
# Default is 0 (don't hide the player)
hide-below-sky-light: 0
hide-below-block-light: 0
# If this is true, players that are on a different world than the viewed map will not appear on the player-list.
# Default is false
hide-different-world: false
# The interval in seconds that the markers will be written to the map-storage.
# This is useful if you can't create a live-connection between the server and the webapp
# and the markers can only be updated via the map-storage.
# 0 or lower means that the markers will never be written to the map-storage.
# Default is 0
#write-markers-interval: 10
# The interval in seconds that the players will be written to the map-storage.
# This is useful if you can't create a live-connection between the server and the webapp
# and the players can only be updated via the map-storage.
# 0 or lower means that the players will never be written to the map-storage.
# Default is 0
#write-players-interval: 3
# Download the skin from mojang-servers when a player joins your server, so it can be used for the player-markers.
# Default is true
skin-download: false
# The amount of players that is needed to pause BlueMap's render-threads.
# -> If this amount of players or more is online, bluemap will stop rendering map-updates until enough players
# have logged off again
# Setting this to 0 or -1 will disable this feature -> bluemap will not pause rendering
# Default is -1
player-render-limit: -1
# The interval in minutes in which a full map-update will be triggered.
# This is ADDITIONALLY to the normal map-update process (in case that fails to detect any file-changes).
# ! This DOESN'T re-render the entire map each time, it only checks if there are some changes that have not been rendered yet!
# Default is 1440 (24 hours)
full-update-interval: 1440

View File

@ -0,0 +1,22 @@
## ##
## BlueMap ##
## Storage-Config ##
## ##
# The storage-type of this storage.
# Depending on this setting, different config-entries are allowed/expected in this config file.
# Don't change this value! (If you want a different storage-type, check out the other example-configs)
storage-type: file
# The path to the folder on your file-system where bluemap will save the rendered map
# The default is: "bluemap/web/maps"
root: "plugins/BlueMap/data/web/maps"
# The compression-type that bluemap will use to compress generated map-data.
# Available compression-types are:
# - gzip
# - zstd
# - deflate
# - none
# The default is: gzip
compression: gzip

View File

@ -0,0 +1,47 @@
## ##
## BlueMap ##
## Storage-Config ##
## ##
# The storage-type of this storage.
# Depending on this setting, different config-entries are allowed/expected in this config file.
# Don't change this value! (If you want a different storage-type, check out the other example-configs)
storage-type: sql
# The JDBC-Connection URL that is used to connect to the database.
# The format for this url is usually something like: jdbc:[driver]://[host]:[port]/[database]
# The exact format of the url is determined by the JDBC-Driver you are using.
connection-url: "jdbc:mysql://localhost:3306/bluemap?permitMysqlScheme"
# You can set any additional (JDBC-Driver-specific) properties here
# Usually that's your db-user and password
connection-properties: {
user: "root",
password: ""
}
# The maximum number of connections to the database that are allowed to be open at the same time.
# A negative number means unlimited.
# Default is: -1
max-connections: -1
# This can be used to load a custom jdbc-driver from a .jar file.
# E.g. if your runtime-environment is not already providing the sql-driver you need,
# you could download the MariaDB JDBC-Connector from https://mariadb.com/downloads/connectors/connectors-data-access/java8-connector/
# place it in the './bluemap' folder and use is like this:
#driver-jar: "bluemap/mariadb-java-client-3.0.7.jar"
# This is the driver-class that bluemap will try to load and use.
# Check the documentation of the driver you are using if you don't know this.
# Leaving this commented means that bluemap automatically tries to find a suitable driver in your classpath.
# (If you added a custom driverJar above, you HAVE TO set the correct class name here)
#driver-class: "org.mariadb.jdbc.Driver"
# The compression-type that bluemap will use to compress generated map-data.
# Available compression-types are:
# - gzip
# - zstd
# - deflate
# - none
# The default is: gzip
compression: gzip

View File

@ -0,0 +1,75 @@
## ##
## BlueMap ##
## Webapp-Config ##
## ##
# With this setting you can disable the creation and updating of all web-app related files
# Default is true
enabled: true
# The webroot where the web-application files will be created.
# Usually this should be set to the same directory like in the webserver.conf!
# Default is "bluemap/web"
webroot: "plugins/BlueMap/data/web"
# Whether the settings.json of the webapp should be updated/synchronized with the current bluemap settings.
# If this is set to "false", bluemap will only add maps to the settings.json but never remove unknown ones or update other settings.
# Disabling this is for example useful if you are running multiple bluemap instances on the same webroot and don't want them to overwrite each others maps.
# Default is true
update-settings-file: true
# If the web-application should use cookies to save the configurations of a user.
# Default is true
use-cookies: true
# If the webapp will default to flat-view instead of perspective-view.
# Default is false
default-to-flat-view: true
# The default map and camera-location where a user will start after opening the webapp.
# This is in form of the url-anchor: Open your map in a browser and look at the url, everything after the '#' is the value for this setting.
# Default is "no anchor" -> The camera will start with the topmost map and at that map's starting point.
#start-location: "world:0:16:-32:390:0.1:0.19:0:0:perspective"
# The minimum (closest) and maximum (furthest) distance (in blocks) that the camera can be from the ground
min-zoom-distance: 5
max-zoom-distance: 100000
# The default value of the resolution (settings-menu)
# Possible values are: 0.5, 1, 2
# Default is 1
resolution-default: 1
# The min, max and default values of the hires render-distance slider (settings-menu)
# The values are in blocks.
# Default is max:500 default:100 and min:0
hires-slider-max: 500
hires-slider-default: 100
hires-slider-min: 0
# The min, max and default values of the lowres render-distance slider (settings-menu)
# The values are in blocks.
# Default is max:7000 default:2000 and min:500
lowres-slider-max: 7000
lowres-slider-default: 2000
lowres-slider-min: 500
# Here you can specify an alternative base url from where all map data is loaded.
# Default is "maps"
#map-data-root: "https://cdn.my-domain.com/mapdata"
# Here you can specify an alternative base url from where all live data is loaded.
# Default is "maps"
#live-data-root: "https://cdn.my-domain.com/livedata"
# Here you can add URLs to custom scripts (js) so they will be loaded by the webapp
# You can place them somewhere in bluemap's webroot and add the (relative) link here
scripts: [
#"js/my-custom-script.js"
]
# Here you can add URLs to custom styles (css) so they will be loaded by the webapp
# You can place them somewhere in bluemap's webroot and add the (relative) link here
styles: [
#"css/my-custom-style.css"
]

View File

@ -0,0 +1,45 @@
## ##
## BlueMap ##
## Webserver-Config ##
## ##
# With this setting you can disable the integrated web-server.
# This is useful if you want to only render the map-data for later use, or if you setup your own webserver.
# Default is enabled
enabled: true
# The webroot that the server will host to the web.
# Usually this should be set to the same directory like in the webapp.conf!
# Default is "bluemap/web"
webroot: "plugins/BlueMap/data/web"
# The port that the webserver listens to.
# Default is 8100
port: 8100
# Config-section for webserver-activity logging
log: {
# The file where all the webserver-activity will be logged to.
# Comment out to disable the logging completely.
# Java String formatting syntax can be used to add time, see: https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
# Default is no logging
file: "plugins/BlueMap/data/logs/webserver.log"
#file: "bluemap/logs/webserver_%1$tF_%1$tT.log"
# Whether the logger should append to an existing file, or overwrite it
# Default is false
append: false
# The format of the webserver-acivity logs.
# The syntax is the java String formatting, see: https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
# Possible Arguments:
# 1 - the source address (ignoring any xff headers)
# 2 - the source address (using the (leftmost) xff header if provided)
# 3 - the http-method of the request
# 4 - the full request-address
# 5 - the protocol version of the request
# 6 - the status-code of the response
# 7 - the status-message of the response
# Default is "%1$s \"%3$s %4$s %5$s\" %6$s %7$s"
format: "%1$s \"%3$s %4$s %5$s\" %6$s %7$s"
}

View File

@ -0,0 +1,47 @@
# The channel's key, used to track the channel.
# You only need to change the second part of the key. "global" by default.
# The value is what's used in commands, this is probably what you want to change.
key="carbon:global"
# The chat formats for this channel.
format {
# Basic chat formats.
# The "default_format" format is the main one you want to edit.
# The "console" format is what's shown to console.
# The "discord" format is what's shown to supported discord integrations.
# If PlaceholderAPI is installed, PAPI placeholders (with %) are supported.
# If MiniPlaceholders is installed, its placeholders (with <>) are supported.
# The keys are group names, the values are chat formats (MiniMessage).
# For example:
# basic {
# default_format="<<username>> <message>"
# vip="[VIP] <<username>> <message>"
# admin="<white>[</white>Prefix<white>]</white> <display_name><white>: <message></white>"
# discord="<message>"
# }
#
basic {
"default_format"="<dark_grey>[<color:#4cd964>Global</color>]</dark_grey> %luckperms_prefix%<white><username> <grey>></grey> <message></white>"
discord="<message>"
console="[G] <username>: <message>"
}
# Per-Language chat formats.
# You can safely leave this section empty if you don't want to use this feature.
# Each locale section can be configured in the same way as the above 'basic' section.
# Will fall back to the 'basic' section if no format was found for the player's locale.
locales {
"ru_RU" {}
}
}
# Messages will be sent in this channel if they start with this prefix. (Leave empty/blank to disable quick prefix for this channel)
quick-prefix="!"
should-register-commands=true
command-aliases=[]
# The distance players must be within to see each other's messages.
# A value of '0' requires that both players are in the same world.
# On velocity, '0' requires that both players are in the same server.
radius=-1
# If true, players will be able to see if they're not sending messages to anyone
# because they're out of range from the radius.
empty-radius-recipients-message=false
cooldowns {}
cooldown=-1

View File

@ -0,0 +1,49 @@
# The channel's key, used to track the channel.
# You only need to change the second part of the key. "global" by default.
# The value is what's used in commands, this is probably what you want to change.
key="carbon:local"
# The chat formats for this channel.
format {
# Basic chat formats.
# The "default_format" format is the main one you want to edit.
# The "console" format is what's shown to console.
# The "discord" format is what's shown to supported discord integrations.
# If PlaceholderAPI is installed, PAPI placeholders (with %) are supported.
# If MiniPlaceholders is installed, its placeholders (with <>) are supported.
# The keys are group names, the values are chat formats (MiniMessage).
# For example:
# basic {
# default_format="<<username>> <message>"
# vip="[VIP] <<username>> <message>"
# admin="<white>[</white>Prefix<white>]</white> <display_name><white>: <message></white>"
# discord="<message>"
# }
#
basic {
"default_format"="<dark_grey>[<#e6c67a>Local</#e6c67a>]</dark_grey> %luckperms_prefix%<grey><username></grey> <dark_grey>></dark_grey> <grey><message></grey>"
discord="<message>"
console="[<channel>] <username>: <message>"
}
# Per-Language chat formats.
# You can safely leave this section empty if you don't want to use this feature.
# Each locale section can be configured in the same way as the above 'basic' section.
# Will fall back to the 'basic' section if no format was found for the player's locale.
locales {
"ru_RU" {}
}
}
# Messages will be sent in this channel if they start with this prefix. (Leave empty/blank to disable quick prefix for this channel)
quick-prefix=""
should-register-commands=true
command-aliases=[
l
]
# The distance players must be within to see each other's messages.
# A value of '0' requires that both players are in the same world.
# On velocity, '0' requires that both players are in the same server.
radius=200
# If true, players will be able to see if they're not sending messages to anyone
# because they're out of range from the radius.
empty-radius-recipients-message=false
cooldowns {}
cooldown=-1

View File

@ -0,0 +1,128 @@
settings {
"carbon:help" {
enabled=true
name=carbon
aliases=[]
}
"carbon:reload" {
enabled=true
name=carbon
aliases=[]
}
"carbon:updateusername" {
enabled=true
name=updateusername
aliases=[
updatename
]
}
"carbon:party" {
enabled=true
name=party
aliases=[
group
]
}
"carbon:reply" {
enabled=true
name=reply
aliases=[
r
]
}
"carbon:join" {
enabled=true
name=join
aliases=[]
}
"carbon:ignorelist" {
enabled=true
name=ignorelist
aliases=[
listignores
]
}
"carbon:unmute" {
enabled=false
name=unmute
aliases=[]
}
"carbon:ignore" {
enabled=true
name=ignore
aliases=[
block
]
}
"carbon:whisper" {
enabled=true
name=whisper
aliases=[
w,
message,
msg,
m,
tell
]
}
"carbon:continue" {
enabled=true
name=continue
aliases=[
c
]
}
"carbon:togglemsg" {
enabled=true
name=togglemsg
aliases=[
togglepm
]
}
"carbon:leave" {
enabled=true
name=leave
aliases=[]
}
"carbon:clearchat" {
enabled=true
name=clearchat
aliases=[
chatclear,
cc
]
}
"carbon:debug" {
enabled=true
name=carbondebug
aliases=[
cdebug
]
}
"carbon:muteinfo" {
enabled=false
name=muteinfo
aliases=[
muted
]
}
"carbon:unignore" {
enabled=true
name=unignore
aliases=[
unblock
]
}
"carbon:mute" {
enabled=false
name=mute
aliases=[]
}
"carbon:nickname" {
enabled=true
name=nickname
aliases=[
nick
]
}
}

View File

@ -0,0 +1,137 @@
# Used internally to track changes to the config. Do not edit manually!
config-version=1
# The default locale for plugin messages.
default-locale="en_US"
# The default channel that new players will be in when they join.
# If the channel is not found or the player cannot use the channel, they will speak in basic non-channel chat.
default-channel="carbon:local"
# Returns you to the default channel when you use a channel's command while you have that channel active.
return-to-default-channel=false
# The service that will be used to store and load player information.
# One of: JSON, H2, MYSQL, PSQL
# Note: If you choose MYSQL or PSQL make sure you configure the "database-settings" section of this file!
storage-type=JSON
# When "storage-type" is set to MYSQL or PSQL, this section configures the database connection.
# If JSON or H2 storage is used, this section can be ignored.
database-settings {
# JDBC URL. Suggested defaults for each DB:
# MySQL: jdbc:mysql://host:3306/DB
# MariaDB: jdbc:mariadb://host:3306/DB
# PostgreSQL: jdbc:postgresql://host:5432/database
url="jdbc:mysql://localhost:3306/carbon"
# The connection username.
username=username
# The connection password.
password=password
# Settings for the connection pool. This is an advanced configuration that most users won't need to touch.
connection-pool {
maximum-pool-size=8
minimum-idle=8
maximum-lifetime=1800000
keepalive-time=0
connection-timeout=30000
}
}
# Settings for cross-server messaging
messaging-settings {
# Whether cross-server messaging is enabled
enabled=false
# One of: RABBITMQ, NATS, REDIS
broker-type=NONE
url="127.0.0.1"
port=5672
# RabbitMQ VHost
vhost="/"
# NATS credentials file
credentials-file=""
# RabbitMQ username
username=username
# RabbitMQ and Redis password
password=password
}
nickname-settings {
# Whether Carbon's nickname management should be used. Disable this if you wish to have another plugin manage nicknames.
use-carbon-nicknames=true
# Paper only. Updates the player's display name in the tab list to match their nickname.
update-tab-list=true
# Minimum number of characters in nickname (excluding formatting).
min-length=3
# Maximum number of characters in nickname (excluding formatting).
max-length=16
black-list=[
notch,
admin
]
# Regex pattern nicknames must match in order to be applied, can be bypassed with the permission 'carbon.nickname.filter'.
filter="^[a-zA-Z0-9_]*$"
# Format used when displaying nicknames.
format="<hover:show_text:'<gray>@</gray><username>'><gray>~</gray><nickname></hover>"
# Whether to skip applying 'format' when a nickname matches a players username, only differing in decoration.
skip-format-when-name-matches=true
}
# Plugin-wide custom placeholders.
# These will be parsed in all messages rendered and sent by Carbon.
# This includes chat, command feedback, and others.
# Make sure to close your tags so they do not bleed into other formats.
# Only a single pass is done so custom placeholders will not work within each other.
custom-placeholders {}
# The suggestions shown when using the TAB key in chat.
custom-chat-suggestions=[]
# The placeholders replaced in chat messages, this WILL work with chat previews.
chat-placeholders {}
# Basic regex based chat filter.
chat-filter {}
# Various settings related to pinging players in channels.
ping-settings {
# The color your name will be when another player mentions you.
highlight-text-color="dark_purple"
prefix="@"
play-sound=true
name="minecraft:block.amethyst_block.hit"
source=master
volume=1
pitch=1
}
party-chat {
# Whether party chat is enabled
enabled=false
expire-invites-after-seconds=45
}
# Sound for receiving a direct message
message-sound {
name="minecraft:entity.experience_orb.pickup"
source=master
volume=1
pitch=1
}
# Settings for the clear chat command
clear-chat-settings {
# The message that will be sent to each player.
message=""
# The number of times the message will be sent to each player.
iterations=50
# The message to be sent after chat is cleared.
broadcast="<gold>Chat has been cleared by </gold><green><display_name><green><gold>."
}
# Settings for integrations with other plugins/mods. Settings only apply when the relevant plugin/mod is present.
integrations {
factionsuuid {
enabled=false
faction-channel=false
alliance-channel=false
truce-channel=false
}
mcmmo {
enabled=false
# You will likely want to disable Carbon's built-in party system above when using mcMMO party chat.
party-channel=false
}
towny {
enabled=false
town-channel=false
nation-channel=false
alliance-channel=false
}
}
# Whether Carbon should check for updates using the GitHub API on startup.
update-checker=true

View File

@ -0,0 +1,162 @@
#Sun Jul 13 19:11:13 EEST 2025
channel.already_left=<red>You have already left this channel</red>
channel.change=<green>You are now messaging </green><channel>
channel.cooldown=<red>You may use chat again in <remaining> seconds\!
channel.joined=<green>You have rejoined the channel</green>
channel.left=<red>You have left the channel</red>
channel.no_permission=<red>You do not have permission to use this channel</red>
channel.not_found=<red>Channel not found</red>
channel.not_left=<red>You have not left this channel</red>
channel.radius.empty_recipients=<red>You're not close enough to anyone to send a message
command.clearchat.description=Clears the chat window for all players.
command.continue.argument.message=The message to send.
command.continue.description=Sends a message to the last person you messaged.
command.debug.argument.player=The player to check the groups of.
command.debug.description=Shows the permission groups of players.
command.help.argument.query=The search query.
command.help.description=Carbon command list.
command.help.misc.arguments=Arguments
command.help.misc.available_commands=Available Commands
command.help.misc.click_for_next_page=Click for next page
command.help.misc.click_for_previous_page=Click for previous page
command.help.misc.click_to_show_help=Click to show help for this command
command.help.misc.command=Command
command.help.misc.description=Description
command.help.misc.help=Help
command.help.misc.no_description=No description
command.help.misc.no_results_for_query=No results for query
command.help.misc.optional=Optional
command.help.misc.page_out_of_range=Error\: Page <page> is not in range. Must be in range [1, <max_pages>]
command.help.misc.showing_results_for_query=Showing search results for query
command.ignore.argument.player=The name of the player to ignore.
command.ignore.argument.uuid=The UUID of the player to ignore.
command.ignore.description=Hides all incoming messages from ignored players.
command.ignorelist.description=Displays a paginated list of who you are ignoring.
command.ignorelist.none_ignored=<green>You are not ignoring any players.
command.ignorelist.pagination_element=- <display_name> <click\:run_command\:'/unignore <username>'><hover\:show_text\:'Click to unignore <username>'><gray>[<white>unignore</white>]</gray>
command.ignorelist.pagination_header=<bold>Ignored players
command.join.description=Join a channel you have previously left.
command.leave.description=Leave a channel that you currently have access to.
command.mute.argument.player=The name of the player to mute.
command.mute.argument.uuid=The UUID of the player to mute.
command.mute.description=Mutes players, preventing them from using chat or whispering other players.
command.muteinfo.argument.player=The name of the player.
command.muteinfo.argument.uuid=The UUID of the player.
command.muteinfo.description=Shows if players are muted or not.
command.nickname.argument.nickname=The nickname to set.
command.nickname.argument.player=The name of the target player.
command.nickname.description=Shows your nickname.
command.nickname.others.description=Shows player nicknames.
command.nickname.others.reset.description=Removes any set nickname from the target.
command.nickname.others.set.description=Sets player nicknames.
command.nickname.reset.description=Removes your nickname.
command.nickname.set.description=Sets your nickname.
command.party.accept.description=Accept party invites.
command.party.already_in_party=<display_name><red> is already in your party.
command.party.cannot_disband_multiple_members=<red>Cannot disband party '</red><party_name><red>', you are not the last member.
command.party.cannot_invite_self=<red>You cannot invite yourself.
command.party.create.description=Create a new party.
command.party.created=<green>Successfully created and joined party '</green><party_name><green>'\!
command.party.current_party=<green>You are in party<white>\:</white></green> <party_name>
command.party.description=Get info about and see members of your current party.
command.party.disband.description=Disband your current party.
command.party.disbanded=<green>Successfully disbanded party '</green><party_name><green>'.
command.party.invite.description=Invite a player to your party.
command.party.joined_party=<green>Successfully joined party '</green><party_name><green>'\!
command.party.leave.description=Leave your current party.
command.party.left_party=<green>Successfully left party '</green><party_name><green>'.
command.party.must_be_in_party=<red>You must be in a party to use this command. Use '/party create' to create one, or '/party accept' to accept an invite.
command.party.must_leave_current_first=<red>You must leave your current party first.
command.party.must_specify_invite=<red>You must specify whose party invite to accept.
command.party.name_too_long=<red>Party name is too long.
command.party.no_invite_from=<red>You do not have a pending invite from </red><sender_display_name><red>.
command.party.no_pending_invites=<red>You do not have any pending party invites.
command.party.not_in_party=<red>You are not in a party. Use '/party create' to create one, or '/party accept' to accept an invite.
command.party.pagination_element=<online\:'<green>'\:'<gray>'> -<reset> <display_name>
command.party.pagination_header=<green>Party members</green>\:
command.party.received_invite=<hover\:show_text\:'<green>Click to accept'><click\:run_command\:'/party accept <sender_username>'><green>You were invited to the party '</green><party_name><green>' by </green><sender_display_name><green>. Click this message to accept.
command.party.sent_invite=<green>Sent party invite to </green><recipient_display_name><green>.
command.reload.description=Reloads Carbon's config, channel settings, and translations. Will not load or unload any channels.
command.reply.argument.message=The message to reply with.
command.reply.description=Sends a message to the last player that messaged you.
command.togglemsg.description=Allows and disallows other players from mesaging you.
command.unignore.argument.player=The name of the player to unignore.
command.unignore.argument.uuid=The UUID of the player to unignore.
command.unignore.description=Stops hiding messages from the specified player.
command.unmute.argument.player=The name of the player to unmute.
command.unmute.argument.uuid=The UUID of the player to unmute.
command.unmute.description=Unmutes players, allowing them to use chat and whisper other players.
command.updateusername.argument.player=The name of the player to update.
command.updateusername.argument.uuid=The uuid of the player to update.
command.updateusername.description=Updates the player's username to match their mojang name.
command.updateusername.fetching=Fetching username...
command.updateusername.notupdated=Unable to fetch username.
command.updateusername.updated=Updated <newname>'s username\!
command.whisper.argument.message=The message to send.
command.whisper.argument.player=The name of the player to message.
command.whisper.description=Sends a private message to the specified player.
config.reload.failed=<red>Config failed to reload
config.reload.success=<green>Config reloaded successfully
error.command.argument_parsing=<red>Invalid command argument\: <gray><throwable_message>
error.command.command_execution=<hover\:show_text\:"<throwable_message>\n<stacktrace>\n<gray><italic> Click to copy"><click\:copy_to_clipboard\:'<stacktrace>'><red>An internal error occurred while attempting to perform this command.
error.command.command_needs_player=<red>Non-players must provide the player argument to execute this command.
error.command.invalid_player=No player found for input '<input>'
error.command.invalid_sender=<red>Invalid command sender. You must be of type <gray><sender_type>
error.command.invalid_syntax=<red>Invalid command syntax. Correct command syntax is\: <white>/</white><gray><syntax></gray>
error.command.no_permission=<red>I'm sorry, but you do not have permission to perform this command.\nPlease contact the server administrators if you believe that this is in error.
ignore.already_ignored=<red>You are already ignoring <target>
ignore.exempt=<red>You cannot ignore <target>
ignore.invalid_target=<red>No target found
ignore.no_longer_ignoring=<green>You are no longer ignoring <target>
ignore.not_ignored=<red>You are not ignoring <target>
ignore.now_ignoring=<green>You are now ignoring <target>
integrations.fuuid.cannot_use_alliance_channel=<red>You must join an alliance to use this channel.
integrations.fuuid.cannot_use_faction_channel=<red>You must join a faction to use this channel.
integrations.fuuid.cannot_use_truce_channel=<red>You must have a truce with another faction to use this channel.
integrations.mcmmo.cannot_use_party_channel=<red>You must join an mcMMO party to use this channel.
integrations.towny.cannot_use_alliance_channel=<red>You must join an alliance to use this channel.
integrations.towny.cannot_use_nation_channel=<red>You must join a nation to use this channel.
integrations.towny.cannot_use_town_channel=<red>You must join a town to use this channel.
mute.alert.players=<red><target> <red>has been muted
mute.alert.target=<red>You have been muted
mute.cannot_speak=<red>You cannot speak when muted
mute.exempt=<red>That player is exempt from being muted
mute.info.muted=<red><target> <red>is muted
mute.info.not_muted=<red><target> <gold>is not muted
mute.info.self.muted=<red>You are muted
mute.info.self.not_muted=<green>You are not muted
mute.no_target=<red>No specified player to mute.
mute.spy.prefix=<red><hover\:show_text\:'<red>Muted</red>'>M</hover></red>
mute.unmute.alert.players=<green><target> <green>has been unmuted
mute.unmute.alert.target=<green>You have been unmuted
mute.unmute.no_target=<red>No specified player to unmute.
nickname.error.blacklist=<red>Nickname "<nickname>" is not allowed. Please choose another name.
nickname.error.character_limit=<red>Nickname "<nickname>" has exceeded the character limit. Must be set to <min_length>~<max_length> characters.
nickname.error.filter=<red>Nicknames must be alphanumeric\!
nickname.reset=<gold>Your nickname was reset
nickname.reset.others=<green><target></green><gold>'s nickname was reset
nickname.set=<green>Your nickname has been set to </green><nickname>
nickname.set.others=<green>You set </green><target><green>'s nickname to </green><nickname>
nickname.show=<green>Your nickname is </green><nickname>
nickname.show.others=<target><green>'s nickname is </green><nickname>
nickname.show.others.unset=<target><red> does not have a nickname set
nickname.show.unset=<red>You do not have a nickname set
pagination.click_for_next_page=Click for next page
pagination.click_for_previous_page=Click for previous page
pagination.footer=<gray>Page <page><white>/</white><pages> <aqua><buttons>
pagination.page_out_of_range=<red>Page <page> is out of range\! There are only <pages> pages.
party.cannot_use_channel=<red>You must join a party to use this channel.
party.player_joined=<display_name><green> joined your party.
party.player_left=<display_name><green> left your party.
reply.target.missing=<red>You have no-one to reply to
reply.target.self=<red>You cannot whisper to yourself
whisper.console=<gold>[<green><sender_display_name></green>] -> [<green><recipient_display_name></green>] <message>
whisper.continue.target_missing=<red>You have no one to whisper
whisper.error=<red>Failed to send private message
whisper.from=<click\:suggest_command\:'/whisper <sender_username> '><hover\:show_text\:'Click to start a reply'><dark_grey>[<grey><sender_display_name></grey>] -> [<grey>You</grey>] <grey>></grey> <message>
whisper.ignored_by_target=<red><target> <red>is ignoring you
whisper.ignoring_all=<red>You cannot send messages while they are ignored\!
whisper.ignoring_target=<red>You are ignoring <target>
whisper.to=<click\:suggest_command\:'/whisper <recipient_username> '><hover\:show_text\:'Click to start another message to <recipient_display_name>'><dark_grey>[<grey>You</grey>] -> [<grey><recipient_display_name></grey>] <grey>></grey> <message>
whisper.toggled.off=No longer receiving private messages.
whisper.toggled.on=Now receiving private messages.

View File

@ -0,0 +1,160 @@
#Sun Jul 13 19:11:13 EEST 2025
channel.already_left=<red>あなたはすでにこのチャンネルから退出しています</red>
channel.change=<green>メッセージを送信中</green><channel>
channel.joined=<green>チャンネルに再加入しました</green>
channel.left=<red>あなたはチャンネルから退出しました</red>
channel.no_permission=<red>あなたにはこのチャンネルを使用する権限がありません</red>
channel.not_found=<red>チャンネルが見つかりません</red>
channel.not_left=<red>あなたはこのチャンネルから退出していません</red>
channel.radius.empty_recipients=<red>メッセージを送信できる人が近くには誰もいません。
command.clearchat.description=すべてのプレイヤーのチャットウィンドウをクリアします。
command.continue.argument.message=送信するメッセージです。
command.continue.description=最後にメッセージを送った人にメッセージを送信します。
command.debug.argument.player=プレーヤーのグループをチェックする。
command.debug.description=プレイヤーの権限グループを表示します。
command.help.argument.query=検索クエリ。
command.help.description=Carbonのコマンドリストです。
command.help.misc.arguments=引数
command.help.misc.available_commands=利用可能なコマンド一覧
command.help.misc.click_for_next_page=クリックで次のページへ
command.help.misc.click_for_previous_page=クリックで前のページへ
command.help.misc.click_to_show_help=クリックしてこのコマンドのヘルプを表示
command.help.misc.command=コマンド
command.help.misc.description=説明
command.help.misc.help=ヘルプ
command.help.misc.no_description=説明なし
command.help.misc.no_results_for_query=クエリの結果はありません
command.help.misc.optional=オプション
command.help.misc.page_out_of_range=エラー\: ページ <page> は範囲外です。[1, <max_pages>] の範囲内でなければなりません。
command.help.misc.showing_results_for_query=クエリの検索結果を表示中
command.ignore.argument.player=無視するプレーヤーの名前。
command.ignore.argument.uuid=無視するプレーヤーのUUID。
command.ignore.description=無視したプレイヤーからのすべてのメッセージを非表示にします。
command.ignorelist.description=あなたが無視しているプレイヤーのリストをページ順に表示する。
command.ignorelist.none_ignored=<green>あなたは他のプレイヤーを無視していません。
command.ignorelist.pagination_element=- <display_name> <click\:run_command\:''/unignore <username>''><hover\:show_text\:''クリックして無視を解除する <username>''><gray>[<white>unignore</white>]</gray>
command.ignorelist.pagination_header=<bold>無視したプレイヤー
command.join.description=以前に退出したチャンネルに加入する。
command.leave.description=現在アクセスしているチャンネルから退出する。
command.mute.argument.player=ミュートするプレーヤーの名前。
command.mute.argument.uuid=ミュートするプレーヤーのUUID。
command.mute.description=プレイヤーをミュートし、チャットや他のプレイヤーへのプライベートメッセージを禁止します。
command.muteinfo.argument.player=プレイヤーの名前。
command.muteinfo.argument.uuid=プレイヤーのUUID。
command.muteinfo.description=プレイヤーがミュートかどうかを表示します。
command.nickname.argument.nickname=設定するニックネーム。
command.nickname.argument.player=ターゲットプレイヤーの名前。このフラグがなければ、送信者がターゲットになります。
command.nickname.description=プレイヤーのニックネームを設定および表示します。
command.nickname.others.description=プレイヤーのニックネームを表示する。
command.nickname.others.reset.description=ターゲットから設定されたニックネームを削除する。
command.nickname.others.set.description=プレイヤーのニックネームを設定する。
command.nickname.reset.description=あなたのニックネームを削除する。
command.nickname.set.description=あなたのニックネームを設定する。
command.party.accept.description=パーティーへの招待を承認する。
command.party.already_in_party=<display_name><red>は既にあなたのパーティーに参加しています。
command.party.cannot_disband_multiple_members=<red>あなたは最後のメンバーではないため、パーティー「</red><party_name><red>」を解散できません。
command.party.cannot_invite_self=<red>自分を招待することはできません。
command.party.create.description=新しいパーティーを作成する。
command.party.created=<green>パーティー「</green><party_name><green>」の作成と参加に成功しました!
command.party.current_party=<green>あなたが参加しているパーティー<white>\:</white></green> <party_name>
command.party.description=現在参加しているパーティーのメンバー情報を確認する。
command.party.disband.description=現在のパーティーを解散する。
command.party.disbanded=<green>パーティー「</green><party_name><green>」の解散に成功しました!
command.party.invite.description=プレイヤーをあなたのパーティーに招待する。
command.party.joined_party=<green>パーティー「</green><party_name><green>」の参加に成功しました!
command.party.leave.description=現在のパーティーから退出する。
command.party.left_party=<green>パーティー「</green><party_name><green>」の退出に成功しました!
command.party.must_be_in_party=<red>このコマンドを使うには、パーティーに入っていなければなりません。パーティを作成するには「/party create」を、招待を承認するには「/party accept」を使用して下さい。
command.party.must_leave_current_first=<red>あなたはまず現在のパーティーから退出しなければなりません。
command.party.must_specify_invite=<red>あなたは誰の招待を承認するか指定しなければなりません。
command.party.name_too_long=<red>パーティー名が長すぎます。
command.party.no_invite_from=<red>あなたは</red><sender_display_name><red>からの保留中の招待状はありません。
command.party.no_pending_invites=<red>あなたには保留中のパーティー招待状はありません。
command.party.not_in_party=<red>あなたはパーティーに参加していません。パーティを作成するには「/party create」を、招待を承認するには「/party accept」を使用して下さい。
command.party.pagination_element=<online\:''<green>''\:''<gray>''> -<reset> <display_name>
command.party.pagination_header=<green>パーティーメンバー</green>\:
command.party.received_invite=<hover\:show_text\:''<green>クリックして承認''><click\:run_command\:''/party accept <sender_username>''><green>あなたは</green><sender_display_name><green>からパーティー「</green><party_name><green>」に招待されました。承認するにはこのメッセージをクリックして下さい。
command.party.sent_invite=<recipient_display_name><green>にパーティーの招待状を送信しました。
command.reload.description=Carbonの設定、チャンネル設定、翻訳をリロードします。チャンネルをロードしたり、アンロードしたりしません。
command.reply.argument.message=返信するメッセージ。
command.reply.description=最後にメッセージを送ったプレイヤーにメッセージを送信します。
command.togglemsg.description=他のプレイヤーからあなたへのメッセージを許可/拒否する。
command.unignore.argument.player=無視を解除するプレーヤーの名前。
command.unignore.argument.uuid=無視を解除するプレイヤーのUUID。
command.unignore.description=指定したプレイヤーからのメッセージの非表示を停止します。
command.unmute.argument.player=ミュートを解除するプレーヤーの名前。
command.unmute.argument.uuid=ミュートを解除するプレーヤーのUUID。
command.unmute.description=プレイヤーのミュートを解除し、チャットや他のプレイヤーへのプライベートメッセージを使用できるようにします。
command.updateusername.argument.player=更新するプレイヤーの名前。
command.updateusername.argument.uuid=更新するプレーヤーのuuid。
command.updateusername.description=プレイヤーのユーザー名をmojangの名前と一致するように更新する。
command.updateusername.fetching=ユーザー名を取得中...
command.updateusername.notupdated=ユーザー名を取得できません。
command.updateusername.updated=<newname>のユーザー名を更新しました!
command.whisper.argument.message=送信するメッセージ。
command.whisper.argument.player=メッセージを送信するプレーヤーの名前。
command.whisper.description=指定したプレーヤーにプライベートメッセージを送信します。
config.reload.failed=<red>コンフィグのリロードに失敗
config.reload.success=<green>コンフィグのリロードに成功
error.command.argument_parsing=<red>無効なコマンド引数: <gray><throwable_message>
error.command.command_execution=<hover\:show_text\:"<throwable_message>\n<stacktrace>\n<gray><italic> クリックしてコピー"><click\:copy_to_clipboard\:<stacktrace>><red>このコマンドの実行中に内部エラーが発生しました。
error.command.command_needs_player=<red>非プレイヤーがこのコマンドを実行するには、プレーヤーの引数を指定しなければなりません。
error.command.invalid_player=入力したプレイヤー''<input>''が見つかりません
error.command.invalid_sender=<red>無効なコマンド送信者。<gray><sender_type> 型である必要があります
error.command.invalid_syntax=<red>無効なコマンド構文です。正しいコマンド構文\: <white>/</white><gray><syntax></gray>
error.command.no_permission=<red>申し訳ありませんが、このコマンドを実行する権限がありません。これがエラーだと思われる場合は、サーバー管理者にお問い合わせください。
ignore.already_ignored=<red>あなたは既に<target>を無視しています
ignore.exempt=<red>あなたは<target>を無視する事はできません
ignore.invalid_target=<red>ターゲットが見つかりません
ignore.no_longer_ignoring=<green>あなたは<target>を無視しなくなりました
ignore.not_ignored=<red>あなたは<target>を無視していません
ignore.now_ignoring=<green>あなたは<target>を無視しています
integrations.fuuid.cannot_use_alliance_channel=<red>このチャンネルを利用するには、同盟に参加する必要があります。
integrations.fuuid.cannot_use_faction_channel=<red>このチャンネルを利用するには、派閥に参加する必要があります。
integrations.fuuid.cannot_use_truce_channel=<red>このチャンネルを利用するには、他の派閥と休戦する必要があります。
integrations.mcmmo.cannot_use_party_channel=<red>このチャンネルを利用するには、mcMMOパーティーに参加する必要があります。
integrations.towny.cannot_use_alliance_channel=<red>このチャンネルを利用するには、同盟に参加する必要があります。
integrations.towny.cannot_use_nation_channel=<red>このチャンネルを利用するには、国家に参加する必要があります。
integrations.towny.cannot_use_town_channel=<red>このチャンネルを利用するには、町に参加する必要があります。
mute.alert.players=<red><target><red>がミュートされました
mute.alert.target=<red>あなたはミュートされています
mute.cannot_speak=<red>ミュート時は話すことができません
mute.exempt=<red>そのプレイヤーはミュートされることを免除されています
mute.info.muted=<red><target><red>はミュートされています。
mute.info.not_muted=<red><target><gold>はミュートされていません
mute.info.self.muted=<red>あなたはミュートされています
mute.info.self.not_muted=<green>あなたはミュートされていません
mute.no_target=<red>ミュートするプレイヤーが指定されていません。
mute.spy.prefix=<red><hover\:show_text\:<red>ミュート</red>M</hover></red>
mute.unmute.alert.players=<green><target><green>のミュートが解除されました
mute.unmute.alert.target=<green>あなたのミュートが解除されました
mute.unmute.no_target=<red>ミュート解除するプレイヤーが指定されていません。
nickname.error.blacklist=<red>ニックネーム「</red><nickname></red>」は使用できません。他の名前を入力して下さい。
nickname.error.character_limit=<red>ニックネーム「</red><nickname><red>」は文字数制限を超えています。 <min_length>〜<max_length> 文字に設定する必要があります。
nickname.reset=<gold>あなたのニックネームがリセットされました
nickname.reset.others=<green><target></green>の<gold>のニックネームがリセットされました
nickname.set=<green>あなたのニックネームが</green><nickname><green>に設定されました
nickname.set.others=<target><green>のニックネームを</green><nickname><green>に設定しました
nickname.show=<green>あなたのニックネームは</green><nickname><green>です
nickname.show.others=<target><green>のニックネームは</green><nickname><green>です
nickname.show.others.unset=<target><red>にはニックネームが設定されていません
nickname.show.unset=<red>あなたはニックネームが設定されていません
pagination.click_for_next_page=クリックして次のページへ
pagination.click_for_previous_page=クリックして前のページへ
pagination.footer=<gray>ページ <page><white>/</white><pages> <aqua><buttons>
pagination.page_out_of_range=<red><page> ページは範囲外です!<pages>ページまでです。
party.cannot_use_channel=<red>このチャンネルを使用するには、あなたはパーティーに参加する必要があります。
party.player_joined=<display_name><green>があなたのパーティーに参加しました。
party.player_left=<display_name><green>があなたのパーティーを退出しました。
reply.target.missing=<red>返信できる人がいません
reply.target.self=<red>自分自身にプライベートメッセージを送信することはできません
whisper.console=<gold>[<green><sender_display_name></green>] -> [<green><recipient_display_name></green>] <message>
whisper.continue.target_missing=<red>プライベートメッセージを送る相手がいません
whisper.error=<red>プライベートメッセージの送信に失敗しました。
whisper.from=<gold>[<green><sender_display_name></green>] -> [<green>あなた</green>] <message>
whisper.ignored_by_target=<red><target><red>はあなたを無視しています
whisper.ignoring_all=<red>無視されている間はメッセージを送信できません!
whisper.ignoring_target=<red>あなたは<target>を無視しています
whisper.to=<gold>[<green>あなた</green>] -> [<green><recipient_display_name></green>] <message>
whisper.toggled.off=プライベートメッセージを受信しなくなりました。
whisper.toggled.on=プライベートメッセージを受信しています。

View File

@ -0,0 +1,82 @@
#Sun Jul 13 19:11:13 EEST 2025
channel.change=<green>Je stuurt nu berichten naar </green><channel>
command.clearchat.description=Wist het chatvenster voor alle spelers.
command.continue.argument.message=Het te verzenden bericht.
command.continue.description=Stuurt een bericht naar de laatste persoon die je een bericht hebt gestuurd.
command.debug.argument.player=De speler om de groepen van te controleren.
command.debug.description=Toont de groepen van de spelers.
command.help.argument.query=De zoekopdracht.
command.help.description=Carbon command lijst.
command.help.misc.arguments=Argumenten
command.help.misc.available_commands=Beschikbare command''s
command.help.misc.click_for_next_page=Klik voor de volgende pagina
command.help.misc.click_for_previous_page=Klik voor de vorige pagina
command.help.misc.click_to_show_help=Klik om hulp voor deze command te tonen
command.help.misc.description=Beschrijving
command.help.misc.help=Hulp
command.help.misc.no_description=Geen beschrijving
command.help.misc.no_results_for_query=Geen zoekresultaten
command.help.misc.optional=Optioneel
command.help.misc.page_out_of_range=Fout\: Pagina <page> is niet in bereik. Moet tussen bereik [1, <max_pages>] zijn
command.help.misc.showing_results_for_query=Zoekresultaten voor query weergeven
command.ignore.argument.player=De naam van de speler om te negeren.
command.ignore.argument.uuid=Het UUID van de speler om te negeren.
command.ignore.description=Verbergt alle inkomende berichten van genegeerde spelers.
command.mute.argument.player=De naam van de speler om te negeren.
command.mute.argument.uuid=Het UUID van de speler om te negeren.
command.mute.description=Mute spelers, vermijd dat ze chat gebruiken of andere spelers een prive bericht sturen.
command.muteinfo.argument.player=De naam van de speler om te muten.
command.muteinfo.argument.uuid=Het UUID van de speler om te negeren.
command.muteinfo.description=Laat zien of spelers gemute zijn of niet.
command.nickname.argument.nickname=De in te stellen bijnaam.
command.nickname.description=Zet en laat speler bijnaam zien.
command.reload.description=Herlaadt Carbon''s configuratie, kanaalinstellingen en vertalingen. Dit zal geen kanalen laden of ontladen.
command.reply.argument.message=Het bericht waarmee u wilt antwoorden.
command.reply.description=Stuurt een bericht naar de laatste persoon waar je een bericht van hebt ontvangen.
command.unignore.argument.player=De naam van de speler om te stoppen met negeren.
command.unignore.argument.uuid=Het UUID van de speler om te stoppen met negeren.
command.unignore.description=Stopt het verbergen van berichten van de opgegeven speler.
command.unmute.argument.player=De naam van de speler om te stoppen met negeren.
command.unmute.argument.uuid=Het UUID van de speler om te stoppen met negeren.
command.unmute.description=Un-mute spelers, geef ze toegang om chat te gebruiken en andere spelers een prive bericht te sturen.
command.whisper.argument.message=Het te verzenden bericht.
command.whisper.argument.player=De naam van de speler om een bericht naar te sturen.
command.whisper.description=Stuurt een privébericht naar de opgegeven speler.
config.reload.failed=<red>Configuratie kon niet herladen worden
config.reload.success=<green>Configuratie herladen geslaagd
error.command.argument_parsing=<red>Ongeldig command argument\: <gray><throwable_message>
error.command.command_execution=<hover\:show_text\:"<throwable_message>\n<stacktrace>\n<gray><italic> Klik om te kopiëren "><click\:copy_to_clipboard\:<stacktrace>><red>Er is een interne fout opgetreden tijdens het proberen van deze command.
error.command.invalid_player=Geen speler gevonden voor invoer ''<input>''
error.command.invalid_sender=<red>Ongeldige command zender. Je moet van type <gray><senderType> zijn
error.command.invalid_syntax=<red>Ongeldige command syntax. Het correcte command syntax\: <white>/</white><gray><syntax></gray>
error.command.no_permission=<red>Sorry, maar je hebt geen toestemming om dit commando uit te voeren.\nNeem contact op met de server beheerders als je denkt dat dit een fout is.
ignore.exempt=<red>Je kan <target> niet negeren
ignore.invalid_target=<red>Geen doel gevonden
ignore.no_longer_ignoring=<green>Je bent <target> niet langer aan het negeren
ignore.now_ignoring=<green>Je bent nu <target> aan het negeren
mute.alert.players=<red><target> <red>is gemute
mute.alert.target=<red>Je bent gemute
mute.cannot_speak=<red>Je kan niet praten wanneer je gemute bent
mute.exempt=<red>Die speler is vrijgesteld van gemute te worden
mute.info.muted=<red><target> <red>is gemute
mute.info.not_muted=<red><target> <gold>is niet gemute
mute.info.self.muted=<red>Je bent gemute
mute.info.self.not_muted=<green>Je bent niet gemute
mute.no_target=<red>Er is geen speler opgegeven om te muten.
mute.spy.prefix=<red><hover\:show_text\:<red>Gemute</red>M</hover></red>
mute.unmute.alert.players=<green><target> <green>is gemute
mute.unmute.alert.target=<green>Je bent niet langer gemute
mute.unmute.no_target=<red>Geen speler gespecifieerd om te umuten.
nickname.reset=<gold>Jou bijnaam is opnieuw ingesteld
nickname.reset.others=<green><target></green><gold>''s bijnaam is opnieuw ingesteld
nickname.set=<green>Je bijnaam is ingesteld op </green><nickname>
nickname.set.others=<green>Je hebt </green><target><green>''s bijnaam ingesteld op </green><nickname>
nickname.show=<green>Je bijnaam is </green><nickname>
nickname.show.others=<target><green>''s bijnaam is </green><nickname>
nickname.show.others.unset=<target><red> heeft geen bijnaam ingesteld
nickname.show.unset=<red>Je hebt geen bijnaam ingesteld
reply.target.missing=<red>Je hebt niemand om te beantwoorden
reply.target.self=<red>Je kan jezelf geen privebericht sturen
whisper.continue.target_missing=<red>Je hebt niemand om een privebericht naar te sturen
whisper.ignored_by_target=<red><target> <red>is je aan het negeren
whisper.ignoring_target=<red>Jij negeert <target>

View File

@ -0,0 +1,120 @@
#Sun Jul 13 19:11:13 EEST 2025
channel.already_left=<red>Zaten bu kanaldan ayrıldınız</red>.
channel.change=<green>Artık <channel> ile iletişim kuruyorsunuz.</green>
channel.joined=<green>Kanala tekrar katıldınız</green>.
channel.left=<red>Kanaldan ayrıldınız</red>.
channel.no_permission=<red>Bu kanalı kullanma izniniz yok</red>.
channel.not_found=<red>Kanal bulunamadı</red>.
channel.not_left=<red>Bu kanaldan ayrılmadınız</red>.
channel.radius.empty_recipients=<red>Bir mesaj göndermek için kimseye yeterince yakın değilsiniz.</red>
command.clearchat.description=Tüm oyuncuların sohbet penceresini temizler.
command.continue.argument.message=Gönderilecek mesaj.
command.continue.description=En son iletişim kurduğunuz kişiye bir mesaj gönderir.
command.debug.argument.player=Gruplarını kontrol etmek istediğiniz oyuncu.
command.debug.description=Oyuncuların izin gruplarını gösterir.
command.help.argument.query=Arama sorgusu.
command.help.description=Carbon komut listesi.
command.help.misc.arguments=Argümanlar
command.help.misc.available_commands=Kullanılabilir Komutlar
command.help.misc.click_for_next_page=Sonraki sayfa için tıklayın
command.help.misc.click_for_previous_page=Önceki sayfa için tıklayın
command.help.misc.click_to_show_help=Bu komut için yardımı göstermek için tıklayın
command.help.misc.command=Komut
command.help.misc.description=ıklama
command.help.misc.help=Yardım
command.help.misc.no_description=ıklama yok
command.help.misc.no_results_for_query=Sorgu için sonuç bulunamadı
command.help.misc.optional=İsteğe bağlı
command.help.misc.page_out_of_range=Hata\: Sayfa <page>, aralıkta değil. Aralık [1, <max_pages>] içinde olmalıdır.
command.help.misc.showing_results_for_query=Sorgu için sonuçları gösteriliyor
command.ignore.argument.player=Ignore edilecek oyuncunun adı.
command.ignore.argument.uuid=Ignore edilecek oyuncunun UUID''si.
command.ignore.description=Ignore edilen oyunculardan gelen tüm iletileri gizler.
command.ignorelist.description=Ignore listesindeki oyuncuların sayfalandırılmış bir listesini gösterir.
command.ignorelist.none_ignored=<green>Hiçbir oyuncuyu ignore etmiyorsunuz.
command.ignorelist.pagination_element=- <hover\:show_text\:''Kullanıcı Adı\: <username>''><display_name></hover> <click\:run_command\:''/unignore <username>''><hover\:show_text\:''<username> kullanıcısını unignore etmek için tıklayın''><gray>[<white>unignore</white>]</gray>
command.ignorelist.pagination_header=<bold>Ignore Edilen Oyuncular
command.join.description=Daha önce ayrıldığınız bir kanala katılın.
command.leave.description=Şu anda erişiminiz olan bir kanaldan ayrılın.
command.mute.argument.player=Susturulacak oyuncunun adı.
command.mute.argument.uuid=Susturulacak oyuncunun UUID''si.
command.mute.description=Oyuncuları susturur, onların sohbeti kullanmalarını veya diğer oyunculara fısıltı göndermelerini engeller.
command.muteinfo.argument.player=Oyuncunun adı.
command.muteinfo.argument.uuid=Oyuncunun UUID''si.
command.muteinfo.description=Oyuncuların susturulup susturulmadığını gösterir.
command.nickname.argument.nickname=Ayarlanacak takma ad.
command.nickname.argument.player=Hedef oyuncunun adı.
command.nickname.description=Takma adınızı gösterir.
command.nickname.others.description=Oyuncu takma adlarını gösterir.
command.nickname.others.reset.description=Hedeften ayarlanmış herhangi bir takma adı kaldırır.
command.nickname.others.set.description=Oyuncu takma adlarını ayarlar.
command.nickname.reset.description=Takma adınızı kaldırır.
command.nickname.set.description=Takma adınızı ayarlar.
command.reload.description=Carbon''un yapılandırma, kanal ayarları ve çevirilerini yeniden yükler. Kanalları yüklemeye veya boşaltmaya gitmez.
command.reply.argument.message=Yanıt olarak gönderilecek ileti.
command.reply.description=Size en son mesaj gönderen oyuncuya bir ileti gönderir.
command.togglemsg.description=Diğer oyuncuların size mesaj göndermesine izin verir veya engeller.
command.unignore.argument.player=Ignore''un kaldırılacağı oyuncunun adı.
command.unignore.argument.uuid=Ignore''un kaldırılacağı oyuncunun UUID''si.
command.unignore.description=Belirtilen oyuncunun mesajlarını gizlemeyi bırakır.
command.unmute.argument.player=Susturmanın kaldırılacağı oyuncunun adı.
command.unmute.argument.uuid=Susturmanın kaldırılacağı oyuncunun UUID''si.
command.unmute.description=Oyuncuların susturmasını kaldırır, onların sohbeti kullanmalarına ve diğer oyunculara fısıltı göndermelerine izin verir.
command.updateusername.argument.player=Güncellenecek oyuncunun adı.
command.updateusername.argument.uuid=Oyuncunun UUID''si.
command.updateusername.description=Oyuncunun adını Mojang adıyla eşleşecek şekilde günceller.
command.updateusername.fetching=Kullanıcı adı alınıyor...
command.updateusername.notupdated=Kullanıcı adı alınamıyor.
command.updateusername.updated=<newname>''nin kullanıcı adı güncellendi\!
command.whisper.argument.message=Gönderilecek ileti.
command.whisper.argument.player=İletişim kurmak istediğiniz oyuncunun adı.
command.whisper.description=Belirtilen oyuncuya özel bir ileti gönderir.
config.reload.failed=<red>Yapılandırma yeniden yüklenemedi.
config.reload.success=<green>Yapılandırma başarıyla yeniden yüklendi.
error.command.argument_parsing=<red>Geçersiz komut argümanı\: <gray><throwable_message>
error.command.command_execution=<hover\:show_text\:"<throwable_message>\n<stacktrace>\n<gray><italic> Kopyalamak için tıklayın"><click\:copy_to_clipboard\:<stacktrace>><red>Komutu çalıştırmaya çalışırken içsel bir hata oluştu.
error.command.command_needs_player=<red>Oyuncuların bu komutu çalıştırmak için oyuncu argümanı sağlaması gerekir.
error.command.invalid_player=''<input>'' için oyuncu bulunamadı.
error.command.invalid_sender=<red>Geçersiz komut gönderen. Tür <gray><sender_type> olmalıdır.
error.command.invalid_syntax=<red>Geçersiz komut sözdizimi. Doğru komut sözdizimi\: <white>/</white><gray><syntax></gray>
error.command.no_permission=<red>Üzgünüm, bu komutu gerçekleştirmek için izniniz yok.\nEğer bunun hata olduğuna inanıyorsanız lütfen sunucu yöneticileri ile iletişime geçin.
ignore.already_ignored=<red>Zaten <target>''i ignore ediyorsunuz.
ignore.exempt=<red>Bu hedef ignore edilemez.
ignore.invalid_target=<red>Hedef bulunamadı.
ignore.no_longer_ignoring=<green>Artık <target>''i ignore etmiyorsunuz.</green>
ignore.not_ignored=<red><target>''i ignore etmiyorsunuz.
ignore.now_ignoring=<green>Artık <target>''i ignore ediyorsunuz.</green>
mute.alert.players=<red><target> <red>susturuldu.
mute.alert.target=<red>Siz susturuldunuz.
mute.cannot_speak=<red>Susturulduğunuzda konuşamazsınız.
mute.exempt=<red>Bu oyuncunun susturulmasını engelleyemezsiniz.
mute.info.muted=<red><target> <red>susturulmuş durumda.
mute.info.not_muted=<red><target> <gold>susturulmamış durumda.
mute.info.self.muted=<red>Siz susturuldunuz.
mute.info.self.not_muted=<green>Siz susturulmamış durumdasınız.
mute.no_target=<red>Susturulacak belirli bir oyuncu yok.
mute.spy.prefix=<red><hover\:show_text\:''<red>Susturuldu</red>''>S</hover></red>
mute.unmute.alert.players=<green><target> <green>susturulması kaldırıldı.
mute.unmute.alert.target=<green>Siz artık susturulmamış durumdasınız.
mute.unmute.no_target=<red>Susturulacak belirli bir oyuncu yok.
nickname.reset=<gold>Takma adınız sıfırlandı.
nickname.reset.others=<green><target></green><gold>''in takma adı sıfırlandı.
nickname.set=<green>Takma adınız </green><nickname> olarak ayarlandı.
nickname.set.others=<green>Siz </green><target><green>''in takma adını </green><nickname> olarak ayarladınız.
nickname.show=<green>Takma adınız </green><nickname>.
nickname.show.others=<target><green>''in takma adı </green><nickname>.
nickname.show.others.unset=<target><red>''in ayarlanmış bir takma adı yok.</red>
nickname.show.unset=<red>Sizin ayarlanmış bir takma adınız yok.</red>
pagination.click_for_next_page=Sıradaki sayfa için tıklayın.
pagination.click_for_previous_page=Önceki sayfa için tıklayın.
pagination.footer=<gray>Sayfa <page><white>/</white><pages> <aqua><buttons></aqua></gray>.
pagination.page_out_of_range=<red>Sayfa <page> aralık dışında\! Sadece <pages> sayfa var.</red>.
reply.target.missing=<red>Cevap verecek kimse bulunmamaktadır.</red>
reply.target.self=<red>Kendinize fısıltı gönderemezsiniz.</red>
whisper.continue.target_missing=<red>Yanıt verecek kimse bulunmamaktadır.</red>
whisper.error=<red>Özel ileti gönderme başarısız oldu.</red>
whisper.ignored_by_target=<red><target></red> <red>sizin mesajlarınızı görmezden geliyor.</red>
whisper.ignoring_all=<red>Ignore ediliyor durumdayken mesaj gönderemezsiniz\!</red>
whisper.ignoring_target=<red><target> sizin mesajlarınızı görmezden geliyor.</red>
whisper.toggled.off=Artık özel mesajlar almıyorsunuz.
whisper.toggled.on=Artık özel mesajlar alıyorsunuz.

View File

@ -0,0 +1,160 @@
#Sun Jul 13 19:11:13 EEST 2025
channel.already_left=<red>你已经离开了该频道</red>
channel.change=<green>你正在 </green><channel><green> 频道上聊天</green>
channel.joined=<green>你已重新加入该频道</green>
channel.left=<red>你已离开该频道</red>
channel.no_permission=<red>你没有权限进入该频道</red>
channel.not_found=<red>找不到该频道</red>
channel.not_left=<red>你还未离开该频道</red>
channel.radius.empty_recipients=<red>你附近没有人, 无法发送消息.
command.clearchat.description=清空所有玩家的聊天框.
command.continue.argument.message=要发送的消息.
command.continue.description=向你上次私信你的人发送消息.
command.debug.argument.player=检查玩家的权限组.
command.debug.description=显示玩家的权限组.
command.help.argument.query=搜索查询.
command.help.description=Carbon 命令列表.
command.help.misc.arguments=参数
command.help.misc.available_commands=可用命令
command.help.misc.click_for_next_page=下一页
command.help.misc.click_for_previous_page=上一页
command.help.misc.click_to_show_help=点击显示此命令的帮助
command.help.misc.command=命令
command.help.misc.description=描述
command.help.misc.help=帮助
command.help.misc.no_description=无描述
command.help.misc.no_results_for_query=没有结果
command.help.misc.optional=可选
command.help.misc.page_out_of_range=错误\: 页面 <page> 不在范围内.必须在范围 [1, <max_pages>] 内
command.help.misc.showing_results_for_query=显示搜索结果\: <query>
command.ignore.argument.player=要屏蔽的玩家名字.
command.ignore.argument.uuid=要屏蔽的UUID.
command.ignore.description=屏蔽指定玩家的消息.
command.ignorelist.description=显示你屏蔽的玩家列表.
command.ignorelist.none_ignored=<green>你没有屏蔽任何玩家.
command.ignorelist.pagination_element=- <display_name> <click\:run_command\:''/unignore <username>''><hover\:show_text\:''单击取消屏蔽<username>''><gray>[<white>取消屏蔽</white>]</gray>
command.ignorelist.pagination_header=<bold>屏蔽列表
command.join.description=加入你上次离开的频道.
command.leave.description=离开你当前的频道.
command.mute.argument.player=要禁言的玩家.
command.mute.argument.uuid=要禁言的UUID.
command.mute.description=禁言指定玩家, 阻止指定玩家发送消息.
command.muteinfo.argument.player=玩家.
command.muteinfo.argument.uuid=UUID.
command.muteinfo.description=显示玩家是否被禁言.
command.nickname.argument.nickname=昵称.
command.nickname.argument.player=玩家.
command.nickname.description=显示你的昵称.
command.nickname.others.description=显示玩家的昵称.
command.nickname.others.reset.description=重置玩家的昵称.
command.nickname.others.set.description=设置玩家的昵称.
command.nickname.reset.description=删除你的昵称.
command.nickname.set.description=设置你的昵称.
command.party.accept.description=接受队伍邀请.
command.party.already_in_party=<display_name> <red>已经在你的队伍中.
command.party.cannot_disband_multiple_members=<red>无法解散队伍 ''</red><party_name><red>'' , 因为你不是最后一个成员.
command.party.cannot_invite_self=<red>你不能邀请自己.
command.party.create.description=创建一个新的队伍.
command.party.created=<green>成功创建并加入队伍''</green><party_name><green>''\!
command.party.current_party=<green>你在队伍<white>\: </white></green><party_name>
command.party.description=查看当前队伍的信息.
command.party.disband.description=解散当前队伍.
command.party.disbanded=<green>成功解散了队伍 ''</green><party_name><green>'' .
command.party.invite.description=邀请玩家加入你的队伍.
command.party.joined_party=<green>成功加入了队伍 ''</green><party_name><green>'' \!
command.party.leave.description=离开当前队伍.
command.party.left_party=<green>成功离开了队伍 ''</green><party_name><green>'' .
command.party.must_be_in_party=<red>你必须加入一个队伍才能使用该指令.使用 ''/party create'' 创建一个队伍, 或使用 ''/party accept'' 接受邀请.
command.party.must_leave_current_first=<red>你必须先离开当前的队伍.
command.party.must_specify_invite=<red>你必须指定邀请的人.
command.party.name_too_long=<red>队伍名称太长.
command.party.no_invite_from=<red>你没有来自 </red><sender_display_name><red> 的待处理邀请.
command.party.no_pending_invites=<red>你没有任何待处理的组队邀请.
command.party.not_in_party=<red>你不在任何队伍中.使用''/party create''创建一个队伍, 或使用''/party accept''接受邀请.
command.party.pagination_element=<online\:''<green>''\:''<gray>''> -<reset> <display_name>
command.party.pagination_header=<green>队伍成员</green>\:
command.party.received_invite=<hover\:show_text\:''<green>单击接受''><click\:run_command\:''/party accept <sender_username>''><green>你收到来自队伍''</green><party_name><green>''的邀请, 由</green><sender_display_name><green>发送.点击此消息以接受.
command.party.sent_invite=<green>已向 </green><recipient_display_name><green> 发送队伍邀请.
command.reload.description=重载配置.
command.reply.argument.message=要回复的消息.
command.reply.description=向最近私信你的玩家发送消息.
command.togglemsg.description=允许或禁止其他玩家向你发送消息.
command.unignore.argument.player=要取消屏蔽的玩家.
command.unignore.argument.uuid=要取消屏蔽的UUID.
command.unignore.description=取消屏蔽指定玩家的消息.
command.unmute.argument.player=要取消禁言的玩家.
command.unmute.argument.uuid=要取消禁言的UUID.
command.unmute.description=取消禁言指定玩家.
command.updateusername.argument.player=要更新的玩家名称.
command.updateusername.argument.uuid=要更新的玩家的 UUID.
command.updateusername.description=更新玩家的用户名以匹配其正版名称.
command.updateusername.fetching=获取用户名中...
command.updateusername.notupdated=无法获取用户名.
command.updateusername.updated=已更新 <newname> 的用户名\!
command.whisper.argument.message=要发送的私聊消息.
command.whisper.argument.player=要发送消息的玩家名称.
command.whisper.description=向指定玩家发送私聊消息.
config.reload.failed=<red>配置加载失败
config.reload.success=<green>配置加载成功
error.command.argument_parsing=<red>无效的命令参数\: <gray><throwable_message>
error.command.command_execution=<hover\:show_text\:"<throwable_message>\n<stacktrace>\n<gray><italic> 点击复制"><click\:copy_to_clipboard\:''<stacktrace>''><red>执行此命令时发生内部错误.
error.command.command_needs_player=<red>需要提供玩家参数才能执行此命令.
error.command.invalid_player=未找到名为 ''<input>'' 的玩家
error.command.invalid_sender=<red>无效的命令发送者.你必须是类型为 <gray><sender_type> <red>的用户
error.command.invalid_syntax=<red>无效命令, 正确用法\: <white>/</white><gray><syntax></gray>
error.command.no_permission=<red>你没有执行此命令的权限.
ignore.already_ignored=<red>你已经在屏蔽<target>
ignore.exempt=<red>你不能屏蔽<target>
ignore.invalid_target=<red>未找到玩家
ignore.no_longer_ignoring=<green>你不再屏蔽<target>
ignore.not_ignored=<red>你没有屏蔽<target>
ignore.now_ignoring=<green>你现在正在屏蔽<target>
integrations.fuuid.cannot_use_alliance_channel=<red>你必须加入一个联盟才能使用该频道.
integrations.fuuid.cannot_use_faction_channel=<red>你必须加入一个派系才能使用该频道.
integrations.fuuid.cannot_use_truce_channel=<red>你必须与另一个派系结成停战协议才能使用该频道.
integrations.mcmmo.cannot_use_party_channel=<red>你必须加入一个 mcMMO 队伍才能使用该频道.
integrations.towny.cannot_use_alliance_channel=<red>你必须加入一个联盟才能使用该频道.
integrations.towny.cannot_use_nation_channel=<red>你必须加入一个国家才能使用该频道.
integrations.towny.cannot_use_town_channel=<red>你必须加入一个城镇才能使用该频道.
mute.alert.players=<red><target> <red>已被禁言
mute.alert.target=<red>你已被禁言
mute.cannot_speak=<red>你被禁言时不能发言
mute.exempt=<red>该玩家不受禁言限制
mute.info.muted=<red><target> <red>被禁言了
mute.info.not_muted=<red><target> <gold>没有被禁言
mute.info.self.muted=<red>你被禁言了
mute.info.self.not_muted=<green>你没有被禁言
mute.no_target=<red>没有指定要禁言的玩家.
mute.spy.prefix=<red><hover\:show_text\:''<red>禁言</red>''>M</hover></red>
mute.unmute.alert.players=<green><target> <green>已被取消禁言
mute.unmute.alert.target=<green>你已被取消禁言
mute.unmute.no_target=<red>没有指定要解除禁言的玩家.
nickname.error.blacklist=<red>昵称"<nickname>" 不允许使用, 请选择其他昵称.
nickname.error.character_limit=<red>昵称 ''<nickname>'' 超过了字符限制, 必须设置为 <min_length>~<max_length> 个字符.
nickname.reset=<gold>你已重置自己的昵称
nickname.reset.others=<green>你已重置 <target> 的昵称</green>
nickname.set=<green>你的昵称已设置为 </green><nickname>
nickname.set.others=<green>你将 <target> 的昵称设置为 <nickname></green>
nickname.show=<green>你的昵称是</green> <nickname>
nickname.show.others=<target> <green>的昵称是 </green><nickname>
nickname.show.others.unset=<target> <red>未设置昵称
nickname.show.unset=<red>你未设置昵称
pagination.click_for_next_page=下一页
pagination.click_for_previous_page=上一页
pagination.footer=<gray>第 <page><white>/</white><pages> 页 <aqua><buttons>
pagination.page_out_of_range=<red>第 <page> 页超出范围, 总共只有 <pages> 页.
party.cannot_use_channel=<red>你必须加入一个队伍才能使用该频道.
party.player_joined=<display_name><green>加入了你的队伍.
party.player_left=<display_name><green>离开了你的队伍.
reply.target.missing=<red>没有回复
reply.target.self=<red>你不能给自己发送私信
whisper.console=<gold>[<green><sender_display_name></green>] -> [<green><recipient_display_name></green>] <message>
whisper.continue.target_missing=<red>无法继续发送私信
whisper.error=<red>发送私信失败
whisper.from=<click\:suggest_command\:''/whisper <sender_username> ''>hover\:show_text\:''单击开始回复''<gold>[<green><sender_display_name></green>] -> [<green>你</green>] <message>
whisper.ignored_by_target=<red><target> <red>已经屏蔽你的私信
whisper.ignoring_all=<red>无法在他们被你屏蔽时发送消息\!
whisper.ignoring_target=<red>你正在屏蔽 <target>
whisper.to=<click\:suggest_command\:''/whisper <recipient_username> ''><hover\:show_text\:''点击开始给<recipient_display_name>发送消息''><gold>[<green>你</green>] -> [<green><recipient_display_name></green>] <message>
whisper.toggled.off=你关闭了私信的接收.
whisper.toggled.on=你开启了私信的接收.

View File

@ -0,0 +1,160 @@
#Sun Jul 13 19:11:13 EEST 2025
channel.already_left=<red>你已經離開了該頻道</red>
channel.change=<green>你現在正在屏蔽 </green><channel>
channel.joined=<green>你已重新加入該頻道</green>
channel.left=<red>你已離開該頻道</red>
channel.no_permission=<red>你冇有權限進入該頻道</red>
channel.not_found=<red>找不到該頻道</red>
channel.not_left=<red>你還未離開該頻道</red>
channel.radius.empty_recipients=<red>你附近冇有人, 無法發送消息.
command.clearchat.description=清空所有玩家的聊天框.
command.continue.argument.message=要發送的消息.
command.continue.description=嚮你上次私信你的人發送消息.
command.debug.argument.player=檢查玩家的權限組.
command.debug.description=顯示玩家的權限組.
command.help.argument.query=搜索查詢.
command.help.description=Carbon 命令列錶.
command.help.misc.arguments=參數
command.help.misc.available_commands=可用命令
command.help.misc.click_for_next_page=下一頁
command.help.misc.click_for_previous_page=上一頁
command.help.misc.click_to_show_help=點選顯示此命令的幫助
command.help.misc.command=命令
command.help.misc.description=描述
command.help.misc.help=幫助
command.help.misc.no_description=無描述
command.help.misc.no_results_for_query=冇有結果
command.help.misc.optional=可選
command.help.misc.page_out_of_range=錯誤\: 頁麵 <page> 不在範圍內.必須在範圍 [1, <max_pages>] 內
command.help.misc.showing_results_for_query=顯示搜索結果\: <query>
command.ignore.argument.player=要屏蔽的玩家名字.
command.ignore.argument.uuid=要屏蔽的UUID.
command.ignore.description=屏蔽指定玩家的消息.
command.ignorelist.description=顯示你屏蔽的玩家列錶.
command.ignorelist.none_ignored=<green>你冇有屏蔽任何玩家.
command.ignorelist.pagination_element=- <display_name> <click\:run_command\:''/unignore <username>''><hover\:show_text\:''單擊取消屏蔽<username>''><gray>[<white>取消屏蔽</white>]</gray>
command.ignorelist.pagination_header=<bold>屏蔽列錶
command.join.description=加入你上次離開的頻道.
command.leave.description=離開你當前的頻道.
command.mute.argument.player=要禁言的玩家.
command.mute.argument.uuid=要禁言的UUID.
command.mute.description=禁言指定玩家, 阻止指定玩家發送消息.
command.muteinfo.argument.player=玩家.
command.muteinfo.argument.uuid=UUID.
command.muteinfo.description=顯示玩家是否被禁言.
command.nickname.argument.nickname=昵稱.
command.nickname.argument.player=玩家.
command.nickname.description=顯示你的昵稱.
command.nickname.others.description=顯示玩家的昵稱.
command.nickname.others.reset.description=重置玩家的昵稱.
command.nickname.others.set.description=設定玩家的昵稱.
command.nickname.reset.description=刪除你的昵稱.
command.nickname.set.description=設定你的昵稱.
command.party.accept.description=接受隊伍邀請.
command.party.already_in_party=<display_name> <red>已經在你的隊伍中.
command.party.cannot_disband_multiple_members=<red>無法解散隊伍 ''</red><party_name><red>'' , 因為你不是最後一個成員.
command.party.cannot_invite_self=<red>你不能邀請自己.
command.party.create.description=創建一個新的隊伍.
command.party.created=<green>成功創建並加入隊伍''</green><party_name><green>''\!
command.party.current_party=<green>你在隊伍<white>\: </white></green><party_name>
command.party.description=檢視當前隊伍的信息.
command.party.disband.description=解散當前隊伍.
command.party.disbanded=<green>成功解散了隊伍 ''</green><party_name><green>'' .
command.party.invite.description=邀請玩家加入你的隊伍.
command.party.joined_party=<green>成功加入了隊伍 ''</green><party_name><green>'' \!
command.party.leave.description=離開當前隊伍.
command.party.left_party=<green>成功離開了隊伍 ''</green><party_name><green>'' .
command.party.must_be_in_party=<red>你必須加入一個隊伍才能使用該指令.使用 ''/party create'' 創建一個隊伍, 或使用 ''/party accept'' 接受邀請.
command.party.must_leave_current_first=<red>你必須先離開當前的隊伍.
command.party.must_specify_invite=<red>你必須指定邀請的人.
command.party.name_too_long=<red>隊伍名稱太長.
command.party.no_invite_from=<red>你冇有來自 </red><sender_display_name><red> 的待處理邀請.
command.party.no_pending_invites=<red>你冇有任何待處理的組隊邀請.
command.party.not_in_party=<red>你不在任何隊伍中.使用''/party create''創建一個隊伍, 或使用''/party accept''接受邀請.
command.party.pagination_element=<online\:''<green>''\:''<gray>''> -<reset> <display_name>
command.party.pagination_header=<green>隊伍成員</green>\:
command.party.received_invite=<hover\:show_text\:''<green>單擊接受''><click\:run_command\:''/party accept <sender_username>''><green>你收到來自隊伍''</green><party_name><green>''的邀請, 由</green><sender_display_name><green>發送.點選此消息以接受.
command.party.sent_invite=<green>已嚮 </green><recipient_display_name><green> 發送隊伍邀請.
command.reload.description=重載配置.
command.reply.argument.message=要回複的消息.
command.reply.description=嚮最近私信你的玩家發送消息.
command.togglemsg.description=允許或禁止其他玩家嚮你發送消息.
command.unignore.argument.player=要取消屏蔽的玩家.
command.unignore.argument.uuid=要取消屏蔽的UUID.
command.unignore.description=取消屏蔽指定玩家的消息.
command.unmute.argument.player=要取消禁言的玩家.
command.unmute.argument.uuid=要取消禁言的UUID.
command.unmute.description=取消禁言指定玩家.
command.updateusername.argument.player=要更新的玩家名稱.
command.updateusername.argument.uuid=要更新的玩家的 UUID.
command.updateusername.description=更新玩家的用戶名以匹配其正版名稱.
command.updateusername.fetching=獲取用戶名中...
command.updateusername.notupdated=無法獲取用戶名.
command.updateusername.updated=已更新 <newname> 的用戶名\!
command.whisper.argument.message=要發送的私聊消息.
command.whisper.argument.player=要發送消息的玩家名稱.
command.whisper.description=嚮指定玩家發送私聊消息.
config.reload.failed=<red>配置加載失敗
config.reload.success=<green>配置加載成功
error.command.argument_parsing=<red>無效的命令參數\: <gray><throwable_message>
error.command.command_execution=<hover\:show_text\:"<throwable_message>\n<stacktrace>\n<gray><italic> 點選複製"><click\:copy_to_clipboard\:''<stacktrace>''><red>執行此命令時發生內部錯誤.
error.command.command_needs_player=<red>需要提供玩家參數才能執行此命令.
error.command.invalid_player=未找到名為 ''<input>'' 的玩家
error.command.invalid_sender=<red>無效的命令發送者.你必須是類型為 <gray><sender_type> <red>的用戶
error.command.invalid_syntax=<red>無效命令, 正確用法\: <white>/</white><gray><syntax></gray>
error.command.no_permission=<red>你冇有執行此命令的權限.
ignore.already_ignored=<red>你已經在屏蔽<target>
ignore.exempt=<red>你不能屏蔽<target>
ignore.invalid_target=<red>未找到玩家
ignore.no_longer_ignoring=<green>你不再屏蔽<target>
ignore.not_ignored=<red>你冇有屏蔽<target>
ignore.now_ignoring=<green>你現在正在屏蔽<target>
integrations.fuuid.cannot_use_alliance_channel=<red>你必須加入一個聯盟才能使用該頻道.
integrations.fuuid.cannot_use_faction_channel=<red>你必須加入一個派係才能使用該頻道.
integrations.fuuid.cannot_use_truce_channel=<red>你必須與另一個派係結成停戰協議才能使用該頻道.
integrations.mcmmo.cannot_use_party_channel=<red>你必須加入一個 mcMMO 隊伍才能使用該頻道.
integrations.towny.cannot_use_alliance_channel=<red>你必須加入一個聯盟才能使用該頻道.
integrations.towny.cannot_use_nation_channel=<red>你必須加入一個國家才能使用該頻道.
integrations.towny.cannot_use_town_channel=<red>你必須加入一個城鎮才能使用該頻道.
mute.alert.players=<red><target> <red>已被禁言
mute.alert.target=<red>你已被禁言
mute.cannot_speak=<red>你被禁言時不能發言
mute.exempt=<red>該玩家不受禁言限製
mute.info.muted=<red><target> <red>被禁言了
mute.info.not_muted=<red><target> <gold>冇有被禁言
mute.info.self.muted=<red>你被禁言了
mute.info.self.not_muted=<green>你冇有被禁言
mute.no_target=<red>冇有指定要禁言的玩家.
mute.spy.prefix=<red><hover\:show_text\:''<red>禁言</red>''>M</hover></red>
mute.unmute.alert.players=<green><target> <green>已被取消禁言
mute.unmute.alert.target=<green>你已被取消禁言
mute.unmute.no_target=<red>冇有指定要解除禁言的玩家.
nickname.error.blacklist=<red>昵稱"<nickname>" 不允許使用, 請選擇其他昵稱.
nickname.error.character_limit=<red>昵稱 ''<nickname>'' 超過了字符限製, 必須設定為 <min_length>~<max_length> 個字符.
nickname.reset=<gold>你已重置自己的昵稱
nickname.reset.others=<green>你已重置 <target> 的昵稱</green>
nickname.set=<green>你的昵稱已設定為 </green><nickname>
nickname.set.others=<green>你將 <target> 的昵稱設定為 <nickname></green>
nickname.show=<green>你的昵稱是</green> <nickname>
nickname.show.others=<target> <green>的昵稱是 </green><nickname>
nickname.show.others.unset=<target> <red>未設定昵稱
nickname.show.unset=<red>你未設定昵稱
pagination.click_for_next_page=下一頁
pagination.click_for_previous_page=上一頁
pagination.footer=<gray>第 <page><white>/</white><pages> 頁 <aqua><buttons>
pagination.page_out_of_range=<red>第 <page> 頁超出範圍, 總共隻有 <pages> 頁.
party.cannot_use_channel=<red>你必須加入一個隊伍才能使用該頻道.
party.player_joined=<display_name><green>加入了你的隊伍.
party.player_left=<display_name><green>離開了你的隊伍.
reply.target.missing=<red>冇有回複
reply.target.self=<red>你不能給自己發送私信
whisper.console=<gold>[<green><sender_display_name></green>] -> [<green><recipient_display_name></green>] <message>
whisper.continue.target_missing=<red>無法繼續發送私信
whisper.error=<red>發送私信失敗
whisper.from=<click\:suggest_command\:''/whisper <sender_username> ''>hover\:show_text\:''單擊開始回複''<gold>[<green><sender_display_name></green>] -> [<green>你</green>] <message>
whisper.ignored_by_target=<red><target> <red>已經屏蔽你的私信
whisper.ignoring_all=<red>無法在他們被你屏蔽時發送消息\!
whisper.ignoring_target=<red>你正在屏蔽 <target>
whisper.to=<click\:suggest_command\:''/whisper <recipient_username> ''><hover\:show_text\:''點選開始給<recipient_display_name>發送消息''><gold>[<green>你</green>] -> [<green><recipient_display_name></green>] <message>
whisper.toggled.off=你關閉了私信的接收.
whisper.toggled.on=你開啓了私信的接收.

BIN
src/plugins/Chunky-Bukkit-1.4.40.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,9 @@
# Chunky Configuration
# https://github.com/pop4959/Chunky/wiki/Configuration
version: 2
language: en
continue-on-restart: false
force-load-existing-chunks: false
silent: false
update-interval: 5

BIN
src/plugins/Clumps-5.0.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,55 @@
# XP Clumps Plugin Configuration
# The radius within which XP orbs will merge (in blocks)
merge-radius: 2.0
# Minimum XP amount required in an orb for it to be merged with others
min-xp-to-merge: 5
# How often (in seconds) the plugin checks and merges XP orbs in each world
merge-interval-seconds: 10
# The radius within which XP orbs will be instantly collected by players
instant-collect-radius: 1
# Enable or disable the instant collection of XP orbs by players within the defined radius
enable-instant-collect: true
# Enable or disable the merging of XP orbs across the server
enable-merging: true
# The XP boost multiplier for players collecting XP near merged XP orbs (percentage as a multiplier)
xp-boost-multiplier: 1.1 # 10% XP boost
# Enable or disable the XP boost feature for players near merging XP orbs
enable-xp-boost: false
# Enable or disable particle effects when XP orbs merge (visual animations)
enable-merge-animations: true
# Prevent duplication of XP orbs (to avoid excessive orb spawning)
prevent-orb-duplication: true
# World-specific settings (if you want different settings for different worlds)
world-settings:
# Example of how to configure world-specific settings for merging XP orbs
# These settings will override the global settings for specific worlds
overworld:
merge-radius: 2.0
min-xp-to-merge: 5
merge-interval-seconds: 10
enable-instant-collect: true
enable-merging: true
xp-boost-multiplier: 1.1
enable-xp-boost: true
enable-merge-animations: true
nether:
merge-radius: 3.0 # Different radius for the Nether
min-xp-to-merge: 10
merge-interval-seconds: 15 # Longer interval for Nether
enable-instant-collect: false # Disabled instant collect in the Nether
enable-merging: true
xp-boost-multiplier: 1.2 # Higher XP boost in the Nether
enable-xp-boost: true
enable-merge-animations: false # Disable animations in the Nether

BIN
src/plugins/CommandWhitelist-Bukkit-2.12.0.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,81 @@
# Messages use MiniMessage formatting (https://docs.adventure.kyori.net/minimessage/format)
messages:
prefix: ''
command_denied: ''
subcommand_denied: ''
no_permission: ''
no_such_subcommand: ''
config_reloaded: <yellow>Configuration reloaded.
added_to_whitelist: <yellow>Whitelisted command <gold>%s <yellow>for permission
<gold>%s
removed_from_whitelist: <yellow>Removed command <gold>%s <yellow>from permission
<gold>%s
group_doesnt_exist: <red>Group doesn't exist or error occured
# Do not enable if you don't have issues with aliased commands.
# This requires server restart to take effect.
use_protocollib: false
# Valid message types are CHAT and ACTIONBAR. Does nothing on velocity.
message_type: CHAT
groups:
default:
commands:
- tell
- reply
- ignore
- unignore
- discord
- imageframe
subcommands:
- discord ?
- discord help
- discord link
- discord linked
- discord clearlinked
role_moder:
commands:
- ban
- unban
- ipban
- unbanip
- banlist
- mute
- unmute
- ipmute
- unmuteip
- mutelist
- warn
- unwarn
- ipwarn
- unwarnip
- warns
- history
- alts
- kick
- ipkick
- blame
- vanish
- openender
- openinv
- grim
- coreprotect
- vmute
- vunmute
- vmutelist
- gamemode
- tp
subcommands:
- gamemode adventure
- gamemode creative
role_admin:
commands:
- luckperms
- searchender
- searchenchant
- searchcontainer
- bmarker
- bmarker-setup
- bmarker-setup-set
subcommands: []

BIN
src/plugins/CustomPlayerModels-Bukkit-0.6.22a.jar (Stored with Git LFS) Normal file

Binary file not shown.

BIN
src/plugins/DiscordSRV-Build-1.29.0.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,122 @@
# Это - продвинутый функционал DiscordSRV, позволяющий отправлять сообщения в дискорд при каком-либо событии / вводе команды.
# Вам нужно знать, как работают события в Bukkit.
# Если вы не уверены в том, как это использовать - можете спросить знакомого разработчика, или присоединиться на наш дискорд-сервер @ discordsrv.com/discord
# Made something you'd like to share? You can do so in our Discord server's #alerts forum (invite above)
#
# Ссылка на документацию Bukkit API:
# https://hub.spigotmc.org/javadocs/bukkit
# Полезные штуки, которые помогут понять как работает SpEL:
# https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html
# https://dzone.com/articles/learn-spring-expression-language-with-examples
#
# Вы можете использовать следующие заполнители:
# {tps} - Средний TPS серверп
# {time} - Текущее время
# {date} - Текущая дата
# {name} - (для PlayerEvent) имя игрока
# {ping} - (для PlayerEvent) пинг игрока
# {username} - (для PlayerEvent) имя игрока
# {displayname} - (для PlayerEvent) ник игрока
# {usernamenoescapes} - if alert is for a player event, the username of the player without escaping discord format (for use in inline code & code block markdown)
# {displaynamenoescapes} - if alert is for a player event, the display name of the player without escaping discord format (for use in inline code & code block markdown)
# {world} - (для PlayerEvent) мир, в котором находится игрок
# {embedavatarurl} - если PlayerEvent, то ссылка на аватар игрока, иначе на аватар бота
# {botavatarurl} - ссылка на аватар бота
# {botname} - имя бота
# %placeholder% - любые шаблоны PlaceholderAPI
#
# Вы также можете использовать выражения SpEL через ${expression...}, например...
# - Получить IP игрока: ${#player.address.address.hostAddress}
# - Получить игровой режим игрока: ${#player.gameMode.name()}
# - Получить id привязанного аккаунта в Discord у игрока: ${#discordsrv.accountLinkManager.getDiscordId(#player.uniqueId)}
# - Получить количество игроков на сервере: ${#server.onlinePlayers.size()}
# - Проверить статус DiscordSRV: ${#jda.status.name()}
# - Проверить, находится ли игрок в определённом мире: ${#player.world.name == 'world_the_end'}
# - Проверить, светит ли солнце в том мире, в котором сейчас игрок: ${#player.world.time > 0 && #player.world.time < 13000}
# Вы можете использовать следующие плейсхолдеры:
# #plugins.<plugin> - указанный плагин (null, если не существует)
# #event - Событие, которое отправит уведомление (если это уведомление действительно отправляется событием)
# #server - Эквивалент Bukkit#getServer
# #discordsrv - объект плагина DiscordSRV
# #player - игрок, который вызвал событие / отправил команду
# #sender - отправитель команды
# #command - полная команда (без слеша в начале)
# #args - аргументы команды
# #allArgs - аргументы команды как единая строка
# #channel - канал, в который будет отправлено это уведомление
# #jda - объект DiscordSRV JDA, нужен чтобы общаться с дискордом
#
# Синтаксис/стандартное:
# - Trigger: <название события либо /команда>
# Conditions:
# - property == < > <= >= value и т. д.
# Channel: <discordsrv channel name>
# IgnoreCancelled: true # Только для событий
# Content: ""
# Webhook:
# Enabled: false
# AvatarUrl: "{botavatarurl}"
# Name: "{botname}"
# Embed:
# Enabled: true
# Color: "#00ff00" # принимает шестнадцатеричный цветовой код (напр. "#ffffff") либо RGB-число (напр. 0)
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} сделал... Что-то."
# Url: ""
# ThumbnailUrl: ""
# Title:
# Text: ""
# Url: ""
# Description: ""
# Fields: [] # Формат - "title;value;inline" (напр. "Кто вошёл?;%displayname%;true") либо "blank", чтобы добавить пустое поле
# ImageUrl: ""
# Footer:
# Text: ""
# IconUrl: ""
# Timestamp: false # поставьте на true, чтобы использовать время, в которое было отправлено сообщение, иначе будет использоваться unix-timestamp для конкретного времени (https://www.epochconverter.com/)
#
Alerts:
# Конфиг-образец, отправляет сообщение в канал "fish", когда игрок ловит рыбу
#- Trigger: PlayerFishEvent
# Channel: fish
# Conditions:
# - state.name() == 'CAUGHT_FISH'
# Embed:
# Color: "#00ff00"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{name} поймал ${caught.itemStack.type.name()}!"
# Конфиг-образец, чтобы отправлять уведомления античита Matrix
#- Trigger: PlayerViolationEvent
# Channel: matrix
# Conditions:
# - violations >= 5 # Не отправлять инфу про тех, у кого меньше 5 нарушений
# Embed:
# Color: "#ff0000"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} попался на проверке ${hackType.name().toLowerCase()} | ${component} | vl:${violations} ping:${player.handle.ping} tps:{tps}"
# Конфиг-образец, отправляет сообщение всякий раз, когда кто-то использует /gamemode
#- Trigger: /gamemode
# Channel: gamemode
# Conditions:
# - '#player.hasPermission("minecraft.command.gamemode") == true'
# Embed:
# Color: "#ff0000"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} изменил игровой режим на ${#args.get(0)}"
# Конфиг-образец, отправляет сообщение всякий раз, когда кто-то использует /me
#- Trigger: /me
# Channel: me
# Conditions:
# - '#player.hasPermission("minecraft.command.me") == true || #player.hasPermission("essentials.me") == true'
# Embed:
# Color: "#00ff00"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "* {username} ${#allArgs}"

View File

@ -0,0 +1,354 @@
# DiscordSRV Configuration
# Нужна помощь? Присоединяйтесь к нашему Discord, https://discordsrv.com/discord
# Не трогайте это пожалуйста!
ConfigVersion: 1.29.0
# Токен бота; не знаете что это? Просмотрите видео по установке и настройке плагина
# После изменения этого параметра необходимо перезагрузить сервер.
BotToken: "_DISCORDSRV_BOT_TOKEN_"
# Ссылки на каналы из игры в Discord
# синтаксис: Channels: {"название внутриигрового канала из Minecraft": "числовой идентификатор канала из Discord", "другое название внутриигрового канала из Minecraft": "другой числовой идентификатор канала из Discord"}
#
# Все сообщения DiscordSRV будут идти на первый канал, если не определен канал для этого типа сообщений:
# при использовании совместимого плагина чата имя канала будет тем же, что и в этом плагине (для сообщений чата)
# - Если вы используете TownyChat, канал по умолчанию обычно называется "general", а не "global".
# для сообщений в чате игрока (если не используется плагин чата): global
# для сообщений о запуске / остановке сервера: status
# для сообщений о достижении / продвижении: awards
# для сообщений о смерти: deaths
# для сообщений о присоединении: join
# для сообщений о выходе: leave
# для сообщений dynmap: dynmap
# для сообщений сторожевого таймера: watchdog
# для /discord broadcast: broadcasts (если не указано в команде)
# Ссылка на аккаунт: link
#
# Первая часть пар каналов не является названием канала Discord!
# Выполните "/discord reload" после изменения этого опции для применения
Channels: {"carbon:global": "1401248428087836803"}
# Канал для вывода сообщений Консоли (НЕ ИМЯ); оставьте пустым, чтобы отключить консольный канал
DiscordConsoleChannelId: ""
# Ссылка на приглашение, отображаемая игрокам при использовании /discord, и в сообщении, отображаемом несвязанным игрокам при обязательной привязке.
DiscordInviteLink: "https://discord.gg/5ZnJD4yDBq"
# Эксперименты
# Эти функции не полностью оптимизированы; Используйте на свой риск
# JDBC (MySQL/MariaDB)
Experiment_JdbcAccountLinkBackend: "jdbc:mysql://_DISCORDSRV_DB_HOST_:_DISCORDSRV_DB_PORT_/_DISCORDSRV_DB_NAME_?autoReconnect=true&useSSL=false"
Experiment_JdbcTablePrefix: "discordsrv"
Experiment_JdbcUsername: "_DISCORDSRV_DB_USERNAME_"
Experiment_JdbcPassword: "_DISCORDSRV_DB_PASSWORD_"
# Webhook Delivery
Experiment_WebhookChatMessageDelivery: false
Experiment_WebhookChatMessageUsernameFormat: "%displayname%"
Experiment_WebhookChatMessageFormat: "%message%"
Experiment_WebhookChatMessageUsernameFromDiscord: false
Experiment_WebhookChatMessageAvatarFromDiscord: false
Experiment_WebhookChatMessageUsernameFilters: {}
# Встраивание и формат URL-адреса изображения / аватара веб-перехватчика
# Оставьте пустым, чтобы использовать значение по умолчанию
# Доступные заполнители: {texture} {username} {uuid} {uuid-nodashes} {size}
AvatarUrl: "https://mc-heads.net/avatar/%skinsrestorer_texture_id_or_steve%.png#{username}"
# Reserializer
# Преобразует форматирование (жирный, курсив, подчеркивание) между Minecraft и Discord
Experiment_MCDiscordReserializer_ToDiscord: true
Experiment_MCDiscordReserializer_ToMinecraft: true
Experiment_MCDiscordReserializer_InBroadcast: false
# Другие
CancelConsoleCommandIfLoggingFailed: true
ForcedLanguage: none
ForceTLSv12: true
NoopHostnameVerifier: false
MaximumAttemptsForSystemDNSBeforeUsingFallbackDNS: 3
TimestampFormat: EEE, d. MMM yyyy HH:mm:ss z
DateFormat: yyyy-MM-dd
# https://docs.discordsrv.com/config/#Timezone
Timezone: Europe/Kiev
# MinecraftMentionSound: Должен ли звук посылаться игроку в Minecraft при упоминании из Discord
MinecraftMentionSound: true
# Подключаемые модули
# После изменения этих параметров необходимо перезагрузить сервер.
#
# DisabledPluginHooks: отключить модули (обычно это названия плагинов).
# VentureChatBungee: включает BungeeCord-функционал модуля VentureChat (сообщения принимаются с каждого сервера, требуется, чтобы по крайней мере 1 игрок был в сети)
# EnablePresenceInformation: enabled presence information, which is required for some of our PlaceholderAPI placeholders. Keep in mind this requires the "Presence Intent" from the Discord developer portal
# UseModernPaperChatEvent: only use this if you have a chat plugins that SPECIFICALLY utilizes Paper's "AsyncChatEvent"
DisabledPluginHooks: []
VentureChatBungee: false
EnablePresenceInformation: false
UseModernPaperChatEvent: false
# Информация в статусе бота в Discord
# Устанавливает боту статус
# Может быть как одним статическим значением, так и несколькими (сменяющимися друг за другом).
# Вы можете добавить в начало "playing", "watching", "listening to" или "competing", чтобы установить тип активности (играет, смотрит, слушает, соревнуется)
# Также вы можете поставить свой кастомный статус без префикса
# %online%: number of online players
# Поддерживает шаблоны PlaceholderAPI
#
# DiscordGameStatus: Отображаемый текст. Может быть как одним значением, например "Minecraft", так и несколькими: ["Minecraft", "yourip.changeme.com"]
# DiscordOnlineStatus: Статус отображаемого действия. Он должен быть одним из следующих: ONLINE, DND, IDLE или INVISIBLE.
# StatusUpdateRateInMinutes: Как часто (в минутах) менять статус (если их несколько)
DiscordGameStatus: ["Синхронизирует Бебру"]
DiscordOnlineStatus: ONLINE
StatusUpdateRateInMinutes: 1
# Настройка канала чата
# Канал чата предназначен для вывода всех внутриигровых сообщений, а также всех публичных сообщений, которыми обмениваются игроки
# вашего сервера
#
# DiscordChatChannelDiscordToMinecraft: отправлять или не отправлять сообщения из канала чата в чат Minecraft (Discord -> Minecraft)
# DiscordChatChannelMinecraftToDiscord: отправлять или не отправлять сообщения из чата Minecraft в канал чата (Minecraft -> Discord)
# DiscordChatChannelTruncateLength: максимальная длина сообщений из Discord для отправки в чат Minecraft
# DiscordChatChannelTranslateMentions: переводить или не переводить упоминания такие как @Person для сообщений Minecraft в Discord
# DiscordChatChannelAllowedMentions: типы упоминаний, разрешенные в сообщениях Minecraft to Discord; типы, отсутствующие в значении по умолчанию: "роль", "здесь" и "все"
# DiscordChatChannelEmojiBehavior: как смайлики должны быть отправлены в Минекрафт. Может быть "show", "name" или "hide".
# DiscordChatChannelEmoteBehavior: как эмоты должны быть отправлены в Минекрафт. Может быть "name" или "hide".
# DiscordChatChannelPrefixRequiredToProcessMessage: символ(ы), необходимые как префикс сообщений для их отправки из Minecraft в Discord (например, «!»)
# DiscordChatChannelPrefixActsAsBlacklist: Должен ли префикс действовать как черный список.
# DiscordChatChannelRolesAllowedToUseColorCodesInChat: список ролей, которым разрешено использовать цвета/форматирование в чате Discord в Minecraft
# DiscordChatChannelBroadcastDiscordMessagesToConsole: выводить или нет обработанные Discord сообщения в игровую консоль
# DiscordChatChannelRequireLinkedAccount: требовать ли привязку аккаунта при отправке сообщения из Discord в Minecraft
# DiscordChatChannelBlockBots: блокировать ли ботам возможность отправлять сообщения из Discord в Minecraft
# DiscordChatChannelBlockWebhooks: следует ли блокировать ботов в чате Discord -> MC
# DiscordChatChannelBlockedIds: идентификаторы пользователей (или ботов), заблокированных для отсылки сообщений из Discord в Minecraft
# DiscordChatChannelBlockedRolesAsWhitelist: если следующий список следует рассматривать как белый список (true) или черный список (false)
# DiscordChatChannelBlockedRolesIds: идентификаторы ролей Discord, сообщения которых не должны обрабатываться и отправляться в MC
# DiscordChatChannelRolesSelectionAsWhitelist: если следующий список следует рассматривать как белый список (true) или черный список (false)
# DiscordChatChannelRolesSelection: список ролей, которые должны быть отфильтрованы по всем ролям пользователя.
# DiscordChatChannelRoleAliases: список псевдонимов ролей (альтернативные имена для ролей для использования в сообщениях Minecraft)
#
DiscordChatChannelDiscordToMinecraft: false
DiscordChatChannelMinecraftToDiscord: false
DiscordChatChannelTruncateLength: 256
DiscordChatChannelTranslateMentions: true
DiscordChatChannelAllowedMentions: [user, channel, emote]
DiscordChatChannelEmojiBehavior: "name"
DiscordChatChannelEmoteBehavior: "name"
DiscordChatChannelPrefixRequiredToProcessMessage: "#"
DiscordChatChannelPrefixActsAsBlacklist: false
DiscordChatChannelRolesAllowedToUseColorCodesInChat: ["Developer", "Owner", "Admin", "Moderator"]
DiscordChatChannelBroadcastDiscordMessagesToConsole: true
DiscordChatChannelRequireLinkedAccount: false
DiscordChatChannelBlockBots: false
DiscordChatChannelBlockWebhooks: true
DiscordChatChannelBlockedIds: ["000000000000000000", "000000000000000000", "000000000000000000"]
DiscordChatChannelBlockedRolesAsWhitelist: false
DiscordChatChannelBlockedRolesIds: ["000000000000000000", "000000000000000000", "000000000000000000"]
DiscordChatChannelRolesSelectionAsWhitelist: false
DiscordChatChannelRolesSelection: ["Don't show me!", "Misc role"]
DiscordChatChannelRoleAliases: {"Developer": "Dev"}
# Настройка чата консоли
# Канал или чат консоли - это текстовый канал, который интерпретирует все отслылаемые из Discord сообщения как команды консоли,
# а также транслирует все события, сообщения и команды консоли сервера в Discord
#
# Вы можете настроить формат всех сообщений (включая удаление временных меток) в конфигурационном файле messages.yml
#
# DiscordConsoleChannelLogRefreshRateInSeconds: скорость в секундах между отправкой сообщений из консоли
# DiscordConsoleChannelUsageLog:
# %date%: текущая дата
# пример: 2017-01-01
# PlaceholderAPI заполнители поддерживаются
# DiscordConsoleChannelBlacklistActsAsWhitelist: инвертировать ли "чёрный" список команд, превращая его в "белый"
# DiscordConsoleChannelBlacklistedCommands: фразы, заключенные в кавычки, которые пользователи не могут отправлять в виде команд в консоль
# DiscordConsoleChannelFilters: фильтры регулярных выражений, которые будут применяться к консольным строкам, отправляемым в Discord, если результат пуст, сообщение не будет отправлено вообще
# DiscordConsoleChannelLevels: типы логов, которые отправляются в консольный канал
# DiscordConsoleChannelUseCodeBlocks: если консоль должна быть завернута в блоки кода и окрашена
# DiscordConsoleChannelBlockBots: разрешить ли ботам отправлять команды в канале консоли
#
DiscordConsoleChannelLogRefreshRateInSeconds: 5
DiscordConsoleChannelUsageLog: "Console-%date%.log"
DiscordConsoleChannelBlacklistActsAsWhitelist: false
DiscordConsoleChannelBlacklistedCommands: ["?", "op", "deop", "execute"]
DiscordConsoleChannelFilters: {".*(?i)async chat thread.*": "", ".*There are \\d+ (?:of a max of|out of maximum) \\d+ players online.*": ""}
DiscordConsoleChannelLevels: [info, warn, error]
DiscordConsoleChannelUseCodeBlocks: true
DiscordConsoleChannelBlockBots: true
# Настройка выполнения команд в канале чата
# Эти опции позволяют настроить выполнение определённых команды на серверной консоли
# скажем, вот так "!c kick Notch"
#
# DiscordChatChannelConsoleCommandEnabled: разрешать или запрещать консольные команды из канала чата.
# DiscordChatChannelConsoleCommandNotifyErrors: отправлять или не отправлять сообщение об ошибке при попытке использовать команду, не имея прав
# DiscordChatChannelConsoleCommandPrefix: префикс для использования в консольных командах. например "!c tps"
# DiscordChatChannelConsoleCommandRolesAllowed: роли, которым разрешено выполнять команды сервера из канала чата
# DiscordChatChannelConsoleCommandWhitelist: список команд, которые могут быть запущены с помощью DiscordChatChannelConsoleCommandPrefix
# DiscordChatChannelConsoleCommandWhitelistBypassRoles: список ролей, которые обходят белый список
# DiscordChatChannelConsoleCommandWhitelistActsAsBlacklist: должен ли командный белый список действовать как черный список
# DiscordChatChannelConsoleCommandExpiration: время в секундах до тех пор, пока результат команды будет удален ботом. Установите значение 0, чтобы отключить истечение срока действия.
# DiscordChatChannelConsoleCommandExpirationDeleteRequest: удалить или не удалять сообщение игрока, который выполнил команду
#
DiscordChatChannelConsoleCommandEnabled: false
DiscordChatChannelConsoleCommandNotifyErrors: false
DiscordChatChannelConsoleCommandPrefix: "!c"
DiscordChatChannelConsoleCommandRolesAllowed: ["Protektor", "Developer"]
DiscordChatChannelConsoleCommandWhitelist: ["say", "lag", "tps"]
DiscordChatChannelConsoleCommandWhitelistBypassRoles: ["Owner", "Developer"]
DiscordChatChannelConsoleCommandWhitelistActsAsBlacklist: false
DiscordChatChannelConsoleCommandExpiration: 0
DiscordChatChannelConsoleCommandExpirationDeleteRequest: true
# Особая команда вывода списка игроков в канале чата
# Да-да, все эти опции только для одной безобидной команды "playerlist"
#
# DiscordChatChannelListCommandEnabled: включена ли команда
# DiscordChatChannelListCommandMessage: команда, которую могут использовать игроки, чтобы вывести список игроков на сервере
# DiscordChatChannelListCommandExpiration: время в секундах, пока выведенный список пользователей не будет удалён ботом. установите значение 0, чтобы отключить истечение срока действия.
# DiscordChatChannelListCommandExpirationDeleteRequest: удалять ли сообщение игрока, который изначально запросил вывод списока игроков
#
DiscordChatChannelListCommandEnabled: true
DiscordChatChannelListCommandMessage: "playerlist"
DiscordChatChannelListCommandExpiration: 10
DiscordChatChannelListCommandExpirationDeleteRequest: true
# Чёрный список фраз и регулярных выражений для канала чата
#
# DiscordChatChannelGameFilters: фильтры регулярных выражений, которые будут применяться к сообщениям чата, отправляемым в Discord, если результат пуст, сообщение не будет отправлено вообще
# DiscordChatChannelDiscordFilters: фильтры регулярных выражений, которые будут применяться к сообщениям чата, отправляемым в Minecraft, если результат пуст, сообщение не будет отправлено вообще
#
DiscordChatChannelGameFilters: {}
DiscordChatChannelDiscordFilters: {".*Online players \\(.*": "", ".*\\*\\*No online players\\*\\*.*": ""}
# Настройки обновления темы канала
#
# ChannelTopicUpdaterChannelTopicsAtShutdownEnabled: должны ли темы канала быть вообще изменены при завершении работы сервера
# ChannelTopicUpdaterRateInMinutes: число минут между автоматическим обновлением тем канала со свежей информацией
#
ChannelTopicUpdaterChannelTopicsAtShutdownEnabled: false
ChannelTopicUpdaterRateInMinutes: 10
# Обновление канала
# Эта функция изменяет название указанных каналов, чтобы они соответствовали внутриигровым заполнителям.
# Опции:
# ChannelId: идентификатор канала для изменения (обязательно)
# Format: формат канала (обязательно). Доступные заполнители:
# %playercount%: текущее количество игроков
# %playermax%: максимальное количество игроков
# %date%: текущая дата и время
# %totalplayers%: общее количество игроков, когда-либо присоединившихся к основному миру
# %uptimemins%: количество минут с момента запуска DiscordSRV
# %uptimehours%: количество часов с момента запуска DiscordSRV
# %motd%: motd сервера
# %serverversion%: версия сервера, например Spigot-1.9.
# %freememory%: свободная память JVM в МБ
# %usedmemory%: используемая память JVM в МБ
# %totalmemory%: общий объем памяти JVM в МБ
# %maxmemory%: максимальная память JVM в МБ
# %freememorygb%: свободная память JVM в ГБ
# %usedmemorygb%: используемая память JVM в ГБ
# %totalmemorygb%: общий объем памяти JVM в ГБ
# %maxmemorygb%: максимальная память JVM в ГБ
# %tps%: среднее значение TPS сервера
# Заполнители PlaceholderAPI также поддерживаются
# ShutdownFormat: Формат, который должен принимать канал после выключения сервера. Доступные заполнители:
# %time% или %date%: текущая дата и время
# %serverversion%: версия сервера
# %totalplayers%: общее количество игроков, когда-либо присоединившихся к основному миру
# %timestamp%: текущая временная метка unix
# UpdateInterval: Время в минутах ожидания между обновлением имени канала (минимум 10 из-за ограничений скорости)
ChannelUpdater:
- ChannelId: "000"
Format: "%playercount% игроков онлайн"
ShutdownFormat: "Сервер отключен"
UpdateInterval: 10
- ChannelId: "000"
Format: "Текущий показатель TPS: %tps%"
ShutdownFormat: "Сервер отключен"
UpdateInterval: 10
# Заготовленные ответы
# Эти триггеры (команды в некотором роде), которые будут отправлять «заготовленный ответ» в ответ на них
# Возможно, вы захотите изменить их или добавить свои собственные
#
# Синтаксис {"TRIGGER": "RESPONSE", "TRIGGER": "RESPONSE", ...}
# Если вы не хотите использовать эту опцию, просто оставьте {}
# Кстати, доступны шаблоны PlaceholderAPI
#
DiscordCannedResponses: {"!ip": "bebrashield.net", "!site": "https://bebrashield.net"}
# Подключение аккаунта Minecraft к Discord
# Эти опции относятся к настройке связывания игрового аккаунта Minecraft с учётной записью Discord
#
# MinecraftDiscordAccountLinkedConsoleCommands: команды, подлежащие выполнению при связывании аккаунтов (см. ниже все возможные шаблоны)
# MinecraftDiscordAccountUnlinkedConsoleCommands: команды, подлежащие выполнению при разрыве связанных аккаунтов (см. ниже все возможные шаблоны)
# %minecraftplayername%: ник игрока Minecraft
# пример: Notch
# %minecraftuuid%: uuid игрока
# пример: вы знаете как выглядит uuid
# %discordid%: связанный ID аккаунта Discord
# пример: 12345678901234567890
# %discordname%: привязанный ник аакаунта Discord
# пример: Notch
#
# MinecraftDiscordAccountLinkedRoleNameToAddUserTo: имя или ID Discord роли, в которую будут добавлены пользователи, после того как привяжут свои аккаунты
# MinecraftDiscordAccountLinkedAllowRelinkBySendingANewCode: можно ли отправить новый код боту, чтобы перепривязать аккаунт
# MinecraftDiscordAccountLinkedUsePM: Связывание счетов с помощью PMs
# MinecraftDiscordAccountLinkedMessageDeleteSeconds: Время (в секундах) до удаления сообщения при связывании в текстовом канале. Установите значение 0, если вы не хотите удалять сообщение.
#
MinecraftDiscordAccountLinkedConsoleCommands: ["", "", ""]
MinecraftDiscordAccountUnlinkedConsoleCommands: ["", "", ""]
MinecraftDiscordAccountLinkedRoleNameToAddUserTo: "1399136491090739210"
MinecraftDiscordAccountLinkedAllowRelinkBySendingANewCode: true
MinecraftDiscordAccountLinkedUsePM: true
MinecraftDiscordAccountLinkedMessageDeleteSeconds: 0
# Мониторинг сервера
#
# Мониторинг отслеживает состояние вашего сервера с момента последнего игрового такта (тика)
# Если время, прошедшее с момента последнего тика, превышает установленный таймаут в секундах, в чат Discord будет отправлено соответствующее сообщение
#
# ServerWatchdogEnabled: включён или нет мониторинг сервера в принципе
# ServerWatchdogTimeout: время в секундах, которое должно пройти с момента последнего тика, прежде чем будет отправлено сообщение (к примеру, Spigot использует 60 секунд)
# минимум для этого значения - 10 секунд
# ServerWatchdogMessageCount: количество раз отправки ServerWatchdogMessage. Полезно, если вы *действительно* хотите убедиться что что-то пошло не так
#
ServerWatchdogEnabled: true
ServerWatchdogTimeout: 30
ServerWatchdogMessageCount: 3
# HTTP proxy used for connecting to the Discord API
# Leave this alone if you don't understand what it does
ProxyHost: "example.com"
ProxyPort: 1234
ProxyUser: "USERNAME"
ProxyPassword: "PASSWORD"
# Отладочная информация
# Не включайте их, если вы не пытаетесь найти проблему
#
# Доступные категории отладки:
# MINECRAFT_TO_DISCORD - Сообщения из Minecraft
# DISCORD_TO_MINECRAFT - Сообщения из Discord
# GROUP_SYNC - Групповая синхронизация
# PRESENCE - Статус игры или присутствие бота
# VOICE - Голосовой модуль (см. voice.yml)
# REQUIRE_LINK - Требуемая ссылка для присоединения модуля (см. linking.yml)
# NICKNAME_SYNC - Псевдоним синхронизации
# ALERTS - Оповещения (см. alerts.yml)
# WATCHDOG - Мониторинг сервера
# BAN_SYNCHRONIZATION - Синхронизация банов
# LP_CONTEXTS - Контексты LuckPerm
# ACCOUNT_LINKING - привязка учетной записи Discord/Minecraft
#
# UNCATEGORIZED - Все, что не относится ни к одной из вышеуказанных категорий
# ALL - Все вышеперечисленные категории (включая UNCATEGORIZED)
#
# JDA - Отладочные сообщения JDA
# JDA_REST_ACTIONS - Для отладки остальных действий JDA
# CALLSTACKS - Отображает трассировку стека для вызовов отладки DiscordSRV
#
# Ex. "Debug: [GROUP_SYNC, PRESENCE]"
#
Debug: []

View File

@ -0,0 +1,57 @@
Require linked account to play:
Enabled: true
# Если вы не знаете, что это такое - не трогайте.
#
# Приоритет слушателя соединения
# В порядке от первого до последнего доступны следующие значения: LOWEST, LOW, NORMAL, HIGH, HIGHEST
# Возможно, вам придется изменить это на более поздний приоритет, чтобы плагин банов отключил игрока, прежде чем DiscordSRV откажет им
Listener priority: LOWEST
# Событие, когда модуль связи должен прослушивать и запрещать вход в систему
# Некоторые плагины белого списка используют AsyncPlayerPreLoginEvent (хорошо), некоторые используют PlayerLoginEvent (не так хорошо)
Listener event: AsyncPlayerPreLoginEvent
# Если вы не знаете, что это такое - не трогайте.
# Ники в Minecraft, которые могут заходить на сервер без подписки/привязки?
Bypass names: []
# Имеют ли люди из ванильного вайтлиста право входить на сервер без подписки/привязки?
Whitelisted players bypass check: true
# Разрешить или запретить игрокам из бан-листа VANILLA связывать свои аккаунты
Check banned players: false
# Независимо от того, будут ли игроки, не включенные в банлист VANILLA, обходить необходимость связывать свои учетные записи / иметь дополнительную роль
Only check banned players: false
# Сообщение при кике игроков с просьбой связать их учетные записи
# Используйте {BOT} в качестве заполнителя для имени бота
# Используйте {CODE} в качестве заполнителя для кода, который надо отправить боту
# Используйте {INVITE} в качестве заполнителя для ссылки-приглашения, которая необходима людям для присоединения к серверу Discord (использует DiscordInviteLink, настроенный в config.yml)
Not linked message: "&7Вы должны связать свою учетную запись &9Discord&7, чтобы играть.\n\n&7Отправьте сообщение боту &#e6c67a{BOT}&7 на сервере Discord с кодом &#e6c67a{CODE}&7, чтобы привязать аккаунт."
# Если включено, игрокам нужно будет не только связать свои аккаунты, но и потребуется
# быть участником сервера Discord, на котором находится бот.
#
# Допустимые форматы:
# true/false: связанная учетная запись должна быть хотя бы на одном сервере Discord, на котором находится бот
# например: true
# <идентификатор сервера>: связанная учетная запись должна находиться на данном сервере Discord
# например: 135634590575493120
# [<идентификатор сервера>, <идентификатор сервера>, ...]: связанная учетная запись должна быть на ВСЕХ указанных серверах Discord
# например: [135634590575493120, 690411863766466590]
#
# Значение этой опции заменяется, если ниже указаны обязательные для вас роли подписчика.
Must be in Discord server: true
# Можно требовать не только привязку аккаунта, но и наличие специальной роли, например Twitch
Subscriber role:
Require subscriber role to join: true
Subscriber roles: ["1399048944482259135", "1399048955291111495", "1399048958147301407", "1371492083281563728", ""]
Require all of the listed roles: false # при значении false требуется только одна из указанных выше ролей, при true - все роли.
Kick message: "&cВы должны пройти верификацию модерации на сервере Discord, чтобы иметь возможность играть."
Messages:
DiscordSRV still starting: "&cВ настоящее время невозможно проверить состояние ссылки, поскольку сервер все еще подключается к Discord.\n\nПопробуйте еще раз через минуту."
Not in server: "&cВ настоящее время вы не являетесь частью нашего сервера Discord.\n\nПрисоединяйтесь на {INVITE}!"
Failed to find subscriber role: "&cНе удалось найти какую-либо роль подписчика на Discord.\n\nСвяжитесь с администраторами вашего сервера по этому вопросу."
Failed for unknown reason: "&cПроизошла ошибка при попытке подтвердить ваш аккаунт.\n\nОбратитесь к администратору сервера по этому вопросу."
Kicked for unlinking: "&cВы были кикнуты с сервера из-за отвязки аккаунта Discord.\n\nПожалуйста, перезайдите, чтобы снова связать аккаунты."

View File

@ -0,0 +1,449 @@
# Discord -> Minecraft сообщения
#
# DiscordToMinecraftChatMessageFormat: формат, используемый при отправке сообщений из Discord в Minecraft
# DiscordToMinecraftChatMessageFormatNoRole: формат, используемый при отправке сообщений из Discord в Minecraft, когда игроку не назначена роль
#
# Вы можете указать другой формат для каждого канала. Допустим, у вас есть канал с именем «mychannel».
# Если вы хотите, чтобы форматирование отличалось от глобального, вы можете добавить следующие свойства:
#
# DiscordToMinecraftChatMessageFormat_mychannel: "[&bDiscord From MyChannel &r| %toprolecolor%%toprole%&r] %name% » %message%"
# DiscordToMinecraftChatMessageFormatNoRole_mychannel: "[&bDiscord From MyChannel&r] %name% » %message%"
#
# Доступные шаблоны:
# %allroles%: все роли пользователя скомбинированные с помощью DiscordToMinecraftAllRolesSeparator между ними
# пример: Owner | Developer | Boss man
# %message%: содержимое сообщения
# пример: Hello!
# %toprole%: самая высокая роль пользователя
# пример: Owner
# %toprolealias%: псевдоним роли из DiscordChatChannelRoleAliases, в противном случае имя роли
# пример: Dev
# %toproleinitial%: первая буква высшей роли
# example: O
# %toprolecolor%: приблизительный цвет самой высокой роли пользователя
# пример: &4
# %name%: действующее имя человека на Discord (псевдоним, если присутствует, имя пользователя в противном случае)
# пример: NotchIsMe
# %username%: пользователя в Discord
# пример: Notch
# %userid%: person's ID on Discord
# example: 1081004946872352958
# %channelname%: имя канала, из которого поступает сообщение
# пример: server-chat
# %reply%: сообщение, отображаемое, когда сообщение является ответом на другое сообщение.
# Формат сообщения можно настроить с помощью DiscordToMinecraftMessageReplyFormat,
# это будет пусто, если сообщение не является ответом на другое сообщение
#
# DiscordToMinecraftAllRolesSeparator: разделитель между ролями в шаблоне %allroles%
#
# DiscordToMinecraftMessageReplyFormat: формат отображаемого сообщения, указывающего, что сообщение является ответом.
#
# Доступные заполнители:
# %name%: эффективное имя пользователя, которому отвечает в Discord (псевдоним, если присутствует, в противном случае имя пользователя)
# example: NotchIsMe
# %username%: имя пользователя, которому отвечают в Discord.
# пример: Notch
# %userid%: the ID of the user that is being replied to on Discord
# example: 1081004946872352958
# %message%: содержание сообщения, на которое идет ответ
#
# ПРИМЕЧАНИЕ: Заполнитель %reply% должен присутствовать в формате, если вы хотите, чтобы DiscordToMinecraftMessageReplyFormat отображался в вашем сообщении.
#
DiscordToMinecraftChatMessageFormat: "[<aqua>Discord</aqua> | %toprolecolor%%toprolealias%<reset>] %name%%reply% » %message%"
DiscordToMinecraftChatMessageFormatNoRole: "[<aqua>Discord</aqua>] %name%%reply% » %message%"
DiscordToMinecraftAllRolesSeparator: " | "
DiscordToMinecraftMessageReplyFormat: " (отвечая на %name%)"
# Minecraft -> Discord сообщения
#
# MinecraftChatToDiscordMessageFormat: формат, используемый при отправке сообщений из Minecraft в Discord
# MinecraftChatToDiscordMessageFormatNoPrimaryGroup: используется вместо MinecraftChatToDiscordMessageFormat
# когда основная группа игрока не задана или не найдена
#
# Доступные шаблоны:
# %username%: исходное имя игрока
# пример: jeb_
# %displayname%: отображаемое имя игрока, по типу ника
# пример: BigBossManJeb
# %usernamenoescapes%: исходное имя игрока без экранирования формата Discord (для использования во встроенном коде и уценке блока кода)
# example: jeb_
# %displaynamenoescapes%: отображаемое имя игрока, по типу ника без экранирования формата Discord (для использования во встроенном коде и уценке блока кода)
# example: BigBossManJeb
# %message%: содержимое сообщения
# пример: Hello!
# %primarygroup%: имя основной группы игрока
# %world%: названия мира, где сейчас находится игрок
# пример: world
# %worldalias%: псевдоним к названию мира игрока, используемый в Multiverse-Core
# пример: Mainland
# %date%: текущие время и дата
# пример: Sun Jan 1 15:30:45 PDT 2017
# %channelname%: имя канала, в которое было отправлено сообщение, если сообщение было отправлено в канал вообще
# пример: Global
# Также поддерживаются PlaceholderAPI шаблоны
#
MinecraftChatToDiscordMessageFormat: "**%primarygroup%** %displayname% » %message%"
MinecraftChatToDiscordMessageFormatNoPrimaryGroup: "%displayname% » %message%"
# Плагины для обработки канала чата
# Это специальное сообщение, которое используется только тогда, когда подключен поддерживаемый плагин канала чата
# Модифицирует внутри-игровые сообщения, добавляя туда полезную информацию
#
# Доступные шаблоны:
# %channelcolor%: цвет символов, соответствующий каналу
# пример: Если цвет данного канала чата - красный, то это превратится в &c
# %channelname%: символьное имя канала - техническое имя которое видно только серверу
# пример: staff
# %channelnickname%: формальный ник канала, который видят игроки
# пример: Staff
# %message%: сообщение после обработки посредством DiscordToMinecraftChatMessageFormat / DiscordToMinecraftChatMessageFormatNoRole
# пример: jeb_ > Hello from the server!
#
ChatChannelHookMessageFormat: "%channelcolor%[%channelnickname%]&r %message%"
# Dynmap сообщения
#
# DynmapNameFormat: формат ника, отправляемого в Dynmap (это может быть скрыто в зависимости от настроек dynmap)
# DynmapChatFormat: формат сообщения, отправляемого в Dynmap
#
# Доступные шаблоны:
# Те же, что в Discord -> Minecraft
#
# DynmapDiscordFormat: формат сообщений Dynmap, идущих в Discord
#
# Доступные шаблоны:
# %message%: содержимое сообщения
# пример: Hello!
# %name%: имя пользователя для сообщения, отправленного в веб-чате Dynmap (может быть пустым)
# пример: Notch
# Также поддерживаются PlaceholderAPI шаблоны
#
DynmapNameFormat: "[Discord | %toprolealias%] %username%"
DynmapChatFormat: "%message%"
DynmapDiscordFormat: "[Dynmap] %name% » %message%"
# Канал консоли Discord
# Формат вывода серверной консоли в канал консоли (если тот включён)
#
# Доступные шаблоны:
# {level}: тип логов
# пример: INFO, WARN, ERROR
# {name}: имя регистратора
# пример: Server
# {datetime}: текущие время и дата
# пример: Sun 15:30:45
# Также поддерживаются PlaceholderAPI шаблоны
#
# DiscordConsoleChannelPrefix: Префикс для добавления перед сообщениями журнала.
# DiscordConsoleChannelSuffix: Суффикс для добавления после сообщений журнала.
#
DiscordConsoleChannelTimestampFormat: "EEE HH:mm:ss"
DiscordConsoleChannelPrefix: "[{date} {level}{name}] "
DiscordConsoleChannelSuffix: ""
DiscordConsoleChannelPadding: 0
# Канал чата Discord, обработка ошибок команд !c
# Используется в случае нехватки у пользователя прав.
#
# Доступные шаблоны:
# %user%: имя пользователя, который пытался исполнить команду
# пример: Notch
# %error%: причина ошибки
# пример: no permission
#
DiscordChatChannelConsoleCommandNotifyErrorsFormat: "**%user%**, ты пытался исполнить команду. К сожалению, произошла ошибка: %error%"
# Канал чата Discord, команда отображающая список пользователей
# Сообщения, отправляемые при запросе списка текущих пользователей на сервере
#
# DiscordChatChannelListCommandFormatOnlinePlayers: сообщение перед списком пользователей
# DiscordChatChannelListCommandFormatNoOnlinePlayers: сообщение на случай, если в онлайне нет ни одного пользователя
# DiscordChatChannelListCommandPlayerFormat: формат вывода отдельного игрока в списке
# Доступные шаблоны:
# %username%: исходное имя игрока
# %displayname%: отображаемое имя игрока, по типу ника
# %primarygroup%: имя основной группы игрока
# %world%: название мира, в котором находится игрок
# %worldalias%: псевдоним к названию мира игрока, используемый в Multiverse-Core
# Также поддерживаются PlaceholderAPI шаблоны
# DiscordChatChannelListCommandAllPlayersSeparator: разделитель списка игроков
#
DiscordChatChannelListCommandFormatOnlinePlayers: "**Игроков онлайн (%playercount%):**"
DiscordChatChannelListCommandFormatNoOnlinePlayers: "**Нет никого онлайн**"
DiscordChatChannelListCommandPlayerFormat: "%displayname%"
DiscordChatChannelListCommandAllPlayersSeparator: ", "
# Minecraft -> Discord notification messages
#
#
# Вложенные свойства:
# Color: принимает шестнадцатеричный цветовой код (напр. "#ffffff") или целое число RGB (напр. 0)
# Fields: формат "заглавие;стоимость;inline" (e.c. "Кто присоединился?;%displayname%;true") или "пусто", чтобы добавить пустое поле
# Timestamp: установите значение true, чтобы использовать время, когда было отправлено, или использовать отметку времени эпохи (https://www.epochconverter.com/)
#
# Доступные заполнители для PlayerJoin/PlayerFirstJoin/PlayerLeave/PlayerDeath/PlayerAchievement:
# %displayname%: отображаемое имя игрока, по типу ника
# %username%: исходное имя игрока
# %displaynamenoescapes%: отображаемое имя игрока, по типу ника без экранирования формата Discord (для использования во встроенном коде и уценке блока кода)
# %usernamenoescapes%: исходное имя игрока без экранирования формата Discord (для использования во встроенном коде и уценке блока кода)
# %date%: текущие время и дата
# %embedavatarurl%: аватар пользователя
# %botavatarurl%: аватар бота
# %botname%: имя бота
# Также поддерживаются PlaceholderAPI шаблоны
#
# Доступные заполнители для PlayerJoin:
# %message%: сообщение о входе в игру (Так, как оно отображается в Minecraft)
#
MinecraftPlayerJoinMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#00ff00"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%username% присоединился"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
#
# Доступные заполнители для PlayerFirstJoin:
# %message%: сообщение о входе в игру (Так, как оно отображается в Minecraft)
#
MinecraftPlayerFirstJoinMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#ffd700"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%username% впервые присоединился к нашему серверу"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
#
# Доступные заполнители для PlayerLeave:
# %message%: сообщение о выходе из игры (Так, как оно отображается в Minecraft)
#
MinecraftPlayerLeaveMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#ff0000"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%username% отключился"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
#
# Доступные заполнители для PlayerDeath:
# %deathmessage%: сообщение о смерти (Так, как оно отображается в Minecraft)
# %world%: название мира, в котором умер игрок
#
MinecraftPlayerDeathMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#000000"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%deathmessage%"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
#
# Доступные заполнители для сообщений PlayerAchievement:
# %achievement%: сообщение о достижении (Так, как оно отображается в Minecraft)
# %world%: название мира, в котором находится игрок
# Также поддерживаются PlaceholderAPI шаблоны
#
MinecraftPlayerAchievementMessage:
Enabled: true
Webhook:
Enable: false
AvatarUrl: "%botavatarurl%"
Name: "%botname%"
Content: ""
Embed:
Enabled: true
Color: "#ffd700"
Author:
ImageUrl: "%embedavatarurl%"
Name: "%username% получил достижение %achievement%!"
Url: ""
ThumbnailUrl: ""
Title:
Text: ""
Url: ""
Description: ""
Fields: []
ImageUrl: ""
Footer:
Text: ""
IconUrl: ""
Timestamp: false
# Сообщения тем каналов
# Все эти опции нужны, чтобы автоматически устанавливать темы каналов чата и консоли,
# Наполняя их всевозможной серверной информацией
#
# ChannelTopicUpdater______ChannelTopicFormat: сообщение, которое будет установлено как тема канала, каждые X секунд
# ChannelTopicUpdater______ChannelTopicAtShutdownFormat: сообщение, которое будет установлено как тема канала, когда сервер выключен
#
# Доступные шаблоны:
# %playercount%: текущее число игроков
# %playermax%: максимальное число игроков
# %date%: текущая дата
# %totalplayers%: общее число игроков, когда-либо подключавшееся к серверу
# %uptimemins%: число минут с момента запуска DiscordSRV
# %uptimehours%: число часов с момента запуска DiscordSRV
# %motd%: описание сервера в меню выбора серверов
# %serverversion%: версия серверной платформы (например Spigot-1.9)
# %freememory%: свободная память в МБ, согласно данным JVM
# %usedmemory%: используемая память в МБ, согласно данным JVM
# %totalmemory%: общая память в МБ, согласно данным JVM
# %maxmemory%: максимально выделенная память в МБ, согласно данным JVM
# %freememorygb%: свободная память в ГБ, согласно данным JVM
# %usedmemorygb%: используемая память в ГБ, согласно данным JVM
# %totalmemorygb%: общая память в ГБ, согласно данным JVM
# %maxmemorygb%: максимально выделенная память в ГБ, согласно данным JVM
# %tps%: средний TPS сервера
# Также поддерживаются PlaceholderAPI шаблоны
#
ChannelTopicUpdaterChatChannelTopicFormat: "%playercount% игроков онлайн | %totalplayers% игроков было всего | Сервер запущен уже %uptimemins% минут | Обновлено: %date%"
ChannelTopicUpdaterConsoleChannelTopicFormat: "TPS: %tps% | Mem: %usedmemorygb%GB исп/%freememorygb%GB своб/%maxmemorygb%GB макс | %serverversion%"
# AtServerShutdownFormats поддерживает только %totalplayers%, %serverversion%, & %date% / %time%
ChannelTopicUpdaterChatChannelTopicAtServerShutdownFormat: "Сервер отключён | %totalplayers% уникальных игроков"
ChannelTopicUpdaterConsoleChannelTopicAtServerShutdownFormat: "Сервер отключён | %serverversion%"
# Сообщения команды /discord
# Это сообщение отсылается игрокам, когда они выполняют команду "/discord". Рекомендуется сохранить такой же синтаксис, как ниже
# Используйте {INVITE} в качестве заполнителя для ссылки приглашения, которая необходима людям для присоединения к серверу Discord
# (Использует DiscordInviteLink, настроенный в config.yml)
#
DiscordCommandFormat: "&bПрисоединяйся к нам в Discord по ссылке {INVITE}&b. Иcпользуй \"/discord ?\" чтобы узнать больше"
# Нет формата сообщения разрешения
NoPermissionMessage: "&cУ вас нет прав выполнения такой команды."
# Неизвестное командное сообщение
UnknownCommandMessage: "&bТакой команды не существует!"
# Сообщения запуска/остановки сервера
# DiscordChatChannelServerStartupMessage: сообщение, отправляемое при старте сервера; оставьте пустым, чтобы отключить
# DiscordChatChannelServerShutdownMessage: сообщение, отправляемое при остановке сервера; оставьте пустым, чтобы отключить
#
DiscordChatChannelServerStartupMessage: ":white_check_mark: **Сервер успешно запущен**"
DiscordChatChannelServerShutdownMessage: ":octagonal_sign: **Сервер остановлен**"
# Сообщения мониторинга (детектор лагов)
#
# Служба мониторинга отслеживает состояние сервера с момента последнего исполненного тика
# В случае превышения заданного таймаута, отсылаются сообщения
#
# ServerWatchdogMessage: сообщение, которое будет отправлено в главный канал.
# вы можете упоминать пользователей, используя "<@USERID>", i.e. "<@12345678901234567890>"
# вы можете упоминать роли, используя "<@&ROLEID>", i.e. "<@&12345678901234567890>"; see console when discordsrv loads for role ids
# вы можете упоминать владельца сервера, используя "%guildowner%"
# вы можете вставить дату и время падения сервера в сообщение, используя %date%
# вы можете использовать ServerWatchdogTimeout в качестве заполнителя, используя %timeout%
# вы можете использовать заполнитель %timestamp% для использования в формате метки времени Discord
#
ServerWatchdogMessage: "<t:%timestamp%:R> %guildowner%, сервер не ответил через %timeout% секунд :fire::bangbang:"
# Сообщения привязки аккаунта
# Эти сообщения используются при связывании аккаунтов Discord и Minecraft
#
# Доступные шаблоны:
# UnknownCode/InvalidCode: %code%: одноразовый код, сгенерированный для пользователя, для привязки аккаунта
# %mention%: упоминание учетной записи Discord
# DiscordAccountLinked: %name%: имя игрока Minecraft, с которым связан аккаунт Discord
# %displayname%: отображаемое имя игрока Minecraft, с которым связан аккаунт Discord
# %uuid%: uuid игрока Minecraft, с которым связан аккаунт Discord
# %mention%: упоминание учетной записи Discord
# DiscordAccountAlreadyLinked: %uuid%: uuid Minecraft связанной учетной записи Minecraft пользователя
# %username%: имя пользователя Minecraft связанной учетной записи Minecraft пользователя
# %mention%: упоминание учетной записи Discord
# DiscordLinkedAccountRequired %message%: сообщение, которое пользователь не смог отправить, потому что они не были связаны
# CodeGenerated: %code%: одноразовый код, сгенерированный для пользователя, для привязки аккаунта
# %botname%: имя бота Discord
# MinecraftAccountLinked: %id%: идентификатор пользователя Discord, с которым была связана учетная запись Minecraft
# %username%: имя пользователя Discord, с которым была связана учетная запись Minecraft
# LinkedCommandSuccess: %name%: имя пользователя Discord в Discord, с которым была связана учетная запись Minecraft.
# UnlinkCommandSuccess: %name%: имя пользователя Discord в Discord, с которым была связана учетная запись Minecraft.
# MinecraftNobodyFound: %target%: ввод, который привел к отсутствию результатов
#
# Discord
UnknownCode: "Я не знаю такого кода, попробуйте снова."
InvalidCode: "Вы уверены, что это ваш код? Обычно код выглядит как 4 цифры."
DiscordAccountLinked: "Ваш Discord аккаунт был успешно привязан к Minecraft-аккаунту %name% (%uuid%)"
DiscordAccountAlreadyLinked: "Вы уже связаны с %username% (%uuid%)"
DiscordLinkedAccountRequired: "Вы попытались отправить сообщение в игровой чат из клиента Discord, однако сервер требует, чтобы вы привязали ваш Майнкрафт аккаунт к вашей учётной записи Discord. Чтобы связать эти аккаунты, используйте команду `/discord link` в игре. \n```%message%```"
DiscordLinkedAccountCheckFailed: "Не удалось проверить, связан ли ваш аккаунт, повторите попытку позже."
# Minecraft
CodeGenerated: "Ваш привязочный код - %code%. Отправьте личное сообщение боту (%botname%) с этим кодом, чтобы привязать свой аккаунт."
ClickToCopyCode: "Нажмите, чтобы скопировать"
MinecraftAccountLinked: "&bВаш UUID был связан с пользователем Discord %username% (%id%)"
MinecraftAccountAlreadyLinked: "&bВаш Майнкрафт аккаунт уже связан с учётной записью Discord. Вы можете отвязать его командой /discord unlink, если у вас есть соответсвующие права."
LinkedCommandSuccess: "&bВаш Майнкрафт аккаунт успешно связан с %name%."
UnlinkCommandSuccess: "&bВаш Майнкрафт аккаунт больше не связан с %name%."
MinecraftNoLinkedAccount: "&cВаш Майнкрафт аккаунт не привязан к аккаунту Discord."
LinkingError: "&cК сожалению, мы не можем связать ваши аккаунты из-за внутренней ошибки. Свяжитесь с администратором сервера."
MinecraftNobodyFound: "&cНикого с такими Discord ID/Discord ник/Minecraft ник/Minecraft UUID подходящего \"%target%\" не найдено."

View File

@ -0,0 +1,54 @@
# Синхронизация никнеймов
# Can be controlled per player through the use of the 'discordsrv.nicknamesync' permission (granted by default)
#
# В Discord будет такой же ник, как в Minecraft
# NicknameSynchronizationEnabled: Включить - true, отключить - false
# NicknameSynchronizationCycleTime: Время (в минутах) - как часто DiscordSRV будет синхронизировать ники игроков.
# NicknameSynchronizationFormat: Формат ников в дискорде.
# Примеры:
# %displayname%: отображаемое имя игрока
# %username%: имя пользователя игрока
# %discord_name%: логин игрока в Discord
# %discord_discriminator%: дискорд-дискриминатор игрока
# Поддерживает шаблоны из PlaceholderAPI.
#
NicknameSynchronizationEnabled: false
NicknameSynchronizationCycleTime: 3
NicknameSynchronizationFormat: "%displayname%"
# Синхронизация групп в Minecraft и ролей в Discord
# Требует установку плагина Vault
#
# GroupRoleSynchronizationGroupsAndRolesToSync: Группы и роли, которые нужно синхронизировать
# Используйте формат {"группа": "id роли в Discord"}
# Чтобы узнать id роли, напишите "/discord debug" и посмотрите в первую секцию.
# GroupRoleSynchronizationMinecraftIsAuthoritative: Если выдать/забрать группу в Minecraft, то должна ли соответствующая роль
# появиться/пропасть в Discord? true - да, false - нет
# GroupRoleSynchronizationOneWay: whether to synchronise only one way, the way it is synchronised depends on the value
# of GroupRoleSynchronizationMinecraftIsAuthoritative.
# GroupRoleSynchronizationEnableDenyPermission: Включены ли в Minecraft права discordsrv.sync.deny.<id роли>
# GroupRoleSynchronizationPrimaryGroupOnly: true - синхронизируется только главная группа игрока.
# false - синхронизируются все побочные и родительские группы.
# GroupRoleSynchronizationOnLink: Нужно ли проводить синхронизацию, когда игрок привязывает аккаунт в Discord?
# GroupRoleSynchronizationCycleTime: Время (в минутах) - как часто DiscordSRV будет синхронизировать роли и группы игроков.
# GroupRoleSynchronizationCycleCompletely: должна ли синхронизация, запущенная по таймеру, синхронизировать каждого участника на серверах Discord ботов
#
GroupRoleSynchronizationGroupsAndRolesToSync: {"role_player": "1399136491090739210"}
GroupRoleSynchronizationMinecraftIsAuthoritative: true
GroupRoleSynchronizationOneWay: false
GroupRoleSynchronizationEnableDenyPermission: false
GroupRoleSynchronizationPrimaryGroupOnly: false
GroupRoleSynchronizationOnLink: true
GroupRoleSynchronizationCycleTime: 5
GroupRoleSynchronizationCycleCompletely: false
# Синхронизация банов
# Если игрока забанят в Minecraft, то он автоматически получит бан в дискорде (и наоборот)
#
# BanSynchronizationDiscordToMinecraft: Если игрока забанили в Discord, нужно ли банить его в Minecraft? true - да, false - нет
# BanSynchronizationDiscordToMinecraftReason: С каким сообщением банить игрока в Minercaft, если его забанили в Discord
# BanSynchronizationMinecraftToDiscord: Если игрока забанили в Minecraft, нужно ли банить его в Discord? true - да, false - нет
#
BanSynchronizationDiscordToMinecraft: false
BanSynchronizationDiscordToMinecraftReason: "&cВы были заблокированы на сервере Discord, поэтому ваш аккаунт в Minecraft тоже получил бан."
BanSynchronizationMinecraftToDiscord: false

View File

@ -0,0 +1,29 @@
# Это конфиг для интеграции голосового чата через DiscordSRV.
# Голосовой чат - экспериментальная функция. Некоторые вещи могут работать неправильно.
# Просим вас сообщать в дискорд обо всех ошибках, связанных с этим модулем:
# https://discordsrv.com/discord
# Включить голосовой модуль? true - вкл., false - выкл.
# После изменения этого параметра необходимо перезагрузить сервер.
Voice enabled: false
# Количество тиков между обновлениями (1 секунда - 20 тиков)
Tick speed: 5
# Главная категория, в которой будут создаваться/удаляться/перемещаться голосовые каналы
# В этой категории не должно быть никаких каналов, кроме лобби (см. ниже)
Voice category: 000000000000000000
# Канал-лобби, в который будут попадать игроки, находящиеся слишком далеко от других (те, кому не с кем общаться)
# Чтобы подключиться к голосовому чату, игрокам нужно будет зайти в этот канал.
Lobby channel: 000000000000000000
# Если у кого-то есть права на обход ограничения на разговоры в лобби, то всё равно глушить его? true - да, false - нет
Mute users who bypass speak permissions in the lobby: true
Network:
# Расстояние, на котором игроки могут говорить друг с другом
Vertical Strength: 40
Horizontal Strength: 80
# Если игрок вошёл в зону, то, чтобы выйти из неё, ему нужно отойти назад на большее расстояние
# То, насколько больше это расстояние - определяется этой настройкой
Falloff: 5
# Whether voice network channels are visible to everyone, even those not connected
# Helps let players know if people are actually using the voice network at the moment
Channels are visible: false

BIN
src/plugins/FreedomChat-Paper-1.7.0.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,17 @@
# Whether FreedomChat should replace player (signed or unsigned) chat with
# system messages. This is what makes chat not reportable.
rewrite-chat: true
# Whether FreedomChat should claim to clients that secure chat is enforced.
# With this set to true, the "Chat messages can't be verified" toast will not
# be shown. This is, in default configurations, unrelated to allowing clients
# not signing their messages join. In modern versions, clients also
# require a valid access token to be present for the toast to be hidden.
# That being said, you may still see the toast even if this option is enabled.
claim-secure-chat-enforced: true
# Whether to report the server as secure (disabling chat reporting) to the
# NoChatReports client mod. This displays a green icon on the server list
# screen and if enforce-secure-profiles is disabled the open chat screen
# for users of the client-side mod.
send-prevents-chat-reports-to-client: true

View File

@ -0,0 +1,218 @@
# GrimAC main configuration
# Source code: https://github.com/MWHunter/Grim
# Copyright 2025 DefineOutside and contributors, Licensed under GPLv3.
# Modified binaries, or plugins with copied grim code, must be private,
# or with full source code available to buyers at no additional cost.
alerts:
# In addition to broadcasting alerts to players, should they also be sent to the console?
print-to-console: true
# This controls whether/how alerts are shared between servers connected to your proxy.
# You must have 'bungee-plugin-message-channel' enabled in your Velocity's configuration if Velocity is in use.
proxy:
# Should alerts be sent to other servers connected to your proxy?
send: false
# Should the alerts received from other servers be announced to this server?
receive: false
verbose:
print-to-console: false
check-for-updates: true
client-brand:
# This means it won't broadcast their brand to operators if the brand matches the following regexes
ignored-clients:
- "^vanilla$"
# - "^fabric$"
# - "^lunarclient:v\\d+\\.\\d+\\.\\d+-\\d{4}$"
# - "^Feather Fabric$"
# - "^labymod$"
spectators:
# Hide all spectators with the grim.spectator permission regardless if they are actually actively spectating
hide-regardless: false
# Will make spectators hidden only in these worlds, keep blank to allow all worlds
allowed-worlds:
- ""
# How long should players have until we kick them for timing out? Default = 60 seconds
max-transaction-time: 60
# Should the duplicate movement packet be cancelled?
# Mojang has fixed this issue in 1.21. This was their attempt to fix the "bucket desync". https://bugs.mojang.com/browse/MC-12363
# This setting only applies to 1.17-1.20.5 clients on 1.8 servers.
cancel-duplicate-packet: true
# Whether or not to ignore the rotation in duplicate packets
ignore-duplicate-packet-rotation: false
Simulation:
# How much should we multiply total advantage by when the player is legit
# This is what the default config looks like (x axis = seconds, y axis = 1/1000 block): https://www.desmos.com/calculator/d4ufgxrxer
setback-decay-multiplier: 0.999
# How large of an offset from the player's movement should we create a violation for?
# Measured in blocks from the possible movement
# We account for Optifine by switching trig tables but dropping this to 0.001 will reduce FastMath
# flagging the anticheat if this compensation doesn't work...
threshold: 0.001
# How large of a violation in a tick before the player gets immediately setback?
# -1 to disable
immediate-setback-threshold: 0.1
# How large of an advantage over all ticks before we start to setback?
# -1 to disable
max-advantage: 1
# After 50 seconds with default config, the player will go from 4 blocks -> 1 block of advantage
# This is to stop the player from gathering too many violations and never being able to clear them all
# Default advantage ceiling (x axis = seconds, y axis = 1/1000 block): https://www.desmos.com/calculator/4lovswdarj
max-ceiling: 4
# Violation level threshold for setback
# 1 for old behavior
setback-violation-threshold: 1
# Checks to see if a player entered a block during a movement
Phase:
setbackvl: 1 # Glitching into blocks can allow wall climbing, plus this check is relatively stable
decay: 0.005
AirLiquidPlace:
cancelvl: 0
FabricatedPlace:
cancelvl: 5
FarPlace:
cancelvl: 5
PositionPlace:
cancelvl: 5
RotationPlace:
cancelvl: 5
# Prediction-based no slow check
# Grim accounts for buggy netcode here... hard to false even when spamming right click and offhand button
# Much more stable than other anticheats, but please report any falses... I have fixed a ton of netcode issues here.
NoSlow:
# How much of an offset is "cheating"
# By default this is lower than other offs
# Flags by 0.03-0.2 consistently with NoSlow on
threshold: 0.001
# Setback fast on the first item to remove any advantage NoSlow gives
setbackvl: 5
# Decay's when the player uses an item AND is slowed by it
decay: 0.05
Knockback:
# How much should we multiply total advantage by when the player is legit
setback-decay-multiplier: 0.999
# How large of an offset from the player's velocity should we create a violation for?
# Measured in blocks from the possible velocity
threshold: 0.001
# How large of a violation in a tick before the player gets immediately setback?
# -1 to disable
immediate-setback-threshold: 0.1
# How large of an advantage over all ticks before we start to setback?
# -1 to disable
max-advantage: 1
# This is to stop the player from gathering too many violations and never being able to clear them all
max-ceiling: 4
Explosion:
threshold: 0.001
setbackvl: 3
TimerA:
setbackvl: 10
# Milliseconds that the player can accumulate for later use when they fall behind
# Could potentially allow 1.8 fast use/fast heal/fast bow bypasses if set too high, 120 ms seems like a good balance
drift: 120
# Ping at which the check will start to limit timer balance, to prevent abuse.
# Can cause some setbacks for legitimate players but only if they are over this ping threshold.
# -1 to disable
ping-abuse-limit-threshold: 1000
NegativeTimer:
# Number of milliseconds lost while moving before we should start flagging
drift: 1200
# Same check method as TimerA, but for vehicles
TimerVehicle:
# Target 1.005 timer
setbackvl: 10
PacketOrderI:
# enable if players are getting flagged for using 1.7 animations mods
exempt-placing-while-digging: false
Reach:
# How much should we expand hitboxes by? 0.0005 should detect 3.0005+ reach
#
# There is 0.03 forced expansion with 1.9-1.18.1 (not 1.18.2), or some client/server combinations due to
# protocol changes and limitations. This check is most powerful with 1.7/1.8 clients on 1.8 servers.
threshold: 0.0005
# Should we cancel hits that we know are impossible?
# 3.00-3.03 hits may go through but still be flagged, due to packet order limitations
block-impossible-hits: true
# This will send an additional packet at the end of every tick to increase the likelihood of catching cheats
# This injects into server's connection list to send a final packet just before the server flushes
# Enabling this will increase bandwidth usage for all players
# This will not decrease overall server performance
# Enabling this will catch more cheaters.
# Leaving this disabled will still catch cheaters and will not cause false positives
# Unless you are a 1.8 PvP focused server, this additional packet is not recommended
enable-post-packet: false
exploit:
# You can gain high speeds when sprint jumping with an elytra, this prevents the exploit when set to false
# Mojang screwed up netcode by making elytra start client sided and elytra end server sided
# Elytras take 0.99 horizontal friction, so constantly adding 0.2 horizontal speeds results in very high speeds.
allow-sprint-jumping-when-using-elytra: true
# This option mitigates the player's placement on ghostblocks by resynchronizing the player when it happens
allow-building-on-ghostblocks: true
# This setting, influenced by the boolean above defines the distance to check for ghost blocks
# Its valid range is limited from 2 to 4
distance-to-check-if-ghostblocks: 2
# Enable logging plugins who have injected into netty on join to debug compatibility issues
debug-pipeline-on-join: false
# Enables experimental checks
experimental-checks: false
reset-item-usage-on-item-update: true
reset-item-usage-on-attack: true
reset-item-usage-on-slot-change: true
# Grim sometimes cancels illegal packets such as with timer, after X packets in a second cancelled, when should
# we simply kick the player? This is required as some packet limiters don't count packets cancelled by grim.
packet-spam-threshold: 100
# Enable this to print a stacktrace when a player is kicked due to packet-spam-threshold
debug-packet-cancel: false
# Grim is able to enforce that a player set out of flying state cannot have more than X milliseconds of ping
# This is due to Grim not currently checking flying players
# To disable, use -1
max-ping-out-of-flying: 1000
# Maximum ping when a firework boost is removed from the player.
# This prevents high latency players from being able to use 1 firework boost with an elytra forever.
max-ping-firework-boost: 1000
history:
enabled: true
# How many entries should be shown for each page with /grim history <player>
entries-per-page: 15
# What should the inserted server name be for the history command? This is useful if you use the same database for multiple servers
server-name: survival
database:
# Use SQLITE for local storage, use MYSQL if you have an external MySQL database. This is only updated on server restart
type: SQLITE
# MySQL connection details
host: _GRIM_DB_HOST_
port: _GRIM_DB_PORT_
database: _GRIM_DB_NAME_
username: _GRIM_DB_USERNAME_
password: '_GRIM_DB_PASSWORD_'
config-version: 9

View File

@ -0,0 +1,12 @@
enabled: false
webhook: ""
embed-title: "**Grim Alert**"
embed-color: "#00FFFF"
violation-content:
- "**Player**: %player%"
- "**Check**: %check%"
- "**Violations**: %violations%"
- "**Client Version**: %version%"
- "**Brand**: %brand%"
- "**Ping**: %ping%"
- "**TPS**: %tps%"

View File

@ -0,0 +1,71 @@
# \u00BB is » (double >>), ANSI and UTF-8 interpret this differently... you may even see ? due to this
prefix: "&bGrim &8\u00BB"
alerts-enabled: "%prefix% &fAlerts enabled"
alerts-disabled: "%prefix% &fAlerts disabled"
verbose-enabled: "%prefix% &fVerbose enabled"
verbose-disabled: "%prefix% &fVerbose disabled"
brands-enabled: "%prefix% &fBrands enabled"
brands-disabled: "%prefix% &fBrands disabled"
client-brand-format: "%prefix% &f%player% joined using %brand%"
console-specify-target: "%prefix% &cYou must specify a target as the console!"
reloading: "%prefix% &7Reloading config..."
reloaded: "%prefix% &fConfig has been reloaded."
reload-failed: "%prefix% &cFailed to reload config."
player-not-found: "%prefix% &cPlayer is exempt or offline!"
player-not-this-server: "%prefix% &cPlayer is not on this server!"
spectate-return: "<click:run_command:/grim stopspectating><hover:show_text:\"/grim stopspectating\">\n%prefix% &fClick here to return to previous location\n</hover></click>"
cannot-spectate-return: "%prefix% &cYou can only do this after spectating a player"
cannot-run-on-self: "%prefix% &cYou cannot use this command on yourself!"
upload-log: "%prefix% &fUploaded debug to: %url%"
upload-log-start: "%prefix% &fUploading log... please wait"
upload-log-not-found: "%prefix% &cUnable to find that log"
upload-log-upload-failure: "%prefix% &cSomething went wrong while uploading this log, see console for more info"
disconnect:
timeout: "<lang:disconnect.timeout>"
closed: "<lang:disconnect.closed>"
run-as-player: "%prefix% &cThis command can only be used by players!"
run-as-player-or-console: "%prefix% &cThis command can only be used by players or the console!"
# Valid placeholders:
# %prefix%
# %player%
# %check_name%
# %description%
# %experimental%
# %vl% - violations
# %verbose% - extra information from the check such as offsets, not all checks will add information
alerts-format: "%prefix% &f%player% &bfailed &f%check_name%%experimental% &f(x&c%vl%&f) &7%verbose%"
alerts-format-proxy: "%prefix% &f[&cproxy&f] &f%player% &bfailed &f%check_name%%experimental% &f(x&c%vl%&f) &7%verbose%"
experimental-symbol: "*"
profile:
- "&7======================"
- "%prefix% &bProfile for &f%player%"
- "&bPing: &f%ping%"
- "&bVersion: &f%version%"
- "&bClient Brand: &f%brand%"
- "&bHorizontal Sensitivity: &f%h_sensitivity%%"
- "&bVertical Sensitivity: &f%v_sensitivity%%"
- "&bFastMath Enabled: &f%fast_math%"
- "&7======================"
help:
- "&7======================"
- "/grim alerts &f- &7Toggle alerts"
- "/grim brands &f- &7Toggle brands"
- "/grim profile <player> &f- &7View player info"
- "/grim help &f- &7View this help message"
- "/grim debug <player> &f- &7Developer Prediction output"
- "/grim perf &f- &7Developer ms/prediction"
- "/grim reload &f- &7Reloads the config"
- "/grim spectate <player> &f- &7Spectate a player"
- "/grim verbose &f- &7Shows every flag to you, without buffers"
- "/grim log [0-255] &f- &7Uploads a debug log for prediction flags"
- "/grim history <player> [page] &f- &7Shows previous alerts for the player"
- "&7======================"
grim-history-disabled: "%prefix% &cHistory subsystem is disabled!"
# Valid placeholders: %prefix% %player% %page% %maxPages%
grim-history-header: "%prefix% &bShowing logs for &f%player% (&f%page%&b/&f%maxPages%&f)"
# Valid placeholders: %prefix% %check% %vl% %verbose% %timeago% %server%
grim-history-entry: "%prefix% &8[&f%server%&8] &bFailed &f%check% (x&c%vl%&f) &7%verbose% (&b%timeago% ago&7)"

View File

@ -0,0 +1,143 @@
# # %check_name% - name of the check
# # %description% - description of the check
# # %vl% - violations
# # %verbose% - extra information
# # %player% - player name
# # [alert] - special command to alert
# # [webhook] - special command to alert to discord webhook
# # [proxy] - special command to alert to other servers connected to your proxy (BungeeCord/Velocity)
# Punishments:
# Simulation:
# # After how many seconds should a violation be removed?
# remove-violations-after: 300
# # This section will match all checks with the name,
# # To exclude a check that would otherwise be matched, put an exclamation mark in front of the name
# # For example, !BadPacketsN
# checks:
# - "Simulation"
# - "GroundSpoof"
# - "Timer"
# - "NoFall"
# # Threshold:Interval Command
# #
# # Example, to kick the player with the message "incorrect movement!" after 100 violations, with no interval
# # commands:
# # - "100:0 kick %player% incorrect movement!"
# # 0 means execute exactly once
# # - "100:50 say %player% is cheating"
# # Execute when the user hits flag 100, and after that, every 50th flag after 100
# #
# commands:
# - "100:40 [alert]"
# - "100:40 [log]"
# - "100:100 [webhook]"
# - "100:100 [proxy]"
# Knockback:
# remove-violations-after: 300
# checks:
# - "Knockback"
# - "Explosion"
# commands:
# - "5:5 [alert]"
# - "5:5 [log]"
# - "20:20 [webhook]"
# - "20:20 [proxy]"
# Post:
# remove-violations-after: 300
# checks:
# - "Post"
# commands:
# - "20:20 [alert]"
# - "20:20 [log]"
# - "40:40 [webhook]"
# - "40:40 [proxy]"
# BadPackets:
# remove-violations-after: 300
# checks:
# - "BadPackets"
# - "PacketOrder"
# - "Crash"
# commands:
# - "20:20 [alert]"
# - "20:20 [log]"
# - "40:40 [webhook]"
# - "40:40 [proxy]"
# Inventory:
# remove-violations-after: 300
# checks:
# - "Inventory"
# commands:
# - "10:10 [alert]"
# - "10:10 [log]"
# - "20:20 [webhook]"
# - "20:20 [proxy]"
# Reach:
# remove-violations-after: 300
# checks:
# - "Reach"
# commands:
# - "1:1 [alert]"
# - "1:1 [log]"
# - "1:1 [webhook]"
# - "1:1 [proxy]"
# Hitboxes:
# remove-violations-after: 300
# checks:
# - "Hitboxes"
# commands:
# - "5:3 [alert]"
# - "5:3 [log]"
# - "5:3 [webhook]"
# - "5:3 [proxy]"
# WallHit:
# remove-violations-after: 300
# checks:
# - "WallHit"
# commands:
# - "10:5 [alert]"
# - "10:5 [webhook]"
# - "10:5 [proxy]"
# - "10:5 [log]"
# EntityPierce:
# remove-violations-after: 300
# checks:
# - "EntityPierce"
# commands:
# - "15:10 [alert]"
# - "15:10 [webhook]"
# - "15:10 [proxy]"
# - "15:10 [log]"
# Misc:
# remove-violations-after: 300
# checks:
# - "Vehicle"
# - "NoSlow"
# - "Sprint"
# - "MultiActions"
# - "Place"
# - "Baritone"
# - "Break"
# - "TransactionOrder"
# - "Elytra"
# commands:
# - "10:5 [alert]"
# - "10:5 [log]"
# - "20:10 [webhook]"
# - "20:10 [proxy]"
# Combat:
# remove-violations-after: 300
# checks:
# - "Interact"
# - "Killaura"
# - "Aim"
# commands:
# - "20:40 [alert]"
# - "20:40 [log]"
# # As of 2.2.10, there are no AutoClicker checks and this is a placeholder. Grim will include AutoClicker checks in the future.
# Autoclicker:
# remove-violations-after: 300
# checks:
# - "Autoclicker"
# commands:
# - "20:40 [alert]"
# - "20:40 [log]"

BIN
src/plugins/ImageFrame-1.8.4.0.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,191 @@
Messages:
Reloaded: '&eImageFrame has been reloaded!'
ImageMapProcessing: '&eImageMap is being processed, please wait!'
# Leave this empty ("") to disable action bar message
ImageMapProcessingActionBar: '&eImageMap &a{Name} &eis being processed{Dots}'
# Leave this empty ("") to disable action bar message
ImageMapQueuedActionBar: '&7ImageMap &a{Name} &eis currently queued ({Position} Remaining)'
ImageMapCreated: '&aImageMap has been created!'
ImageMapRefreshed: '&aImageMap has been refreshed!'
ImageMapDeleted: '&eImageMap had been deleted!'
ImageMapRenamed: '&aImageMap had been renamed!'
ImageMapTogglePaused: '&aToggled ImageMap playback pause!'
ImageMapPlaybackJumpTo: '&aJumped to position at {Seconds} seconds!'
ImageMapPlayerPurge: '&ePurged {Amount} ImageMaps owned by {CreatorName} ({CreatorUUID}) - [{ImageMapNames}]'
SetCreator: '&aImageMap creator of id {ImageID} set to {CreatorName} ({CreatorUUID})'
InvalidOverlayMap: '&cOverlay only works on Vanilla Minecraft maps and without duplicates in selection!'
ImageMapAlreadyQueued: '&cYou already have another ImageMap queued and processing, please wait!'
UnableToLoadMap: '&cImageMap cannot be loaded, there is a problem while reading the image. Contact server administrators to check the server console for more info.'
UnableToChangeImageType: '&cChanging the image type is currently not supported. Please create a new image map instead.'
UnknownError: '&cAn unknown error had occurred.'
ImageOverMaxFileSize: '&cImageMap cannot be loaded as it is over the max file size allowed. ({Size} bytes)'
NotAnImageMap: '&cThat is not an ImageMap'
UploadLink: '&aOpen {URL} on your browser to upload an image, it is valid for 5 minutes.'
UploadExpired: '&cImage upload link had expired, please create a new one.'
URLImageMapInfo:
- '&bImageID: {ImageID}'
- '&aName: {Name}'
- '&eMap Size: {Width} x {Height}'
- '&6Dithering: {DitheringType}'
- '&dCreator: {CreatorName} ({CreatorUUID})'
- '&fAccess: {Access}'
- '&aTime Created: {TimeCreated}'
- '&bMarkers: {Markers}'
- '&eURL: {URL}'
NoPermission: '&cYou do not have permission to do that!'
NoConsole: '&cThis command can only be ran by players!'
PlayerNotFound: '&cThis player cannot be found!'
InvalidUsage: '&cInvalid Usage!'
NotEnoughMaps: '&cYou do not have {Amount} maps!'
Oversize: '&cThat is too big! Max size for a map is {MaxSize}'
URLRestricted: '&cThat URL is restricted and cannot be used to create image maps.'
PlayerCreationLimitReached: '&cYou can only create {Limit} maps at once! Delete some to create new ones'
DuplicateMapName: '&cYou''ve already created an image map with that name!'
MapLookup: '&bList of image maps by {CreatorName} ({CreatorUUID}):'
ItemFrameOccupied: '&cFailed to place or remove some maps on selected ItemFrame, they are either destroyed, replaced, occupied or protected.'
NotEnoughSpace: '&cUnable to place Combined ImageMap as there is not enough room.'
InvalidImageMap: '&cThis image map had likely already been deleted.'
GivenInvisibleFrame: '&aGiven {Amount} invisible item frames to {Player}.'
AccessPermission:
Updated: '&aUpdated access for {PlayerName} ({PlayerUUID}), they now have {Permission} permission.'
Types:
NONE: NONE
GET: GET
MARKER: MARKER
EDIT: EDIT
EDIT_CLONE: EDIT WITH CLONE
ALL: ALL
Selection:
Begin: '&bRight click an Item Frame to select corner 1 and 2'
Clear: '&eLeaving selection mode'
Corner1: '&aSelected Item Frame corner 1'
Corner2: '&aSelected Item Frame corner 2'
Invalid: '&cInvalid selection!'
Oversize: '&cOversize selection! Max size for a map is {MaxSize}'
Success: '&aSelected {Width} x {Height} Item Frames! &eIf any of them are removed/replaced, you will need to select them again.'
NoSelection: '&cYou don''t have a valid selection yet.'
IncorrectSize: '&cYour selection''s size does not match, {Width} x {Height} required.'
Markers:
AddBegin: '&aRight click on an Item Frame containing the map "{Name}" to place marker! &bRun "/imageframe marker cancel" to cancel placement'
AddConfirm: '&aMarker placed!'
Remove: '&eMarker removed!'
Clear: '&eMarkers cleared!'
Cancel: '&eMarker placement cancelled!'
DuplicateName: '&cThere is already a marker with that name!'
NotAMarker: '&cThat is not a valid marker'
NotRenderOnFrameWarning: '&eWarning: This marker type does not render on Item Frames!'
LimitReached: '&cYou can only create {Limit} markers on one map!'
# Date format used where a time based variable is displayed
DateFormat: dd/MM/yyyy HH:mm:ss zzz
Preferences:
Keys:
VIEW_ANIMATED_MAPS: View Animated Maps
Values:
'TRUE': '&aEnabled'
'FALSE': '&cDisabled'
UNSET: '&7Unset'
UpdateMessage: '&ePlayer Preference {Preference}&e has been updated to {Value}&e!'
Settings:
MapItemFormat: '&f{Name} &7({X}, {Y})'
# Whether empty maps are required to create image maps when not in creative
RequireEmptyMaps: true
# Max size of an image map
MaxSize: 30
# When enabled, Only websites from the list below is allowed to be shown through in-game maps
RestrictImageUrl:
Enabled: false
Whitelist:
- https://i.imgur.com
- http://i.imgur.com
- https://storage.googleapis.com
- http://storage.googleapis.com
- https://cdn.discordapp.com
- http://cdn.discordapp.com
- https://media.discordapp.net
- http://media.discordapp.net
- https://textures.minecraft.net
- http://textures.minecraft.net
# If the image is larger than the defined size, it won't be downloaded for preview
# (In Bytes)
MaxImageFileSize: 30000000
# If an image takes more than this time to load, it will be rejected
# (In Seconds)
MaxProcessingTime: 60
# How many images should be processed in parallel
# Updating this option requires a server restart
ParallelProcessingLimit: 1
# Max amount of image maps a player in the following groups can create
# Setting -1 means unlimited
# To add a player to a group, give the permission "imageframe.createlimit.<group>"
# For example "imageframe.createlimit.vip"
# Players with no groups will be treated as "default" unless they have "imageframe.createlimit.unlimited"
PlayerCreationLimit:
default: 3
role_elder: 10
vip: 15
moderator: 20
# Max amount of markers on an individual map
MapMarkerLimit: 20
CombinedMapItem:
Name: '&bImageMap &f- &f{Name} &7({Width} x {Height})'
Lore:
- '&aRight Click on Item Frames of size {Width} x {Height} to place ImageMap'
- ''
- '&7ImageID: {ImageID}'
- '&7Creator: {CreatorName} ({CreatorUUID})'
- '&7Time Created: {TimeCreated}'
# How many map packets can be sent to a player in 1/20 of a second
# You can turn this down if you are facing network issues
# However maps might take longer to show to a player
# To disable the rate limit, set to -1
MapPacketSendingRateLimit: -1
# Exempt certain map ids from deletion if their ImageFrame map is deleted
# Values can be map ids (For example: "13") or ranges (inclusive) of map ids (For example: "10-13")
ExemptMapIdsFromDeletion:
- '-1'
# This option should only be useful to developers and people who knew what they are doing
MapRenderersContextual: false
# Changing this option requires a restart
HandleAnimatedMapsOnMainThread: false
SendAnimatedMapsOnMainThread: false
# Valid modes are "DYNAMIC" and "MANUAL_PERSISTENT"
# DYNAMIC: load and unload image cache depending on whether a player is viewing
# May use more CPU and image might appear with a slight delay
# MANUAL_PERSISTENT: image cache stay loaded from server start
# May use more memory
# Changing this setting requires a restart
CacheControlMode: DYNAMIC
# Set this to true if you have corrupted 0 size map data in the world folder (not the ImageFrame plugin folder)
# Set this to false if your system's file IO is slow
TryDeleteBlankMapFiles: false
# ImageFrame's convenient upload system where you can upload directly through an embedded web server
UploadService:
# Changing this value requires a restart
Enabled: false
# This is only used for displaying to the end user
DisplayURL: http://change.this.to.your.server.ip.in.the.config
WebServer:
# Address in which the webserver binds to, defaults to 0.0.0.0
# Use 127.0.0.1 to limit to local access
# Changing this value requires a restart
Host: 0.0.0.0
# Port in which the webserver is hosted, make sure it is not blocked by your firewall
# Changing this value requires a restart
Port: 8517
# ImageFrame's built in survival friendly way of making invisible item frames
InvisibleFrame:
# Survival friendly way to get invisible item frames by splashing dropped items with invisibility potions
# Set to -1 for unlimited
# Set to 0 to disable
MaxConversionsPerSplash: 8
# Should empty invisible item frames glow
# Existing frames are not updated until they are interacted with
GlowEmptyFrames: true
Hooks:
ViaVersion:
# Enable this if your players below 1.13 is having network issues
DisableSmoothAnimationForLegacyPlayers: false
# Enable update notifications for admins
Updater: true

View File

@ -0,0 +1,283 @@
#
#
# The main LibertyBans configuration
# All options here can be updated with /libertybans reload
#
#
durationPermissions:
# Which duration permissions should a staff member be checked for?
# Specify all the durations which you want to explicitly grant permission for.
permissions-to-check:
- 'perm'
- '7d'
- '14d'
- '28d'
- '90d'
- '180d'
# If disabled, players are not checked for duration permissions.
enable: true
# Formatting of absolute dates
date-formatting:
# How should dates be formatted? Follows Java's DateTimeFormatter.ofPattern
format: 'dd/MM/yyyy kk:mm'
# Do you want to override the timezone? If 'default', the system default timezone is used
# The value must be in continent/city format, such as 'America/New_York'. Uses Java's ZoneId.of
timezone: 'Europe/Kyiv'
# What language file should be used for messages?
# For example, 'en' means LibertyBans will look for a file called 'messages_en.yml'
lang-file: 'ru'
# Options related to punishment enforcement and alt account checking
#
# -- Alt Account Enforcement and Checking --
# There are multiple ways to combat alt accounts in LibertyBans.
#
# First, you can have the plugin automatically detect alt accounts and prevent them from joining,
# with the same ban message. This is controlled by the 'address-strictness' setting.
#
# Second, you can tell your staff members to be on the lookout for alts. They can use
# the /alts command to manually check players they suspect are alt accounts. Also, you can
# use the alts-auto-show feature which will automatically notify staff of players who may be using alts.
#
# Third, you may use 'composite punishments', a more advanced feature which is described on the wiki.
enforcement:
# Controls the expiration of join history as used by manual alt detection.
# This allows expiring alt accounts after some time has elapsed.
#
# This setting does NOT affect enforcement of IP-based punishments.
# It applies only to the /alts command and the alts-auto-show feature.
#
# Note that this feature will not actually delete any data from the database.
alt-account-expiration:
# The expiration time, in days.
expiration-time-days: 30
# Whether to enable this feature
enable: false
#
# How strict should IP-based punishments be?
# Available options are LENIENT, NORMAL, STERN, and STRICT
#
# An IP-based punishment applies to a player if:
# LENIENT - The player's current address matches the punished address
# NORMAL - Any of the player's past addresses matches the punished address
# STERN - Any of the player's past addresses matches any of the past addresses of the punished user
#
# STRICT is the same as STERN, but also enforces user punishments as stringently as IP-based punishments.
# (Using STRICT turns all user punishments into IP-based punishments)
address-strictness: 'NORMAL'
# Limits players connecting from the same IP address.
#
# The limiter works by counting the amount of joins from a given IP address within a recent timespan.
# Thus, it is not an absolute limit, but a limit on the rate of joins.
connection-limiter:
# What is the duration within which recent joins are counted against the limit?
# The default is 30 minutes and the value is specified in seconds.
duration-seconds: 1800
# The limit to apply
limit: 5
# The message when a player is denied from joining due to the limit
denial-message: 'There have been too many connections from your IP address recently'
# Whether to enable this feature
enable: false
# Runs an alt-check on newly joined players, as if by /alts,
# the results of which will be shown to staff members with the libertybans.alts.autoshow permission.
alts-auto-show:
# Allows determining which alts will be shown by this alt-check
# (This does not affect the alts command, which will always show all alts)
# ALL_ALTS - shows all alts
# BANNED_OR_MUTED_ALTS - shows alts either banned or muted
# BANNED_ALTS - shows only banned alts
show-which-alts: 'ALL_ALTS'
# Set to true to enable this feature
enable: false
#
# A list of commands muted players will not be able to execute
#
# This list supports subcommands, which will be enforced if the executed command starts with the list entry.
# Additionally, colons in commands, such as"pluginname:cmd", cannot be used to bypass this.
mute-commands:
- 'msg'
- 'r'
- 't'
- 'w'
- 'tell'
- 'me'
- 'whisper'
- 'say'
- 'clan chat'
- 'reply'
# Options relating to finding UUIDs from names, and vice-versa
# LibertyBans will first check its own caches before using these resources
player-uuid-resolution:
#
# As a last resort, when LibertyBans cannot find a uuid or name, it will use an external web API
# Available options are 'MOJANG', 'ASHCON', and 'MCHEADS'. They will be queried sequentially in the order specified.
# (If the server is not in ONLINE mode, this option is ignored)
web-api-resolvers:
- 'MOJANG'
# By default, LibertyBans will automatically detect if you are running Geyser or Floodgate.
# The prefix will be determined using the Geyser API
#
# However, in rare cases, you may want to force LibertyBans to acknowledge the presence of Geyser usernames
# If so, set this option to the value of the prefix you use for Geyser/Floodgate.
# An empty string will revert this option to automatic detection, which requires a server restart to take effect.
force-geyser-prefix: ''
#
# What kind of UUIDs do your players have?
# Available options are ONLINE, OFFLINE, and MIXED
#
# For most servers this will be 'ONLINE'
# For offline servers where all players have offline UUIDs, use OFFLINE
# For offline servers where some players have online and some have offline UUIDs, use MIXED
server-type: 'OFFLINE'
platforms:
# Related to game servers such as Spigot, Paper, and Sponge
game-servers:
# This option is relevant for backend servers running within a network (BungeeCord or Velocity).
# It enables the use of plugin messaging, such as for:
# - Kicking the player from the entire network
# - Detecting the name of the backend server for use with server scopes
# - Synchronizing punishments across instances, depending on the mode in the sql.yml
#
# DO NOT enable this option if you do not run a network. Otherwise, you create a security vulnerability
# whereby players can pretend to be coming from a proxy, evading kicks and sending sync messages.
# After changing this option, please perform a restart (/libertybans restart).
use-plugin-messaging: false
# Related to the Sponge platform
sponge:
# Whether to register the ban service for use by other plugins.
# If enabled, LibertyBans will replace the server's default banning implementation with its own.
#
# This option is somewhat technical. For advice on whether you should configure this option,
# please ask for support.
# It is highly recommended to ask for guidance if you are unsure about this option.
#
# How this affects compatibility:
# - If disabled, the vanilla ban service will remain. Other plugins which query for bans will be
# served with information from vanilla. For example, if a player is banned through LibertyBans
# but not vanilla, then other plugins will think the player is not banned.
# - If enabled, uses of the ban service will forward to LibertyBans. Other plugins which query for bans
# will be served with accurate information from LibertyBans.
# - However, the LibertyBans ban service has limitations. It cannot issue bans, for example.
# So, if another plugin attempts to create bans using the ban service, you will receive an error.
# If you absolutely need other plugins to issue bans, you must disable this option.
#
# Note that it is impossible to import vanilla bans if you enable this option. So, if you wish to import
# from vanilla, first you need to disable this option. After importing, you may re-enable it.
register-ban-service: true
# Related to proxies such as BungeeCord and Velocity
proxies:
# Set this to true to indicate that you are running multiple proxy instances.
#
# It will instruct LibertyBans to perform additional synchronization measures, where applicable.
multiple-proxy-instances: false
# Server-scoped punishments will be enforced by preventing server switches for players connecting
# to servers on which they are banned. The server name is obtained from the proxy API
#
# This option is enabled by default for full functionality. However, it increases performance usage,
# so you may want to disable it if you do not use the scopes feature.
enforce-server-switch: true
commands:
# If this is enabled, it will be as if relevant commands used the -both argument.
# Effectively, this makes punishments more strict, since moderators will end up banning UUIDs and addresses
use-composite-victims-by-default: false
# By default, /blame shows only active punishments made by a staff member.
# If you disable this option, /blame will show all punishments, including those revoked and expired.
#
# If you use the staffrollback addon, you probably want to disable this to make /blame consistent
# with the staffrollback operation.
blame-shows-active-only: true
# By default, /history and /warns show punishments specifically for the player requested.
# Enabling this option will make /history and /warn scan punishments which would apply to the player
#
# For example, an IP ban may apply to a player, but it will not be in the player's /history unless this is enabled
show-applicable-for-history: false
# Other options relating to tab completion
# These settings require a restart (/libertybans restart) to take effect
tab-completion:
# Regards tab completing the names of players who have formerly joined
# This can be a bit heavy on memory for large servers, so it's disabled by default.
# To tune how long player names are retained for, see the retention-minutes option
offline-player-names:
# What is the period in which recently joining players' names should be completed
# If a player has joined in the last specified amount of minutes, his or her name is tab-completed
retention-minutes: 4320
# This feature is implemented using a cache. How often should the cache be refreshed?
# Shorter times mean more accurate tab completion but use slightly more performance
cache-refresh-seconds: 120
# Whether to enable this feature
enable: false
# This option is only relevant when LibertyBans is on a proxy
# If enabled, tab completion of online player names will exclude the names of players
# on different backend servers.
use-only-players-on-same-server: true
# Enables tab-completing punishment durations. For example, '30d' in '/ban A248 30d'
#
punishment-durations:
# Which duration permissions should be tab-completed?
# Specify all the durations which you want to tab complete.
#
# If duration permissions are enabled, only players who have permission to use a certain duration
# will have that duration tab-completed.
durations-to-supply:
- 'perm'
- '4h'
- '30d'
- '10d'
# Whether to enable this feature
enable: false
# Whether to enable tab completion
enable-tab-completion: true
# What commands should be registered as aliases for libertybans commands?
# For each command listed here, '/<command>' will be equal to '/libertybans <command>'
#
# This basic system is for convenience; please use a dedicated alias plugin if you need more control.
# Also, please note that command aliases are disabled on Sponge, due to command API differences.
aliases:
- 'ban'
- 'ipban'
- 'mute'
- 'ipmute'
- 'warn'
- 'ipwarn'
- 'kick'
- 'ipkick'
- 'unban'
- 'unbanip'
- 'unmute'
- 'unmuteip'
- 'unwarn'
- 'unwarnip'
- 'banlist'
- 'mutelist'
- 'history'
- 'warns'
- 'blame'
- 'alts'
- 'accounthistory'
# Handles how staff are permitted to specify reasons
reasons:
# Deprecated option kept for compatibility purposes. Ignore this.
permit-blank: false
# When entering commands, what happens if the staff member does not specify a reason?
# USE_EMPTY_REASON - Keep the reason blank, as specified.
# REQUIRE_REASON - Deny the command; send the usage message.
# SUBSTITUTE_DEFAULT - Substitute the default reason.
unspecified-reason-behavior: 'SUBSTITUTE_DEFAULT'
# If unspecified-reason-behavior is SUBSTITUTE_DEFAULT, what is the default reason to use when staff do not specify a reason?
default-reason: 'No reason stated.'

View File

@ -0,0 +1,187 @@
# Settings for importing from other plugins
# Most users should not have to touch this.
#
# In order to perform an import, run /libertybans import <source>.
# Available sources are 'advancedban', 'litebans', 'vanilla', and 'self'.
#
# Importing from vanilla is only possible on Bukkit.
# Essentials users: Note that Essentials uses the vanilla ban system.
#
# During the import, it is not needed to enable the plugin you are importing from.
#
# --- NOTICE ---
# You MUST backup your data before performing the import.
# LibertyBans will never delete your data, but taking a backup is the best practice
# whenever you are performing any large transfer of data.
#
# --- WARNING when importing from AdvancedBan and Vanilla ---
# AdvancedBan/Vanilla does not store the uuid of the operator who made a punishment.
# To work around this, LibertyBans will attempt to lookup the operator uuid. By default
# this uses the Mojang API. However, if your server sends the Mojang API too many requests,
# your server might be rate limited (which you do NOT want to happen).
# To prevent this, add another service to your web-api-resolvers, in the config.yml
# before importing.
#
#
#
#
# -- Importing from AdvancedBan --
#
# The defaults here match the default settings in AdvancedBan.
# If you use AdvancedBan's default storage, you do not need to change anything here.
#
# --- Using AdvancedBan's MySQL/MariaDB Storage ---
# However, if you use MySQL with AdvancedBan, you will need to change a few things.
# The jdbc-url should be set to 'jdbc:mariadb://<host>:<port>/<database>' with <host>,
# <port>, and <database> replaced with the correct values. The username and password
# ought to be the same username and password you used with AdvancedBan.
#
# For example: You used AdvancedBan with MySQL. Your host is localhost, your port
# is 3306, and your database name is 'bans'. You use the username 'advancedban' and
# password 'password'. You should set the jdbc-url option to
# 'jdbc:mysql://localhost:3306/bans', the username to 'advancedban', and the password to 'password'
advancedban:
jdbc-url: 'jdbc:hsqldb:file:plugins/AdvancedBan/data/storage;hsqldb.lock_file=false'
password: ''
username: 'SA'
#
#
#
# -- Importing from LiteBans --
#
# This is no easy task. The main problem is that LiteBans is a closed-source black box,
# such that no one except its author knows how the plugin works internally.
#
# However, it is still possible to import from LiteBans to LibertyBans, and this is achieved
# primarily from inspecting the generated SQL schema.
#
# --- Config Options Explained ---
# The jdbc-url depends on the storage mode you are using LiteBans with.
# - Using H2, it should be 'jdbc:h2:./plugins/LiteBans/litebans'
# - Using MySQL or MariaDB, it should be 'jdbc:mariadb://<host>:<port>/<database>' with <host>,
# <port>, and <database> replaced with the correct values.
# - Using PostgreSQL, it should be 'jdbc:postgresql://<host>:<port>/<database>' with <host>,
# <port>, and <database> replaced with the correct values.
#
# If you configured a username and password for LiteBans, you should enter the same
# username and password in this section.
#
# --- JDBC Driver Availability: If you use H2 ---
# LiteBans uses the H2 database by default. If importing from H2, you will need to install the H2 driver first.
#
# The driver is installed by adding it to the classpath. This is done by downloading the driver jar, and starting
# your server with the -cp option. The wiki has a tutorial on how to do this.
litebans:
# The same table prefix you used with LiteBans
table-prefix: 'litebans_'
# The default value here is set for H2.
jdbc-url: 'jdbc:h2:./plugins/LiteBans/litebans'
password: ''
username: ''
#
#
#
# -- Importing from BanManager (v7) --
#
# Bans, IP bans, mutes, IP mutes, warns, and kicks are supported.
#
# BanManager's IP range bans, name bans, notes, and reports are not supported. LibertyBans has no equivalent features.
#
# --- Config Options Explained ---
# The jdbc-url depends on the storage mode you are using BanManager with.
# - Using H2, it should be 'jdbc:h2:./plugins/BanManager/local-bans'
# - Using MySQL or MariaDB, it should be 'jdbc:mariadb://<host>:<port>/<database>' with <host>,
# <port>, and <database> replaced with the correct values.
#
# If you configured a username and password for BanManager, you should enter the same
# username and password in this section.
ban-manager:
# The same table prefix you used with BanManager
table-prefix: 'bm_'
# The default value here is set for H2.
jdbc-url: 'jdbc:h2:./plugins/BanManager/local-bans'
password: ''
username: ''
# How many punishments to retrieve at once from the import source.
# You may be surprised to find out your server is capable of retrieving hundreds,
# even thousands of punishments, into memory without much trouble. However,
# this is set to 250 as a reasonable conservative estimate.
retrieval-size: 250
#
#
#
# -- Importing from another LibertyBans database --
#
# NOTICE: The current database MUST be empty when the import is performed.
#
# The self-import process is different from the import process for other plugins.
# It is a direct transfer, which is why the current database must be empty. Also, punishment IDs are preserved.
#
# Self-importing may be used to switch between various database backends supported by LibertyBans.
# For example, you could transfer your data from HSQLDB to MariaDB.
#
# The settings here are used exactly as in sql.yml - in fact, they are the same settings.
self:
# Whether to reverse the direction of the self-import. If enabled, this will import TO the database
# configured here, rather than FROM it.
#
# Normally, LibertyBans will import from this database, to the current database defined in sql.yml.
# If this option is enabled, LibertyBans will import to the current database in sql.yml, from this database.
reverse-direction: false
#
# Connection timeout settings
# LibertyBans uses HikariCP for connection pooling. The following settings control connection timeouts.
timeouts:
# How long, at maximum, should LibertyBans wait when acquiring new connections, if no existing connection is available?
connection-timeout-seconds: 14
# How long, at maxium, should a connection in the pool last before having to be recreated?
# "This value should be set for MariaDB or MySQL. HikariCP notes:
# "It should be several seconds shorter than any database or infrastructure imposed connection time limit"
max-lifetime-minutes: 25
# Authentication details for remote databases: used for MariaDB, MySQL, PostgreSQL, and CockroachDB.
auth-details:
database: 'bans'
password: 'defaultpass'
user: 'defaultuser'
host: 'localhost'
port: 3306
# The values in this section only apply when using a MariaDB or MySQL database
mariadb:
# Connection properties to be applied to database connections
connection-properties:
cachePrepStmts: 'true'
useUnicode: 'true'
prepStmtCacheSqlLimit: '1024'
characterEncoding: 'UTF-8'
prepStmtCacheSize: '25'
useServerPrepStmts: 'true'
# The values in this section only apply when using a PostgreSQL or CockroachDB database
postgres:
# Connection properties to be applied to database connections
connection-properties:
preparedStatementCacheQueries: '25'
# Legacy option. Don't touch this unless you understand it or you're told to enable it.
use-traditional-jdbc-url: false
# What RDMS vendor will you be using?
# Available options:
# 'HSQLDB' - Local HyperSQL database. No additional requirements.
# 'MARIADB' - Requires an external MariaDB database. At least MariaDB 10.6 is required.
# 'MYSQL' - Requires an external MySQL database. At least MySQL 8.0 is required.
# 'POSTGRES' - Requires an external PostgreSQL database. At least PostgreSQL 12 is required.
# 'COCKROACH' - Requires an external CockroachDB database. The latest CockroachDB is required. Warning: this option is strictly experimental.
rdms-vendor: 'HSQLDB'
#
# How large should the connection pool be?
# A thread pool of similar size is derived from the connection pool size.
# For most servers, the default option is suitable.
connection-pool-size: 6

View File

@ -0,0 +1,497 @@
#
# Messages configuration
#
#
# In most cases, the variables inside the default messages are those available
# in that specific message. The exception to this is messages which are related
# to a certain punishment.
#
# When message has an associated punishment, multiple variables are available:
#
# %ID% - punishment ID number
# %TYPE% - punishment type, e.g. 'Ban'
# %TYPE_VERB% - punishment type as a verb, e.g. 'Banned'
# %VICTIM% - display name of the victim of the punishment
# %VICTIM_ID% - internal identifier of victim
# %OPERATOR% - display name of the staff member who made the punishment
# %OPERATOR_ID% - internal identifier of the operator
# %UNOPERATOR% - staff member undoing the punishment. available only when the punishment is undone
# %UNOPERATOR_ID% - internal identifier of staff member undoing the punishment
# %REASON% - reason for the punishment
# %SCOPE% - scope of the punishment
# %DURATION% - original duration (how long the punishment was made for)
# %START_DATE% - the date the punishment was created
# %TIME_PASSED% - the time since the punishment was created
# %TIME_PASSED_SIMPLE% - the time since the punishment was created, rounded to the biggest time unit possible (e.g. 2 months instead of 1 month 23 days)
# %END_DATE% - the date the punishment will end, or formatting.permanent-display.absolute for permanent punishments
# %TIME_REMAINING% - the time until the punishment ends, or formatting.permanent-display.relative for permanent punishments
# %TIME_REMAINING_SIMPLE% - the time until the punishment ends, rounded to the biggest time unit possible (e.g. 10 days instead of 9 days 13 hours)
# %HAS_EXPIRED% - Shows if a punishments duration has run out. Does not check if the punishment is revoked!
# %TRACK% - the escalation track of the punishment, for example if you are using layouts
# %TRACK_ID% - the ID of the escalation track
# %TRACK_NAMESPACE% - the namespace of a track can be used by other plugins to implement their own layouts
#
# The following variables have limited availability:
# %TARGET% - the original target argument of a command. For example, in '/ipban Player1', %TARGET% is Player1
# %NEXTPAGE% - the number of the next page of a list like history
# %PREVIOUSPAGE% - the number of the previous page of a list like history
#
#
# Configuration for the /accounthistory command
account-history:
# Regards /accounthistory list <user>
listing:
none-found: '&7No recorded accounts found'
usage: '&cUsage: /accounthistory list <user|ip>'
# How a single recorded account should be displayed
# Available variables:
# %TARGET% - the original input to the command
# %USERNAME% - the username the player connected with
# %ADDRESS% - the address the player connected with
# %DATE_RECORDED% - the date the join was recorded
# %DATE_RECORDED_RAW% - the raw timestamp the join was recorded
layout: '%USERNAME% &7(on %ADDRESS%) at %DATE_RECORDED% (%DATE_RECORDED_RAW%)||ttp:&7Click to delete this stored account||cmd:/accounthistory delete %TARGET% %DATE_RECORDED_RAW%'
# The message to display before the account listing. Set to an empty string to disable
header: '&7Known accounts report for &c&o%TARGET%&7 follows.'
permission: '&cYou may not list recorded accounts.'
usage: '&cUsage: /accounthistory <delete|list>'
# Pertains to /accounthistory delete <user> <timestamp>
delete:
no-such-account: '&c%TARGET% has no recorded account for the specified timestamp.'
usage:
- '&cUsage: /accounthistory delete <user> <timestamp>.&f'
- '&7The timestamp is in unix seconds and is usually obtained from /accounthistory list'
permission: '&cYou may not delete recorded accounts.'
success: '&7Successfully deleted the recorded account of &e%TARGET%'
#
# Messages regarding /ban, /mute, /warn, /kick
# Includes punishment layouts
#
#
additions:
mutes:
success:
message: '&aMuted &c&o%VICTIM%&a for &o%DURATION%&r&a because of &e&o%REASON%&a.'
notification: '&c&o%OPERATOR%&7 muted &c&o%VICTIM%&7 for &a&o%DURATION%&7 because of &e&o%REASON%&7.'
exempted: '&c&o%TARGET%&7 cannot be muted.'
conflicting: '&c&o%TARGET%&7 is already muted.'
usage: '&cUsage: /mute &e<player> [time] <reason>&c.'
layout:
- '&7&lMuted&f'
- '&cDuration: &e%TIME_REMAINING%&f'
- ''
- '&c&lReason&f'
- '&7%REASON%'
permission:
duration: '&cYou may not do this for &e%DURATION%&c.'
both: '&cYou may not do this to players and their IP addresses.'
uuid: '&cYou may not do this to players.'
ip-address: '&cYou may not do this to IP addresses.'
kicks:
success:
message: '&aKicked &c&o%VICTIM%&a because of &e&o%REASON%&a.'
notification: '&c&o%OPERATOR%&7 kicked &c&o%VICTIM%&7 because of &e&o%REASON%&7.'
must-be-online: '&c&o%TARGET%&7 must be online.'
exempted: '&c&o%TARGET%&7 cannot be kicked.'
usage: '&cUsage: /kick &e<player> <reason>&c.'
layout:
- '&7&lKicked&f'
- ''
- '&c&lReason&f'
- '&7%REASON%'
permission:
both: '&cYou may not do this to players and their IP addresses.'
uuid: '&cYou may not do this to players.'
ip-address: '&cYou may not do this to IP addresses.'
warns:
success:
message: '&aWarned &c&o%VICTIM%&a for &o%DURATION%&r&a because of &e&o%REASON%&a.'
notification: '&c&o%OPERATOR%&7 warned &c&o%VICTIM%&7 for &a&o%DURATION%&7 because of &e&o%REASON%&7.'
exempted: '&c&o%TARGET%&7 cannot be warned.'
usage: '&cUsage: /warn &e<player> [time] <reason>&c.'
layout:
- '&7&lWarned&f'
- '&cDuration: &e%TIME_REMAINING%&f'
- ''
- '&c&lReason&f'
- '&7%REASON%'
permission:
duration: '&cYou may not do this for &e%DURATION%&c.'
both: '&cYou may not do this to players and their IP addresses.'
uuid: '&cYou may not do this to players.'
ip-address: '&cYou may not do this to IP addresses.'
bans:
success:
message: '&aBanned &c&o%VICTIM%&a for &o%DURATION%&r&a because of &e&o%REASON%&a.'
notification: '&c&o%OPERATOR%&7 banned &c&o%VICTIM%&7 for &a&o%DURATION%&7 because of &e&o%REASON%&7.'
exempted: '&c&o%TARGET%&7 cannot be banned.'
conflicting: '&c&o%TARGET%&7 is already banned.'
usage: '&cUsage: /ban &e<player> [time] <reason>&c.'
layout:
- '&7&lBanned&f'
- '&cDuration: &e%TIME_REMAINING%&f'
- ''
- '&c&lReason&f'
- '&7%REASON%&f'
- ''
- '&3&lAppeal Your Punishment&f'
- '&cWebsite: &7https://bebrashield.net&f'
permission:
duration: '&cYou may not do this for &e%DURATION%&c.'
both: '&cYou may not do this to players and their IP addresses.'
uuid: '&cYou may not do this to players.'
ip-address: '&cYou may not do this to IP addresses.'
# Messages for alt-checks and alt account notifications
#
# Before configuring this section, it is necessary to look at the address-enforcement
# settings in the main config.yml and understand the different kinds of alt detection.
# There is normal and strict detection.
alts:
auto-show:
# The message to display atop the alt check. Set to an empty string to disable
header:
- '&c&o%TARGET%&7 may be an alt account. Report follows.&f'
- '&7Strong possibility - Same address as banned player.&f'
- '&7Mere possibility - Linked to banned player by common past address'
formatting:
# In the alt-check layout, the username of the alt may be formatted depending upon whether it is banned
# For example, the usernames of banned alts may be colored red whereas alts not banned are green
# Variables: %USERNAME%
name-display:
not-punished: '&o%USERNAME%'
muted: '&e&o%USERNAME%'
banned: '&c&o%USERNAME%'
# The description for an alt account detected by strict detection.
strict: '&eMere possibility'
# How a single detected alt should be displayed
# Available variables:
# %DETECTION_KIND% - how the account was detected. Will be replaced by the normal or strict options.
# %ADDRESS% - the address in question which led to the detection
# %RELEVANT_USER% - the username of the other account, formatted according to the name-display option
# %RELEVANT_USERID% - the uuid of the other account
# %DATE_RECORDED% - the date the alt account was recorded
layout: '%RELEVANT_USER% &7(per %ADDRESS%) at %DATE_RECORDED% - %DETECTION_KIND%'
# The description for an alt account detected by normal detection.
normal: '&cStrong possibility'
# Regarding the /alts command
command:
none-found: '&7No alt accounts found'
usage: '&cUsage: /alts &e<player>&c.'
# The message to display atop the alt check. Set to an empty string to disable
header:
- '&7Alt account report for &c&o%TARGET%&7 follows.&f'
- '&7Strong possibility - Same address as banned player.&f'
- '&7Mere possibility - Linked to banned player by common past address'
permission: '&cYou may not check alts.'
# Used for /banlist, /mutelist, /history, /warns, /blame
lists:
ban-list:
perPage: 10
noPages: '&7There are no active bans.'
maxPages: '&7Page &e%PAGE%&7 does not exist.'
permission:
command: '&7You may not view the banlist.'
layout:
header:
- '&7[&eID&7] &e&oSubject&f'
- '&7Operator &8/ &7Reason &8/ &7Time Remaining&f'
body:
- '&7[&e%ID%&7] &e&o%VICTIM%&f'
- '&7%OPERATOR% &8/ &7%REASON% &8/ &7%TIME_REMAINING%&f'
footer: '&7Page &e%PAGE%&7.||ttp:Click for next page||cmd:/libertybans banlist %NEXTPAGE%'
usage: '&cUsage: /banlist &e[page]'
mute-list:
perPage: 10
noPages: '&7There are no active mutes.'
maxPages: '&7Page &e%PAGE%&7 does not exist.'
permission:
command: '&7You may not view the mutelist.'
layout:
header:
- '&7[&eID&7] &e&oSubject&f'
- '&7Operator &8/ &7Reason &8/ &7Time Remaining&f'
body:
- '&7[&e%ID%&7] &e&o%VICTIM%&f'
- '&7%OPERATOR% &8/ &7%REASON% &8/ &7%TIME_REMAINING%&f'
footer: '&7Page &e%PAGE%&7.||ttp:Click for next page||cmd:/libertybans mutelist %NEXTPAGE%'
usage: '&cUsage: /mutelist &e[page]'
warns:
perPage: 10
noPages: '&c&o%TARGET%&7 has no warns.'
maxPages: '&7Page &e%PAGE%&7 does not exist.'
permission:
command: '&7You may not view warns.'
layout:
header: '&7[&eID&7] Operator &8/ &7Reason &8/ &7Time Remaining&f'
body: '&7[&e%ID%&7] %OPERATOR% &8/ &7%REASON% &8/ &7%TIME_REMAINING%&f'
footer: '&7Page &e%PAGE%&7.||ttp:Click for next page||cmd:/libertybans warns %TARGET% %NEXTPAGE%'
usage: '&cUsage: /warns &e<player> [page]'
blame:
perPage: 10
noPages: '&c&o%TARGET%&7 has not punished any players.'
maxPages: '&7Page &e%PAGE%&7 does not exist.'
permission:
command: '&7You may not use blame.'
layout:
header:
- '&7[&eID&7] &e&oSubject &8/ &7Punishment Type&f'
- '&7Reason &8/ &7Date Enacted&f'
body:
- '&7[&e%ID%&7] &e&o%VICTIM% &8 / &7%TYPE%&f'
- '&7%REASON% &8/ &7%START_DATE%&f'
footer: '&7Page &e%PAGE%&7.||ttp:Click for next page||cmd:/libertybans warns %TARGET% %NEXTPAGE%'
usage: '&cUsage: /blame &e<player> [page]'
history:
perPage: 10
noPages: '&c&o%TARGET%&7 has no history.'
maxPages: '&7Page &e%PAGE%&7 does not exist.'
permission:
command: '&7You may not view history.'
layout:
header:
- '&7[&eID&7] &8/ &7Punishment Type&f'
- '&7Operator &8/ &7Reason &8/ &7Date Enacted&f'
body:
- '&7[&e%ID%&7] / %TYPE%&f'
- '&7%OPERATOR% &8/ &7%REASON% &8/ &7%START_DATE%&f'
footer: '&7Page &e%PAGE%&7.||ttp:Click for next page||cmd:/libertybans history %TARGET% %NEXTPAGE%'
usage: '&cUsage: /history &e<player> [page]'
# Specific formatting options
formatting:
# There are 2 ways to make permanent punishments. The first is to not specify a time (/ban <player> <reason>).
# The second is to specify a permanent amount of time (/ban <player> perm <reason>).
# When typing commands, what time arguments will be counted as permanent?
permanent-arguments:
- 'perm'
- 'permanent'
- 'permanently'
# How should 'permanent' be displayed as a length of time?
permanent-display:
# What do you call a permanent duration?
duration: 'Infinite'
# When does a permanent punishment end?
absolute: 'Never'
# How do you describe the time remaining in a permanent punishment?
relative: 'Permanent'
# When there is no more time remaining in a punishment (the punishment has expired),
# this becomes the value of the %TIME_REMAINING% variable
no-time-remaining-display: 'N/A'
# How should the %HAS_EXPIRED% variable be displayed?
punishment-expired-display:
# How do you describe a punishment which is not expired?
not-expired: 'Not expired'
# How do you describe an expired punishment?
expired: 'Expired'
# Controls how the %TRACK%, %TRACK_ID%, and %TRACK_NAMESPACE% variables are displayed
track-display:
# How do you describe the lack of an escalation track?
# The value will be displayed for the %TRACK% variable
no-track: 'No track'
# How do you describe the lack of an escalation track with respect to its ID?
# The value will be displayed for the %TRACK_ID% variable
no-track-id: 'No track ID'
# How do you describe the lack of an escalation track with respect to its namespace?
# The value will be displayed for the %TRACK_NAMESPACE% variable
no-track-namespace: '(none)'
# You may wish to override the track display names. Normally the track ID is displayed,
# which is lowercase and stored in the database. If you want a different name to be displayed
# for the track, write it here.
#
# This option affects the %TRACK% variable but not the %TRACK_ID% variable.
track-display-names:
spam: 'Spamming'
hacking: 'Hacking'
# How should the console be displayed?
console-display: 'Console'
# When using /blame, how should the console be specified?
console-arguments:
- 'console'
# How should punishment types be displayed?
punishment-type-display:
WARN: 'Warn'
KICK: 'Kick'
BAN: 'Ban'
MUTE: 'Mute'
# How should punishment types be displayed as a verb? Used for the %TYPE_VERB% variable.
punishment-type-verb-display:
WARN: 'Warned'
KICK: 'Kicked'
BAN: 'Banned'
MUTE: 'Muted'
# How should the global scope be displayed?
global-scope-display: 'All servers'
# Controls how victims are displayed
victim-display:
# In rare cases, you may have punishments for a user whose name is unknown. This can happen because
# users are punished by UUID, but on some configurations it is not possible to lookup player names.
# When this occurs, the following text is used instead of the player name.
player-name-unknown: '-NameUnknown-'
# Whether to censor IP addresses for players without the libertybans.admin.viewips permission
censor-ip-addresses: false
# The substitute text when an IP address cannot be viewed because the user lacks permission
censored-ip-address: '<censored IP address>'
misc:
unknown-error: '&cAn unknown error occurred.'
# Only applicable if synchronous enforcement strategy is DENY in the main config
sync-chat-denial-message: '&cSynchronous chat denied. &7Please try again.'
# Concerns formatting of relative times and durations
time:
# Times are formatted to seconds accuracy, but you may not want to display seconds
# for most times. However, for very small durations, you need to display a value in seconds.
# If you are using SECONDS in the above section, this value is meaningless.
fallback-seconds: '%VALUE% seconds'
grammar:
# If enabled, places commas after each time fragment, except the last one
comma: true
# What should come before the last fragment? Set to empty text to disable
and: 'and '
fragments:
MINUTES: '%VALUE% minutes'
MONTHS: '%VALUE% months'
DAYS: '%VALUE% days'
HOURS: '%VALUE% hours'
YEARS: '%VALUE% years'
WEEKS: '%VALUE% weeks'
# Regards /unban, /unmute, /unwarn
removals:
mutes:
success:
message: '&7Unmuted &c&o%VICTIM%&7.'
notification: '&c&o%UNOPERATOR%&7 unmuted &c&o%VICTIM%&7.'
not-found: '&c&o%TARGET%&7 is not muted.'
usage: '&cUsage: /unmute &e<player>&c.'
permission:
both: '&cYou may not do this to players and their IP addresses.'
uuid: '&cYou may not do this to players.'
ip-address: '&cYou may not do this to IP addresses.'
warns:
not-a-number: '&c&o%ID_ARG%&7 is not a number.'
success:
message: '&7Unwarned &c&o%VICTIM%&7.'
notification: '&c&o%UNOPERATOR%&7 unwarned &c&o%VICTIM%&7.'
not-found: '&c&o%TARGET%&7 does not have a warn by &c&o%ID%&7.'
usage: '&cUsage: /unwarn &e<player> <id>&c.'
permission:
both: '&cYou may not do this to players and their IP addresses.'
uuid: '&cYou may not do this to players.'
ip-address: '&cYou may not do this to IP addresses.'
bans:
success:
message: '&7Unbanned &c&o%VICTIM%&7.'
notification: '&c&o%UNOPERATOR%&7 unbanned &c&o%VICTIM%&7.'
not-found: '&c&o%TARGET%&7 is not banned.'
usage: '&cUsage: /unban &e<player>&c.'
permission:
both: '&cYou may not do this to players and their IP addresses.'
uuid: '&cYou may not do this to players.'
ip-address: '&cYou may not do this to IP addresses.'
admin:
ellipses: '&a...'
reloaded: '&aReloaded'
reload-failed: '&cAn error occurred reloading the configuration. Please check the server console.'
restarted: '&aRestarted'
addons:
reload-addon:
does-not-exist: '&cThat addon does not exist.'
failed: '&cAn error occurred reloading addon configuration. Please check the server console.'
usage: '&cUsage: /libertybans addon reload <addon>. To reload all addons, /libertybans reload will suffice.'
success: '&aReloaded addon &e%ADDON%&a.'
listing:
message: '&b&lAddons Installed'
layout: '&7- %ADDON%'
usage: '&cUsage: /libertybans addon <list|reload>'
no-permission: '&cSorry, you cannot use this.'
importing:
# To prevent mistakes, it is not allowed to import multiple times at once.
in-progress: '&cThere is already an import in progress.'
usage: '&cUsage: /libertybans import <advancedban|litebans|vanilla|self>'
failure: '&cImport failed. View the server console for details.'
started: '&7Import has started. View your server console for details and progress.'
complete: '&7Import completed.'
all:
# If a player types /libertybans but does not have the permission 'libertybans.commands', this is the denial message
base-permission-message: '&cYou may not use this.'
prefix:
# The prefix to use
value: '&6&lLibertyBans &8»&7 '
# If enabled, all messages will be prefixed
enable: false
# This section is only relevant if using the server scopes feature
scopes:
no-permission-for-default: '&cYou may not use this command without specifying a scope.'
no-permission: '&cYou may not use scope &e%SCOPE%&c.'
invalid: '&cInvalid scope specified: &e%SCOPE_ARG%&c.'
# When issuing commands, if the specified player or IP was not found, what should the error message be?
not-found:
player-or-address: '&c&o%TARGET%&7 was not found online or offline, and is not a valid IP address.'
uuid: '&c&o%TARGET%&7 is not a valid uuid.'
player: '&c&o%TARGET%&7 was not found online or offline.'
usage: '&cUnknown sub command. Displaying usage:'

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