Compare commits
111 Commits
feature-28
...
develop
Author | SHA1 | Date | |
---|---|---|---|
1599a79b15 | |||
51f78f3ec0 | |||
733c2d7d26 | |||
70056502dd | |||
5ae76be931 | |||
89b3cfe154 | |||
ace4d01f1d | |||
d054a0d26a | |||
11ae707a99 | |||
32e0d8949e | |||
06d0824f67 | |||
e6247a2414 | |||
bd10980524 | |||
260bdd7277 | |||
20f39cf22e | |||
cae7ab9022 | |||
c0cad02e1f | |||
cd1b05b42b | |||
207521b638 | |||
d240a44602 | |||
66681a9bf1 | |||
78f3df715b | |||
314bd15a51 | |||
94cc77340a | |||
f47a370c7a | |||
fb6a0c0602 | |||
7b6b6a2b4d | |||
067f2c4a6a | |||
6ae358a2ac | |||
f93a2208fd | |||
7da0770b58 | |||
266e1b6a22 | |||
7741c86fc7 | |||
2b7054c519 | |||
00e84cf168 | |||
17b3fc2590 | |||
260d6d55d9 | |||
f7f078580f | |||
eefbd02291 | |||
dd989b0ad6 | |||
7c36f42e08 | |||
2217532da3 | |||
24b85ba095 | |||
dfb2d46036 | |||
d5dbcac5fb | |||
dedfcf542f | |||
9e9b3d2bef | |||
77fe0950b2 | |||
9ac1f451c0 | |||
69105ba34f | |||
11ad282ebe | |||
f1681d14b4 | |||
38769b1c59 | |||
a4fe107708 | |||
1f826781a9 | |||
1097bd297c | |||
37fc716efa | |||
790806d3a9 | |||
7f400d9965 | |||
f93afc1709 | |||
f12993b85a | |||
f5dbe68a4c | |||
d2cf6753fb | |||
84bda15088 | |||
cddab7bca4 | |||
aa8fcae03f | |||
5b947a0a8b | |||
27c45fac56 | |||
f1ba8bb552 | |||
a41d43cf19 | |||
f5b61aeb23 | |||
afac6ba448 | |||
6e190d8569 | |||
c204973963 | |||
0033bd0f11 | |||
a8da779add | |||
fd3e06a456 | |||
a87c3cd1c9 | |||
f25aec9c8a | |||
7c321773ef | |||
ab6d571fcd | |||
b5880e43de | |||
3b880eea8b | |||
d807fb5248 | |||
e335979b36 | |||
a49bf4c27a | |||
7c34d9ff11 | |||
414a9ce681 | |||
2d5c8e41ca | |||
a09524292a | |||
154a5e5e00 | |||
12a157def0 | |||
9ccb2dd19f | |||
d687d86a18 | |||
2d0e217d37 | |||
a018f4726b | |||
89b1a97b25 | |||
c879269a49 | |||
b0c27faffd | |||
96f1c4b181 | |||
414fa0a562 | |||
57663573f2 | |||
818cd2dfdf | |||
d9d2bb95c5 | |||
68134f62eb | |||
6a2c612389 | |||
59090de3b3 | |||
3c7e1b1146 | |||
7f4c744582 | |||
c2e7cf757b | |||
bc98bef7f8 |
@ -18,9 +18,33 @@
|
||||
|
||||
src/plugins/spark/tmp
|
||||
|
||||
src/plugins/luckperms/libs
|
||||
|
||||
.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
|
||||
|
7
.github/workflows/build-docker.yml
vendored
7
.github/workflows/build-docker.yml
vendored
@ -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
|
||||
|
28
.gitignore
vendored
28
.gitignore
vendored
@ -18,9 +18,33 @@
|
||||
|
||||
src/plugins/spark/tmp
|
||||
|
||||
src/plugins/LuckPerms/libs
|
||||
|
||||
.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
|
||||
|
197
Dockerfile
197
Dockerfile
@ -9,57 +9,164 @@ ADD ./src ${CONFIG_PATH}
|
||||
RUN mkdir ${DATA_PATH}
|
||||
|
||||
|
||||
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}
|
||||
RUN touch ${DATA_PATH}/pv-voice_mutes.json && \
|
||||
ln -sf ${DATA_PATH}/pv-voice_mutes.json \
|
||||
# Add symlinks to Minecraft Vanilla files
|
||||
RUN mkdir ${DATA_PATH}/Vanilla && \
|
||||
touch ${DATA_PATH}/Vanilla/banned-ips.json && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/banned-ips.json ${CONFIG_PATH} && \
|
||||
touch ${DATA_PATH}/Vanilla/banned-players.json && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/banned-players.json ${CONFIG_PATH} && \
|
||||
mkdir ${DATA_PATH}/Vanilla/logs && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/logs ${CONFIG_PATH} && \
|
||||
touch ${DATA_PATH}/Vanilla/ops.json && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/ops.json ${CONFIG_PATH} && \
|
||||
touch ${DATA_PATH}/Vanilla/usercache.json && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/usercache.json ${CONFIG_PATH} && \
|
||||
touch ${DATA_PATH}/Vanilla/whitelist.json && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/whitelist.json ${CONFIG_PATH} && \
|
||||
mkdir ${DATA_PATH}/Vanilla/world && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/world ${CONFIG_PATH} && \
|
||||
mkdir ${DATA_PATH}/Vanilla/world_nether && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/world_nether ${CONFIG_PATH} && \
|
||||
mkdir ${DATA_PATH}/Vanilla/world_the_end && \
|
||||
ln -sf ${DATA_PATH}/Vanilla/world_the_end ${CONFIG_PATH}
|
||||
|
||||
# Add symlinks to PlasmoVoice files
|
||||
RUN mkdir ${DATA_PATH}/PlasmoVoice && \
|
||||
touch ${DATA_PATH}/PlasmoVoice/pv-voice_mutes.json && \
|
||||
ln -sf ${DATA_PATH}/PlasmoVoice/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 \
|
||||
# Remove after migrated
|
||||
mkdir -p ${DATA_PATH}/Vanilla && \
|
||||
if [ -e ${DATA_PATH}/banned-ips.json ]; then mv ${DATA_PATH}/banned-ips.json ${DATA_PATH}/Vanilla; fi && \
|
||||
if [ -e ${DATA_PATH}/banned-players.json ]; then mv ${DATA_PATH}/banned-players.json ${DATA_PATH}/Vanilla; fi && \
|
||||
if [ -e ${DATA_PATH}/logs ]; then mv ${DATA_PATH}/logs ${DATA_PATH}/Vanilla; fi && \
|
||||
if [ -e ${DATA_PATH}/ops.json ]; then mv ${DATA_PATH}/ops.json ${DATA_PATH}/Vanilla; fi && \
|
||||
if [ -e ${DATA_PATH}/usercache.json ]; then mv ${DATA_PATH}/usercache.json ${DATA_PATH}/Vanilla; fi && \
|
||||
if [ -e ${DATA_PATH}/whitelist.json ]; then mv ${DATA_PATH}/whitelist.json ${DATA_PATH}/Vanilla; fi && \
|
||||
if [ -e ${DATA_PATH}/world ]; then mv ${DATA_PATH}/world ${DATA_PATH}/Vanilla; fi && \
|
||||
if [ -e ${DATA_PATH}/world_nether ]; then mv ${DATA_PATH}/world_nether ${DATA_PATH}/Vanilla; fi && \
|
||||
if [ -e ${DATA_PATH}/world_the_end ]; then mv ${DATA_PATH}/world_the_end ${DATA_PATH}/Vanilla; fi && \
|
||||
mkdir -p ${DATA_PATH}/PlasmoVoice && \
|
||||
if [ -e ${DATA_PATH}/pv-voice_mutes.json ]; then mv ${DATA_PATH}/pv-voice_mutes.json ${DATA_PATH}/PlasmoVoice; fi && \
|
||||
|
||||
# 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 && \
|
||||
|
||||
@ -73,6 +180,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 && \
|
||||
@ -80,5 +194,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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
BIN
src/plugins/ArmorPoser-Plugin-1.0.2.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
125
src/plugins/BMMarker/language/de.yml
Normal file
125
src/plugins/BMMarker/language/de.yml
Normal 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"
|
159
src/plugins/BMMarker/language/en.yml
Normal file
159
src/plugins/BMMarker/language/en.yml
Normal 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"
|
5
src/plugins/BMMarker/settings.json
Normal file
5
src/plugins/BMMarker/settings.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"language": "en",
|
||||
"maxUserSets": 100,
|
||||
"maxUserMarker": 1000
|
||||
}
|
48
src/plugins/BlueMap/core.conf
Normal file
48
src/plugins/BlueMap/core.conf
Normal 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
|
||||
}
|
1
src/plugins/BlueMap/data/pluginState.json
Normal file
1
src/plugins/BlueMap/data/pluginState.json
Normal 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":[]}
|
BIN
src/plugins/BlueMap/data/resourceExtensions.zip
Normal file
BIN
src/plugins/BlueMap/data/resourceExtensions.zip
Normal file
Binary file not shown.
BIN
src/plugins/BlueMap/data/web/assets/Quicksand-BuVPtn-J.ttf
Normal file
BIN
src/plugins/BlueMap/data/web/assets/Quicksand-BuVPtn-J.ttf
Normal file
Binary file not shown.
BIN
src/plugins/BlueMap/data/web/assets/favicon-DEN7TZ5X.png
Normal file
BIN
src/plugins/BlueMap/data/web/assets/favicon-DEN7TZ5X.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.9 KiB |
1
src/plugins/BlueMap/data/web/assets/index-BgiqB2rB.css
Normal file
1
src/plugins/BlueMap/data/web/assets/index-BgiqB2rB.css
Normal file
File diff suppressed because one or more lines are too long
4297
src/plugins/BlueMap/data/web/assets/index-Q7i7_FGJ.js
Normal file
4297
src/plugins/BlueMap/data/web/assets/index-Q7i7_FGJ.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
src/plugins/BlueMap/data/web/assets/logo.png
Normal file
BIN
src/plugins/BlueMap/data/web/assets/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
src/plugins/BlueMap/data/web/assets/logoCircle512.png
Normal file
BIN
src/plugins/BlueMap/data/web/assets/logoCircle512.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
BIN
src/plugins/BlueMap/data/web/assets/logoCircle64.png
Normal file
BIN
src/plugins/BlueMap/data/web/assets/logoCircle64.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.9 KiB |
@ -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"
|
||||
}]
|
||||
}
|
15
src/plugins/BlueMap/data/web/assets/poi.svg
Normal file
15
src/plugins/BlueMap/data/web/assets/poi.svg
Normal 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 |
BIN
src/plugins/BlueMap/data/web/assets/steve.png
Normal file
BIN
src/plugins/BlueMap/data/web/assets/steve.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 844 B |
33
src/plugins/BlueMap/data/web/index.html
Normal file
33
src/plugins/BlueMap/data/web/index.html
Normal 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>
|
144
src/plugins/BlueMap/data/web/lang/cs.conf
Normal file
144
src/plugins/BlueMap/data/web/lang/cs.conf
Normal 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 ♥ pomocí <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/de.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/de.conf
Normal 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 ↑</kbd>/<kbd>Bild ↓</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 ♥ von <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} generiert
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
175
src/plugins/BlueMap/data/web/lang/en.conf
Normal file
175
src/plugins/BlueMap/data/web/lang/en.conf
Normal 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 ♥ using <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
151
src/plugins/BlueMap/data/web/lang/es.conf
Normal file
151
src/plugins/BlueMap/data/web/lang/es.conf
Normal 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 ♥ usando <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/fi.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/fi.conf
Normal 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 ♥ käyttäen <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} -ohjelmaa
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
171
src/plugins/BlueMap/data/web/lang/fr.conf
Normal file
171
src/plugins/BlueMap/data/web/lang/fr.conf
Normal 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 ♥ par <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
146
src/plugins/BlueMap/data/web/lang/hi.conf
Normal file
146
src/plugins/BlueMap/data/web/lang/hi.conf
Normal 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>
|
||||
"""
|
||||
}
|
||||
}
|
146
src/plugins/BlueMap/data/web/lang/hu.conf
Normal file
146
src/plugins/BlueMap/data/web/lang/hu.conf
Normal 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 ♥ a <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} segítségével lett generálva
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
175
src/plugins/BlueMap/data/web/lang/id.conf
Normal file
175
src/plugins/BlueMap/data/web/lang/id.conf
Normal 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 ♥ menggunakan <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
144
src/plugins/BlueMap/data/web/lang/it.conf
Normal file
144
src/plugins/BlueMap/data/web/lang/it.conf
Normal 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 ♥ usando <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
175
src/plugins/BlueMap/data/web/lang/ja.conf
Normal file
175
src/plugins/BlueMap/data/web/lang/ja.conf
Normal 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">
|
||||
このマップは♥を込めて<a href="https://bluecolo.red/bluemap">BlueMap</a> {version}で生成されています
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
175
src/plugins/BlueMap/data/web/lang/ko.conf
Normal file
175
src/plugins/BlueMap/data/web/lang/ko.conf
Normal 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">
|
||||
이 맵은 ♥을 담아 <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} 을 이용해 제작되었습니다
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
145
src/plugins/BlueMap/data/web/lang/lv.conf
Normal file
145
src/plugins/BlueMap/data/web/lang/lv.conf
Normal 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 ♥ <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
153
src/plugins/BlueMap/data/web/lang/nb.conf
Normal file
153
src/plugins/BlueMap/data/web/lang/nb.conf
Normal 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 ♥ using <a href="https://bluecolo.red/bluemap">BlueMap</a>.
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/nl.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/nl.conf
Normal 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 ♥ door <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} gegenereerd
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
177
src/plugins/BlueMap/data/web/lang/pl.conf
Normal file
177
src/plugins/BlueMap/data/web/lang/pl.conf
Normal 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 ♥ za pomocą <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}</p>
|
||||
"""
|
||||
}
|
||||
}
|
171
src/plugins/BlueMap/data/web/lang/pt-PT.conf
Normal file
171
src/plugins/BlueMap/data/web/lang/pt-PT.conf
Normal 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 ♥ usando o <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/ru.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/ru.conf
Normal 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">
|
||||
Эта карта сгенерирована с ♥ <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
35
src/plugins/BlueMap/data/web/lang/settings.conf
Normal file
35
src/plugins/BlueMap/data/web/lang/settings.conf
Normal 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"}
|
||||
]
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/sr-Cyrl-RS.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/sr-Cyrl-RS.conf
Normal 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">
|
||||
Ова мапа је генерисана са ♥ користећи <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/sr-Latn-RS.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/sr-Latn-RS.conf
Normal 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 ♥ koristeći <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/sv.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/sv.conf
Normal 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 ♥ med hjälp av <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
171
src/plugins/BlueMap/data/web/lang/th.conf
Normal file
171
src/plugins/BlueMap/data/web/lang/th.conf
Normal 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">
|
||||
แผนที่นี้ถูกสร้างขึ้นด้วย ♥ <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
171
src/plugins/BlueMap/data/web/lang/tr.conf
Normal file
171
src/plugins/BlueMap/data/web/lang/tr.conf
Normal 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 ♥ <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} ile oluşturulmuştur
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/ua.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/ua.conf
Normal 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">
|
||||
Цю карту було згенеровано з ♥ використовуючи <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
175
src/plugins/BlueMap/data/web/lang/vi.conf
Normal file
175
src/plugins/BlueMap/data/web/lang/vi.conf
Normal 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 ♥ với <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
171
src/plugins/BlueMap/data/web/lang/zh-CN.conf
Normal file
171
src/plugins/BlueMap/data/web/lang/zh-CN.conf
Normal 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">
|
||||
本地图用 ♥ 制作,使用了 <a href="https://bluecolo.red/bluemap">BlueMap</a> {version} 程序。
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
144
src/plugins/BlueMap/data/web/lang/zh-HK.conf
Normal file
144
src/plugins/BlueMap/data/web/lang/zh-HK.conf
Normal 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">
|
||||
此地圖是用 ♥ 製作,地圖插件名稱是 <a href="https://bluecolo.red/bluemap">BlueMap</a> {version}
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
174
src/plugins/BlueMap/data/web/lang/zh-TW.conf
Normal file
174
src/plugins/BlueMap/data/web/lang/zh-TW.conf
Normal 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} 充滿愛心 ♥ 地製作而成
|
||||
</p>
|
||||
"""
|
||||
}
|
||||
}
|
1
src/plugins/BlueMap/data/web/settings.json
Normal file
1
src/plugins/BlueMap/data/web/settings.json
Normal 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":[]}
|
256
src/plugins/BlueMap/data/web/sql.php
Normal file
256
src/plugins/BlueMap/data/web/sql.php
Normal 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);
|
147
src/plugins/BlueMap/maps/world.conf
Normal file
147
src/plugins/BlueMap/maps/world.conf
Normal 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
|
||||
|
||||
}
|
147
src/plugins/BlueMap/maps/world_nether.conf
Normal file
147
src/plugins/BlueMap/maps/world_nether.conf
Normal 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
|
||||
|
||||
}
|
147
src/plugins/BlueMap/maps/world_the_end.conf
Normal file
147
src/plugins/BlueMap/maps/world_the_end.conf
Normal 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
|
||||
|
||||
}
|
72
src/plugins/BlueMap/plugin.conf
Normal file
72
src/plugins/BlueMap/plugin.conf
Normal 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
|
22
src/plugins/BlueMap/storages/file.conf
Normal file
22
src/plugins/BlueMap/storages/file.conf
Normal 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
|
47
src/plugins/BlueMap/storages/sql.conf
Normal file
47
src/plugins/BlueMap/storages/sql.conf
Normal 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
|
75
src/plugins/BlueMap/webapp.conf
Normal file
75
src/plugins/BlueMap/webapp.conf
Normal 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"
|
||||
]
|
45
src/plugins/BlueMap/webserver.conf
Normal file
45
src/plugins/BlueMap/webserver.conf
Normal 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"
|
||||
}
|
47
src/plugins/CarbonChat/channels/global.conf
Normal file
47
src/plugins/CarbonChat/channels/global.conf
Normal 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
|
49
src/plugins/CarbonChat/channels/local.conf
Normal file
49
src/plugins/CarbonChat/channels/local.conf
Normal 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
|
128
src/plugins/CarbonChat/command-settings.conf
Normal file
128
src/plugins/CarbonChat/command-settings.conf
Normal 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
|
||||
]
|
||||
}
|
||||
}
|
137
src/plugins/CarbonChat/config.conf
Normal file
137
src/plugins/CarbonChat/config.conf
Normal 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
|
162
src/plugins/CarbonChat/locale/messages-en_US.properties
Normal file
162
src/plugins/CarbonChat/locale/messages-en_US.properties
Normal 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.
|
160
src/plugins/CarbonChat/locale/messages-ja_JP.properties
Normal file
160
src/plugins/CarbonChat/locale/messages-ja_JP.properties
Normal 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=プライベートメッセージを受信しています。
|
82
src/plugins/CarbonChat/locale/messages-nl_NL.properties
Normal file
82
src/plugins/CarbonChat/locale/messages-nl_NL.properties
Normal 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>
|
120
src/plugins/CarbonChat/locale/messages-tr_TR.properties
Normal file
120
src/plugins/CarbonChat/locale/messages-tr_TR.properties
Normal 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=Açıklama
|
||||
command.help.misc.help=Yardım
|
||||
command.help.misc.no_description=Açı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.
|
160
src/plugins/CarbonChat/locale/messages-zh_CN.properties
Normal file
160
src/plugins/CarbonChat/locale/messages-zh_CN.properties
Normal 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=你开启了私信的接收.
|
160
src/plugins/CarbonChat/locale/messages-zh_TW.properties
Normal file
160
src/plugins/CarbonChat/locale/messages-zh_TW.properties
Normal 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
BIN
src/plugins/Chunky-Bukkit-1.4.40.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
9
src/plugins/Chunky/config.yml
Normal file
9
src/plugins/Chunky/config.yml
Normal 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
BIN
src/plugins/Clumps-5.0.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
55
src/plugins/Clumps/config.yml
Normal file
55
src/plugins/Clumps/config.yml
Normal 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
BIN
src/plugins/CommandWhitelist-Bukkit-2.12.0.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
81
src/plugins/CommandWhitelist/config.yml
Normal file
81
src/plugins/CommandWhitelist/config.yml
Normal 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
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
BIN
src/plugins/DiscordSRV-Build-1.29.0.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
122
src/plugins/DiscordSRV/alerts.yml
Normal file
122
src/plugins/DiscordSRV/alerts.yml
Normal 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}"
|
354
src/plugins/DiscordSRV/config.yml
Normal file
354
src/plugins/DiscordSRV/config.yml
Normal 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: []
|
57
src/plugins/DiscordSRV/linking.yml
Normal file
57
src/plugins/DiscordSRV/linking.yml
Normal 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Пожалуйста, перезайдите, чтобы снова связать аккаунты."
|
449
src/plugins/DiscordSRV/messages.yml
Normal file
449
src/plugins/DiscordSRV/messages.yml
Normal 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%\" не найдено."
|
54
src/plugins/DiscordSRV/synchronization.yml
Normal file
54
src/plugins/DiscordSRV/synchronization.yml
Normal 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
|
29
src/plugins/DiscordSRV/voice.yml
Normal file
29
src/plugins/DiscordSRV/voice.yml
Normal 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
BIN
src/plugins/FreedomChat-Paper-1.7.0.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
17
src/plugins/FreedomChat/config.yml
Normal file
17
src/plugins/FreedomChat/config.yml
Normal 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
|
218
src/plugins/GrimAC/config.yml
Normal file
218
src/plugins/GrimAC/config.yml
Normal 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
|
12
src/plugins/GrimAC/discord.yml
Normal file
12
src/plugins/GrimAC/discord.yml
Normal 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%"
|
71
src/plugins/GrimAC/messages.yml
Normal file
71
src/plugins/GrimAC/messages.yml
Normal 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)"
|
143
src/plugins/GrimAC/punishments.yml
Normal file
143
src/plugins/GrimAC/punishments.yml
Normal 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
BIN
src/plugins/ImageFrame-1.8.4.0.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
191
src/plugins/ImageFrame/config.yml
Normal file
191
src/plugins/ImageFrame/config.yml
Normal 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
|
283
src/plugins/LibertyBans/config.yml
Normal file
283
src/plugins/LibertyBans/config.yml
Normal 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.'
|
||||
|
187
src/plugins/LibertyBans/import.yml
Normal file
187
src/plugins/LibertyBans/import.yml
Normal 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
|
||||
|
497
src/plugins/LibertyBans/lang/messages_en.yml
Normal file
497
src/plugins/LibertyBans/lang/messages_en.yml
Normal 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
Loading…
Reference in New Issue
Block a user