feature-31-voice-chat #4

Merged
cuqmbr merged 3 commits from feature-31 into develop 2025-07-04 16:11:47 +00:00
31 changed files with 1104 additions and 2 deletions

View File

@ -3,3 +3,6 @@
src/librelogin.db
src/plugins/luckperms/libs
.crowdin
src/plugins/pv-addon-groups/groups.json

3
.gitignore vendored
View File

@ -5,3 +5,6 @@ src/plugins/librelogin/LICENSE.txt
src/librelogin.db
src/plugins/luckperms/libs
.crowdin
src/plugins/pv-addon-groups/groups.json

View File

@ -11,13 +11,16 @@ RUN mkdir ${DATA_PATH}
RUN mkdir ${DATA_PATH}/logs && \
ln -sf ${DATA_PATH}/logs ${CONFIG_PATH}
RUN touch ${DATA_PATH}/pv-groups.json && \
ln -sf ${DATA_PATH}/pv-groups.json \
${CONFIG_PATH}/plugins/pv-addon-groups/groups.json
VOLUME ${DATA_PATH}
ENV MEMORY=4G
ENV PROXY_SECRET=change_me
ENV PROXY_SECRET=00000000-0000-0000-0000-000000000000
ENV SERVERS=lobby="lobby:25565";survival="survival:25565"
ENV TRY=lobby;survival
@ -41,6 +44,9 @@ ENV SKINSRESTORER_DB_NAME=skinsrestorer_db
ENV SKINSRESTORER_DB_USERNAME=skinsrestorer
ENV SKINSRESTORER_DB_PASSWORD=0000
ENV VOICE_SECRET=00000000-0000-0000-0000-000000000000
ENV VOICE_SERVERS=lobby="lobby:25565";survival="survival:25565"
WORKDIR ${WORKDIR_PATH}/config
EXPOSE 25565/tcp
@ -50,9 +56,11 @@ EXPOSE 25565/tcp
CMD \
# Add proxy secret
sed -i "s/_PROXY_SECRET_/${PROXY_SECRET}/g" forwarding.secret && \
# Substitute librelogin database path
sed -i "s~../../librelogin.db~../../../..${DATA_PATH}/librelogin.db~g" plugins/librelogin/config.conf && \
# Add servers to velocity.toml
# Add server list to velocity.toml
awk -v servers_str="${SERVERS}" '{ count=split(servers_str,servers_arr,";"); servers_fmt_str = ""; for (i = 1; i <= count; i++) servers_fmt_str = servers_fmt_str servers_arr[i] "\n"; sub(/_SERVERS_/,servers_fmt_str); print }' velocity.toml > velocity.toml.tmp && mv -T -f velocity.toml.tmp velocity.toml && \
# Add try servers to velocity.toml
awk -v try_str="${TRY}" '{ count=split(try_str,try_arr,";"); try_fmt_str = ""; for (i = 1; i <= count; i++) try_fmt_str = try_fmt_str "\"" try_arr[i] "\"" ",\n "; sub(/_TRY_/,try_fmt_str); print }' velocity.toml > velocity.toml.tmp && mv -T -f velocity.toml.tmp velocity.toml && \
@ -82,4 +90,9 @@ CMD \
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 Plasmo Voice proxy secret
cat plugins/plasmovoice/forwarding-secret | sed "s/00000000-0000-0000-0000-000000000000/${VOICE_SECRET}/g" | tr -d '\n' > plugins/plasmovoice/forwarding-secret.tmp && mv -T -f plugins/plasmovoice/forwarding-secret.tmp plugins/plasmovoice/forwarding-secret && \
# Add server list to Plasmo Voice config
awk -v servers_str="${VOICE_SERVERS}" '{ count=split(servers_str,servers_arr,";"); servers_fmt_str = ""; for (i = 1; i <= count; i++) servers_fmt_str = servers_fmt_str servers_arr[i] "\n"; sub(/_SERVERS_/,servers_fmt_str); print }' plugins/plasmovoice/config.toml > plugins/plasmovoice/config.toml.tmp && mv -T -f plugins/plasmovoice/config.toml.tmp plugins/plasmovoice/config.toml && \
java -Xms${MEMORY} -Xmx${MEMORY} -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar *.jar

BIN
src/plugins/PlasmoVoice-Velocity-2.1.4.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,14 @@
default_language = "en_us"
debug = false
use_crowdin_translations = true
check_for_updates = true
# The MTU size on the proxy only needs to create Opus encoders using the API
mtu_size = 1024
[servers]
_SERVERS_
[host]
ip = "0.0.0.0"
port = 0

View File

@ -0,0 +1 @@
00000000-0000-0000-0000-000000000000

BIN
src/plugins/pv-addon-broadcast-1.1.0.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,7 @@
# Available values:
# ACTION_BAR - show current broadcast-wide in action bar
# CHAT - show current broadcast-wide in chat
# HIDDEN - don't show current broadcast-wide
show_current_broadcast_wide = "ACTION_BAR"
activation_weight = 12
source_line_weight = 12

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "Broadcasting to %s"
broadcasting_wide = "Broadcasting to %s-wide"
[server.pv.addon.broadcast.command]
server_usage = "Usage: /vbroadcastproxy server <server names>"
proxy_set = "Set broadcast with mode proxy"
usage = "Usage: /vbroadcastproxy <server|proxy> <server names>"
server_set = "Set broadcast with mode server to %s"
[client.pv.activation]
broadcast = "Broadcast"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "Transmitiendo a %s"
broadcasting_wide = "Transmitiendo a %s-wide"
[server.pv.addon.broadcast.command]
server_usage = "Uso: /vbroadcastproxy server <server names>"
proxy_set = "Establecer transmisión con el modo proxy"
usage = "Uso: /vbroadcastproxy <server|proxy> <server names>"
server_set = "Establecer transmisión con el modo de servidor a %s"
[client.pv.activation]
broadcast = "Transmisión"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "Diffuser à %s"
broadcasting_wide = "Broadcasting to %s-wide"
[server.pv.addon.broadcast.command]
server_usage = "Usage: /vbroadcastproxy server <server names>"
proxy_set = "Set broadcast with mode proxy"
usage = "Utilisation : /vbroadcastproxy <server|proxy> <server names>"
server_set = "Set broadcast with mode server to %s"
[client.pv.activation]
broadcast = "Diffusion"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "משדר ל-%s"
broadcasting_wide = "משדר ל %s-רחב"
[server.pv.addon.broadcast.command]
server_usage = "שימוש: <vbroadcastproxy server <server names/"
proxy_set = "הגדר שידור עם מצב Proxy"
usage = "שימוש: <vbroadcastproxy <server|proxy> <server names/"
server_set = "הגדר שידור עם מצב שרת ל-%s"
[client.pv.activation]
broadcast = "שידור"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "%s 에 방송중"
broadcasting_wide = "%s 전체에 방송중"
[server.pv.addon.broadcast.command]
server_usage = "사용법: /vbroadcastproxy server <server names>"
proxy_set = "방송을 프록시로 설정"
usage = "사용법: /vbroadcastproxy <server|proxy> <server names>"
server_set = "방송을 %s 서버로 설정"
[client.pv.activation]
broadcast = "방송"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "Nadawanie do %s"
broadcasting_wide = "Nadawanie na skalę %s"
[server.pv.addon.broadcast.command]
server_usage = "Użycie: /vbroadcastproxy serwer <nazwy serwerów>"
proxy_set = "Ustawiono nadawanie z trybem proxy"
usage = "Użycie /vbroadcastproxy <serwer|proxy> <nazwy serwerów>"
server_set = "Ustawiono nadawanie z trybem serwera na %s"
[client.pv.activation]
broadcast = "Nadawanie"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "Transmitir para %s"
broadcasting_wide = "Transmitir para %s"
[server.pv.addon.broadcast.command]
server_usage = "Uso: /vbroadcastproxy server <server names>"
proxy_set = "Definir transmissão com modo de proxy"
usage = "Uso: /vbroadcastproxy <server|proxy> <server names>"
server_set = "Definir transmissão com o modo de servidor para %s"
[client.pv.activation]
broadcast = "Anúncio"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "Вещание на %s"
broadcasting_wide = "Вещание на %s"
[server.pv.addon.broadcast.command]
server_usage = "Использование: /vbroadcastproxy server <названия серверов>"
proxy_set = "Установлено вещание на прокси"
usage = "Использование: /vbroadcastproxy <server|proxy> <названия серверов>"
server_set = "Установлено вещание на серверы: %s"
[client.pv.activation]
broadcast = "Вещание"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "%s каналында тапшыру"
broadcasting_wide = "Бөтен %s каналында тапшыру"
[server.pv.addon.broadcast.command]
server_usage = "Кулланылу: /vbroadcastproxy server <сервер исемнәре>"
proxy_set = "Проксида тапшыру урнаштырылды"
usage = "Кулланылу: /vbroadcastproxy <server|proxy> <сервер исемнәре>"
server_set = "%s серверында тапшыру урнаштырылды"
[client.pv.activation]
broadcast = "Тапшыру"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "Трансляція на %s"
broadcasting_wide = "Трансляція на %s- широкий"
[server.pv.addon.broadcast.command]
server_usage = "Використання: /vbroadcastproxy сервер <server names>"
proxy_set = "Встановити трансляцію через проксі"
usage = "Використання: /vbroadcastproxy <server|proxy> <server names>"
server_set = "Установлено мовлення з сервером %s"
[client.pv.activation]
broadcast = "Транслювати"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "向 %s 广播"
broadcasting_wide = "向 %s 范围广播"
[server.pv.addon.broadcast.command]
server_usage = "用法:/vbroadcastproxy server <服务器名称>"
proxy_set = "设置广播为代理模式"
usage = "用法:/vbroadcastproxy <server|proxy> <服务器名称>"
server_set = "设置广播为向 %s 广播的服务器模式"
[client.pv.activation]
broadcast = "广播"

View File

@ -0,0 +1,11 @@
[server.pv.addon.broadcast]
broadcasting_specific = "向 %s 廣播"
broadcasting_wide = "向 %s 範圍廣播"
[server.pv.addon.broadcast.command]
server_usage = "用法:/vbroadcastproxy server <伺服器名稱>"
proxy_set = "設置廣播為代理模式"
usage = "用法:/vbroadcastproxy <server|proxy> <伺服器名稱>"
server_set = "設置廣播為向 %s 廣播的伺服器模式"
[client.pv.activation]
broadcast = "廣播"

BIN
src/plugins/pv-addon-groups-1.1.0.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
activation_weight = 10
sourceline_weight = 10
default_group_name_format = "%player%'s group"
minimum_name_length = 3
maximum_name_length = 32

View File

@ -0,0 +1,114 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.tooltip]
group_uuid = "Uuid: %s"
password_protected = "Group is password protected"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7Players: &r%1$s&7, owned by &r%2$s"
only_players = "&7Players: &r%s"
invite = "%1$s invited you to join voice group %2$s"
page = "&7Page &r%s/%s"
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.error]
not_in_group = "&cYou need to be in the group to execute this command"
name_length = "&cGroup name name should be betweeen %1$s and %2$s characters long"
player_not_found = "&cNo player with such a name"
unknown_subcommand = "&cUnknown command. Available commands: %s"
unknown = "&cUnknown error"
group_not_found = "&cGroup not found"
uuid_parse = "&cUuid parse error. '%s' is not a Uuid"
no_permission = "&cNo permission: '%s'"
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&cPermissions filter is already empty"
unknown_flag = "&cCan't unset flag \"%1$s\". Available flags: %2$s"
usage = "&cUsage: /groups unset <flag>"
password_not_set = "&cGroup is already not protected with password"
[server.pv.addon.groups.command.ban.error]
already_banned = "&cPlayer is already banned in the group"
usage = "&cUsage: /groups ban <player>"
[server.pv.addon.groups.command.leave]
success = "&aYou left the group"
[server.pv.addon.groups.command.create]
success = "&aThe group was created:"
[server.pv.addon.groups.command.join]
success = "&aYou joined the group"
[server.pv.addon.groups.command.join.error]
already_joined = "&cYou already joined this group"
usage = "&cUsage: /groups join <group uuid> [password]"
banned = "&cYou've been banned in this group"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&cUnknown flag: \"%1$s\". Available flags: %2$s"
usage = "&cUsage: /groups set <flag> <value>"
identical_value = "&cThe value is identical to current value"
[server.pv.addon.groups.command.unban.error]
not_banned = "&cPlayer is not banned in the group"
usage = "&cUsage: /groups unban <player>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&cYou are already the owner of the group"
usage = "&cUsage: /groups transfer <player>"
[server.pv.addon.groups.command.kick.error]
not_in_group = "&cPlayer is not in the group"
usage = "&cUsage: /groups kick <player>"
[server.pv.addon.groups.command.invite]
success = "&aInvitation sent to %s"
[server.pv.addon.groups.command.invite.error]
already_joined = "&cPlayer already joined the group"
usage = "&cUsage: /groups invite <player>"
banned = "&cPlayer is banned in this group"
invite_self = "&cYou can't invite yourself"
[server.pv.addon.groups.command.browse.error]
page_not_found = "&cPage not found"
no_groups = "&cNo groups. Create groups using \"/groups create\""
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c← Leave"
prev = "&e<"
join = "&e→ Join"
invite = "&e✉ Invite"
[server.pv.addon.groups.arg]
groups_uuid = "<group uuid>"
password = "<password>"
permissions = "<list of comma separated permissions>"
name = "<name>"
page = "[page]"
[server.pv.addon.groups.notifications]
player_unbanned = "%s was unbanned in the group"
player_left = "%s left the group"
banned = "&cYou've been banned in the group"
new_owner = "%s is the new owner of the group"
player_banned = "%s was banned in the group"
player_kicked = "%s was kicked out of the group"
persistent_false = "The group is no longer persistent"
password_changed = "Group password changed"
kicked = "&cYou've been kicked out of the group"
persistent_true = "The group is persistent now"
permissions_unset = "Permissions protection was removed"
group_deleted = "Group was deleted"
player_join = "%s joined the group"
password_unset = "Password protection was removed"
permissions_changed = "Group permissions changed"
name_change = "Group name was changed from '%1$s' to '%2$s'"
[client.pv.activation]
groups = "Groups"

View File

@ -0,0 +1,97 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7Jugadores: &r%1$s&7, propiedad de &r%2$s"
invite = "%1$s te invitó a unirte al grupo de voz %2$s"
only_players = "&7Jugadores: &r%s"
page = "&7Página &r%s/%s"
[server.pv.addon.groups.tooltip]
group_uuid = "Uuid: %s"
password_protected = "Este grupo está protegido por contraseña"
[server.pv.addon.groups.error]
not_in_group = "&cNecesitas estar en el grupo para poder ejecutar este comando"
name_length = "&cEl nombre del grupo debe tener entre %1$s y %2$s caracteres"
player_not_found = "&cNo se encontró ningún jugador con ese nombre"
unknown_subcommand = "&cComando desconocido. Comandos disponibles: %s"
unknown = "&cError desconocido"
group_not_found = "&cGrupo no encontrado"
uuid_parse = "&cUuid error de análisis. '%s' no es un Uuid"
no_permission = "&cNo tienes permisos: '%s'"
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&cMarca desconocida: \"%1$s\". Marcas disponibles: %2$s"
usage = "&cUso correcto: /groups set <flag> <value>"
identical_value = "&cEl valor es idéntico al actual"
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&cEl filtro de permisos ya está vacío"
unknown_flag = "&cNo se puede desestablecer la marca \"%1$s\". Marcas disponibles: %2$s"
password_not_set = "&cEl grupo ya no está protegido con contraseña"
usage = "&cUso correcto: /groups unset <flag>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&cYa eres el dueño del grupo"
usage = "&cUso correcto: /groups transfer <player>"
[server.pv.addon.groups.command.leave]
success = "&aSaliste del grupo"
[server.pv.addon.groups.command.create]
success = "&aEl grupo fue creado:"
[server.pv.addon.groups.command.invite]
success = "&aInvitación enviada a %s"
[server.pv.addon.groups.command.invite.error]
already_joined = "&cEste jugador ya se ha unido al grupo"
usage = "&cUso correcto: /groups invite <player>"
invite_self = "&cNo te puedes invitar a ti mismo"
[server.pv.addon.groups.command.join]
success = "&aTe uniste al grupo"
[server.pv.addon.groups.command.join.error]
already_joined = "&cYa te uniste a este grupo"
usage = "&cUso correcto: /groups join <group uuid> [password]"
[server.pv.addon.groups.command.browse.error]
page_not_found = "&cPágina no encontrada"
no_groups = "&cNo existen grupos. Crear grupos usando \"/groups create\""
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c← Abandonar"
prev = "&e<"
invite = "&e✉ Invitar"
join = "&e→ Unirse"
[server.pv.addon.groups.arg]
groups_uuid = "<group uuid>"
password = "<password>"
permissions = "<list of comma separated permissions>"
name = "<name>"
page = "[page]"
[server.pv.addon.groups.notifications]
player_left = "%s abandonó el grupo"
new_owner = "%s es el nuevo dueño del grupo"
persistent_false = "El grupo ya no es persistente"
player_kicked = "%s ha sido expulsado del grupo"
password_changed = "La contraseña del grupo fue cambiada"
kicked = "&cHas sido expulsado del grupo"
persistent_true = "El grupo es persistente ahora"
permissions_unset = "La protección de permisos fue eliminada"
group_deleted = "El grupo fue eliminado"
player_join = "%s se ha unido al grupo"
password_unset = "Se eliminó la protección por contraseña"
permissions_changed = "Se modificaron los permisos del grupo"
name_change = "El nombre del grupo se cambió de '%1$s' a '%2$s'"
[client.pv.activation]
groups = "Grupos"

View File

@ -0,0 +1,97 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7플레이어: &r%1$s&7, 소유자: &r%2$s"
invite = "%1$s 님이 당신을 %2$s 그룹으로 초대했습니다."
only_players = "&7플레이어: &r%s"
page = "&7페이지 &r%s/%s"
[server.pv.addon.groups.tooltip]
group_uuid = "Uuid: %s"
password_protected = "이 그룹은 비밀번호로 보호되어 있습니다."
[server.pv.addon.groups.error]
not_in_group = "&c이 명령어를 사용하려면 그룹에 있어야 합니다."
name_length = "&c그룹 이름의 길이는 %1$s에서 %2$s 사이여야 합니다."
player_not_found = "&c해당 이름의 플레이어를 찾을 수 없습니다."
unknown_subcommand = "&c올바르지 않은 명령어입니다. 사용 가능한 명령어들은 다음과 같습니다: %s"
unknown = "&c알수없는 에러"
group_not_found = "&c그룹을 찾을 수 없습니다."
uuid_parse = "&cUuid 분석 실패. '%s'는 Uuid가 아닙니다."
no_permission = "&c'%s' 권한이 없습니다."
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&c\"%1$s\"는 올바르지 않은 플래그입니다. 사용 가능한 플래그들은 다음과 같습니다: %2$s"
usage = "&c사용법: /groups set <flag> <value>"
identical_value = "&c입력한 값이 현재 값과 동일합니다."
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&c이 그룹은 이미 권한 보호가 해제되어 있습니다."
unknown_flag = "&c\"%1$s\"를 해제할 수 없습니다. 사용 가능한 플래그들은 다음과 같습니다: %2$s"
password_not_set = "&c이 그룹은 이미 비밀번호 보호가 해제되어 있습니다."
usage = "&c사용법: /groups unset <flag>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&c당신은 이미 이 그룹의 소유자입니다."
usage = "&c사용법: /groups transfer <player>"
[server.pv.addon.groups.command.leave]
success = "&a그룹에서 나갔습니다."
[server.pv.addon.groups.command.create]
success = "&a그룹이 생성되었습니다:"
[server.pv.addon.groups.command.invite]
success = "&a%s 님에게 초대를 전송했습니다."
[server.pv.addon.groups.command.invite.error]
already_joined = "&c해당 플레이어는 이미 그룹에 참여해 있습니다."
usage = "&c사용법: /groups invite <player>"
invite_self = "&c자신을 초대할 수 없습니다."
[server.pv.addon.groups.command.join]
success = "&a그룹에 참여했습니다."
[server.pv.addon.groups.command.join.error]
already_joined = "&c당신은 이미 그룹에 참여해 있습니다."
usage = "&c사용법: /groups join <group uuid> [password]"
[server.pv.addon.groups.command.browse.error]
page_not_found = "&c페이지를 찾을 수 없습니다"
no_groups = "&c그룹이 없습니다. \"/groups create\" 명령어를 사용해 그룹을 생성하세요."
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c← 나가기"
prev = "&e<"
invite = "&e✉ 초대"
join = "&e→ 참여"
[server.pv.addon.groups.arg]
groups_uuid = "<group uuid>"
password = "<password>"
permissions = "<list of comma separated permissions>"
name = "<name>"
page = "[page]"
[server.pv.addon.groups.notifications]
player_left = "%s 님이 그룹에서 나갔습니다."
new_owner = "%s 이가 이제 이 그룹의 새 소유자입니다."
persistent_false = "이 그룹은 이제 더이상 유지되지 않습니다."
player_kicked = "%s 님이 그룹에서 강퇴 당했습니다."
password_changed = "그룹 비밀번호가 변경되었습니다."
kicked = "&c그룹에서 강퇴 당했습니다."
persistent_true = "이 그룹은 이제 상시 유지됩니다."
permissions_unset = "권한 보호가 제거되었습니다."
group_deleted = "그룹이 삭제되었습니다."
player_join = "%s 님이 그룹에 참여했습니다."
password_unset = "비밀번호 보호가 제거되었습니다."
permissions_changed = "그룹 권한이 변경되었습니다."
name_change = "그룹 이름이 '%1$s' 에서 '%2$s' 으로 변경되었습니다."
[client.pv.activation]
groups = "그룹"

View File

@ -0,0 +1,88 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7Gracze: &r%1$s&7, posiadana przez &r%2$s"
invite = "%1$s zaprosił(a) Cię do dołączenia grupy głosowej %2$s"
only_players = "&7Gracze: &r%s"
page = "&7Strona &r%s/%s"
[server.pv.addon.groups.tooltip]
group_uuid = "Uuid: %s"
password_protected = "Grupa jest zabezpieczona hasłem"
[server.pv.addon.groups.error]
not_in_group = "&cMusisz być w grupie, aby wykonać to polecenie"
name_length = "&cDługość nazwy grupy powinna być pomiędzy %1$s a %2$s"
player_not_found = "&cBrak gracza o podanej nazwie"
unknown_subcommand = "&cNieznane polecenie. Dostępne polecenia: %s"
unknown = "&cNieznany błąd"
group_not_found = "&cGrupa nie odnaleziona"
uuid_parse = "&cBłąd przetwarzania Uuid. '%s' nie jest Uuid"
no_permission = "&cBrak permisji: '%s'"
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&cNieznana flaga: \"%1$s\". Dostępne flagi: %2$s\""
usage = "&cUżycie: /groups set <flaga> <wartość>"
identical_value = "&cPodana wartość jest identyczna do aktualnej wartości"
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&cFiltr uprawnień jest już pusty"
unknown_flag = "&cNie można użyć flagi \"%1$s\". Dostępne flagi: %2$s"
password_not_set = "&cGrupa już nie jest chroniona hasłem"
usage = "&cUżycie: /groups unset <flaga>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&cJuż jesteś właścicielem grupy"
usage = "&cUżycie: /groups transfer <gracz>"
[server.pv.addon.groups.command.leave]
success = "&aOpuściłeś grupę"
[server.pv.addon.groups.command.create]
success = "&aGrupa została stworzona:"
[server.pv.addon.groups.command.invite]
success = "&aZaproszenie wysłane do %s"
[server.pv.addon.groups.command.invite.error]
already_joined = "&cGracz już dołączył do grupy"
usage = "&cUżycie: /groups invite <gracz>"
invite_self = "&cNie możesz zaprosić siebie"
[server.pv.addon.groups.command.join]
success = "&aDołączyłeś do grupy"
[server.pv.addon.groups.command.join.error]
already_joined = "&cJuż dołączyłeś do tej grupy"
usage = "Użycie: /groups join <uuid grupy> [hasło]"
[server.pv.addon.groups.command.browse.error]
page_not_found = "&cNie odnaleziono strony"
no_groups = "&cBrak grup. Utwórz grupę używając \"/groups create\""
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c← Opuść"
prev = "&e<"
invite = "&e✉ Zaproś"
join = "&e→ Dołącz"
[server.pv.addon.groups.arg]
groups_uuid = "<uuid grupy>"
password = "<hasło>"
permissions = "<lista uprawnień oddzielonych przecinkiem>"
name = "<nazwa>"
page = "[strona]"
[server.pv.addon.groups.notifications]
player_kicked = "%s został wyrzucony/a z grupy"
kicked = "&cZostałeś/aś wyrzucony/a z grupy"
password_unset = "Ochrona hasłem została usunięta"
permissions_unset = "Protekcja uprawnień została usunięta"
[client.pv.activation]
groups = "Grupy"

View File

@ -0,0 +1,97 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7Jogadores: &r%1$s&7, propriedade de &r%2$s"
invite = "%1$s convidou você para participar do grupo de voz %2$s"
only_players = "&7Jogadores: &r%s"
page = "&7Página &r%s/%s"
[server.pv.addon.groups.tooltip]
group_uuid = "Uuid: %s"
password_protected = "O grupo é protegido por senha"
[server.pv.addon.groups.error]
not_in_group = "&cVocê precisa estar no grupo para executar este comando"
name_length = "&cNome do grupo deve conter entre %1$s e %2$s caracteres"
player_not_found = "&cNenhum jogador com esse nome"
unknown_subcommand = "&cComando desconhecido. Comandos disponíveis: %s"
unknown = "&cErro desconhecido"
group_not_found = "&cGrupo não encontrado"
uuid_parse = "Erro de análise &cUuid. '%s' não é um Uuid"
no_permission = "&cSem permissão: '%s'"
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&cPropriedade desconhecida: \"%1$s\". Propriedades disponíveis: %2$s"
usage = "&cUso: /groups set <flag> <value>"
identical_value = "&cO valor é idêntico ao valor atual"
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&cO filtro de permissões já está vazio"
unknown_flag = "&cNão é possível remover a propriedade \"%1$s\". Propriedades disponíveis: %2$s"
password_not_set = "&cGrupo já não está protegido com senha"
usage = "&cUso: /groups unset <flag>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&cVocê já é o dono do grupo"
usage = "&cUso: /groups transfer <player>"
[server.pv.addon.groups.command.leave]
success = "&aVocê saiu do grupo"
[server.pv.addon.groups.command.create]
success = "&aO grupo foi criado:"
[server.pv.addon.groups.command.invite]
success = "&aConvite enviado para %s"
[server.pv.addon.groups.command.invite.error]
already_joined = "&cJogador já entrou no grupo"
usage = "&cUso: /groups invite <player>"
invite_self = "&cVocê não pode convidar a si mesmo"
[server.pv.addon.groups.command.join]
success = "&aVocê entrou no grupo"
[server.pv.addon.groups.command.join.error]
already_joined = "&cVocê já entrou neste grupo"
usage = "&cUso: /groups join <group uuid> [password]"
[server.pv.addon.groups.command.browse.error]
page_not_found = "&cPágina não encontrada"
no_groups = "&cNenhum grupo. Crie grupos usando \"/groups create\""
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c← Sair"
prev = "&e<"
invite = "&e✉ Convite"
join = "&e→ Entrar"
[server.pv.addon.groups.arg]
groups_uuid = "<grupo uuid>"
password = "<senha>"
permissions = "<lista de permissões>"
name = "<nome>"
page = "[page]"
[server.pv.addon.groups.notifications]
player_left = "%s saiu do grupo"
new_owner = "%s é o novo dono do grupo"
persistent_false = "O grupo não é mais persistente"
player_kicked = "%s foi expulso do grupo"
password_changed = "Senha do grupo alterada"
kicked = "&cVocê foi expulso do grupo"
persistent_true = "O grupo é persistente agora"
permissions_unset = "A proteção de permissões foi removida"
group_deleted = "O grupo foi excluído"
player_join = "%s juntou-se ao grupo"
password_unset = "Proteção por senha foi removida"
permissions_changed = "Permissões do grupo alteradas"
name_change = "Nome do grupo foi alterado de '%1$s' para '%2$s'"
[client.pv.activation]
groups = "Grupos"

View File

@ -0,0 +1,114 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7Игроки: &r%1$s&7, владелец: &r%2$s"
invite = "%1$s пригласил(а) вас в группу %2$s"
only_players = "&7Игроки: &r%s"
page = "&7Страница &r%s/%s"
[server.pv.addon.groups.tooltip]
group_uuid = "Uuid: %s"
password_protected = "Группа защищена паролем"
[server.pv.addon.groups.error]
not_in_group = "&cВы должны быть в группе для выполнения этой команды"
name_length = "&cИмя группы должно быть от %1$s до %2$s символов"
player_not_found = "&cНет игрока с таким именем"
unknown_subcommand = "&cНеизвестная команда. Доступные команды: %s"
unknown = "&cНеизвестная ошибка"
group_not_found = "&cГруппа не найдена"
uuid_parse = "&cОшибка распознавания Uuid. '%s' не является Uuid"
no_permission = "&cНет прав: '%s'"
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&cФильтр прав уже пуст"
unknown_flag = "&cНельзя снять флаг \"%1$s\". Доступные флаги: %2$s"
password_not_set = "&cГруппа уже не защищена паролем"
usage = "&cИспользование: /groups unset <флаг>"
[server.pv.addon.groups.command.ban.error]
already_banned = "&cИгрок уже заблокирован в этой группе"
usage = "&cИспользование: /groups ban <player>"
[server.pv.addon.groups.command.leave]
success = "&aВы покинули группу"
[server.pv.addon.groups.command.create]
success = "&aГруппа создана:"
[server.pv.addon.groups.command.join]
success = "&%s присоединился к группе"
[server.pv.addon.groups.command.join.error]
already_joined = "&cВы уже присоединились к этой группе"
usage = "&cИспользование: /groups join <uuid группы> [пароль]"
banned = "&cВы были заблокированы в этой группе"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&cНеизвестный флаг: \"%1$s\". Доступные флаги: %2$s"
usage = "&cИспользование: /groups set <флаг> <значение>"
identical_value = "&cЗначение идентично текущему значению"
[server.pv.addon.groups.command.unban.error]
not_banned = "&cИгрок не заблокирован в этой группе"
usage = "&cИспользование: /groups unban <player>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&cВы уже владелец группы"
usage = "&cИспользование: /groups transfer <игрок>"
[server.pv.addon.groups.command.kick.error]
not_in_group = "&cИгрок не находится в группе"
usage = "&cИспользование: /groups kick <player>"
[server.pv.addon.groups.command.invite]
success = "Приглашение отправлено %s"
[server.pv.addon.groups.command.invite.error]
already_joined = "&cИгрок уже присоединился к группе"
usage = "&cИспользование: /groups invite <игрок>"
banned = "&cИгрок заблокирован в этой группе"
invite_self = "&7Вы не можете пригласить самого себя"
[server.pv.addon.groups.command.browse.error]
page_not_found = "Страница не найдена"
no_groups = "&cНет групп. Создайте группу с помощью \"/groups create\""
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c←Выйти"
prev = "&e<"
invite = "&e✉ Пригласить"
join = "&e→ Присоединиться"
[server.pv.addon.groups.arg]
groups_uuid = "<uuid группы>"
password = "<пароль>"
permissions = "<список прав, разделенных запятыми>"
name = "<название>"
page = "[страница]"
[server.pv.addon.groups.notifications]
player_unbanned = "%s был разблокирован в группе"
player_left = "%s покинул группу"
banned = "&cВы были заблокированы в группе"
new_owner = "Новый владелец группы: %s"
player_banned = "%s был заблокирован в группе"
persistent_false = "Теперь группа будет удалена после перезагрузки сервера"
player_kicked = "%s исключён из группы"
password_changed = "Пароль группы изменён"
kicked = "&cВы были исключены из группы"
persistent_true = "Теперь группа не будет удалена после перезагрузки сервера"
permissions_unset = "Защита правами была удалена"
group_deleted = "Группа удалена"
player_join = "%s присоединился к группе"
password_unset = "Защита паролем удалена"
permissions_changed = "Права группы изменены"
name_change = "Название группы было изменено с '%1$s' на '%2$s'"
[client.pv.activation]
groups = "Группы"

View File

@ -0,0 +1,114 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7Уенчы: &r%1$s&7, хуҗа: &r%2$s"
invite = "%1$s Сезгә %2$s төркеменә чакырды"
only_players = "&7Уенчылар: &r%s"
page = "%2$s&7биттән &r%1$s&7бит&r"
[server.pv.addon.groups.tooltip]
group_uuid = "UUID: %s"
password_protected = "Төркем серсүз ярдәмендә сакланды"
[server.pv.addon.groups.error]
not_in_group = "&cБу боерыкны кабызу өчен Сез төркемгә булырга тиеш"
name_length = "&cТөркем исеме %1$s һәм %2$s символ арасында булырга тиеш"
player_not_found = "&cШундый исемле уенчы юк"
unknown_subcommand = "&cБилгесез боерык. Шундый боерыклар бар: %s"
unknown = "&cБилгесез хата"
group_not_found = "&cТөркем табылмады"
uuid_parse = "&cUUID белү хатасы. «%s» UUID түгел"
no_permission = "&cХокук юк: «%s»"
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&cХокук фильтры буш инде"
unknown_flag = "&c«%1$s» байрагын бетереп булмый. Шундый байраклар бар: %2$s"
password_not_set = "&cТөркем серсүз ярдәмендә сакланмады инде"
usage = "&cКулланылу: /groups unset <байрак>"
[server.pv.addon.groups.command.ban.error]
already_banned = "&cУенчы төркемдә блокланды инде"
usage = "&cКулланылу: /groups ban <уенчы>"
[server.pv.addon.groups.command.leave]
success = "&aСез төркемнән чыкты"
[server.pv.addon.groups.command.create]
success = "&aТөркем ясалды:"
[server.pv.addon.groups.command.join]
success = "&Сез төркемгә кушылды"
[server.pv.addon.groups.command.join.error]
already_joined = "&Сез төркемгә кушылды инде"
usage = "&cКулланылу: /groups join <төркемнең UUID-ы> [серсүз]"
banned = "&cСез бу төркемдә блокландыгыз"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&cБилгесез байрак: «%1$s». Шундый байраклар бар: %2$s"
usage = "&cКулланылу: /groups set <байрак> <кыйммәт>"
identical_value = "&cКыйммәт хәзерге кыйммәткә охшаш"
[server.pv.addon.groups.command.unban.error]
not_banned = "&cУенчы төркемдә блокланмады"
usage = "&cКулланылу: /groups unban <уенчы>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&cСез төркемнең хуҗасы инде"
usage = "&cКулланылу: /groups transfer <уенчы>"
[server.pv.addon.groups.command.kick.error]
not_in_group = "&cТөркемдә уенчы юк"
usage = "&cКулланылу: /groups kick <уенчы>"
[server.pv.addon.groups.command.invite]
success = "&a%s уенчыга чакыру җибәрелде"
[server.pv.addon.groups.command.invite.error]
already_joined = "&cУенчы төркемгә кушылды инде"
usage = "&cКулланылу: /groups invite <уенчы>"
banned = "&cУенчы төркемдә блокланды"
invite_self = "&cСез үзне чакыра алмыйсыз"
[server.pv.addon.groups.command.browse.error]
page_not_found = "&cБит табылмады"
no_groups = "Төркемнәр юк. «/groups create» боерыгын кулланып, төркемнәрне ясагыз"
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c← Чыгу"
prev = "&e<"
invite = "&e✉ Чакыру"
join = "&e→ Кушылу"
[server.pv.addon.groups.arg]
groups_uuid = "<төркемнең UUID-ы>"
password = "<серсүз>"
permissions = "<өтер белән бүленгән хокук исемлеге>"
name = "<исем>"
page = "[бит]"
[server.pv.addon.groups.notifications]
player_unbanned = "%s төркемдә блоктан азат ителде"
player_left = "%s төркемнән чыкты"
banned = "&cСез төркемдә блокландыгыз"
new_owner = "%s — төркемнең яңа хуҗасы"
player_banned = "%s төркемдә блокланды"
persistent_false = "Төркем даими түгел"
player_kicked = "%s төркемнән чыгарылды"
password_changed = "Төркемнең серсүз үзгәртелде"
kicked = "&cСез төркемнән чыгарылды"
persistent_true = "Төркем даими хәзер"
permissions_unset = "Хокук ярдәмендә саклау бетерелде"
group_deleted = "Төркем бетерелде"
player_join = "%s төркемгә кушылды"
password_unset = "Серсүз ярдәмендә саклау бетерелде"
permissions_changed = "Төркемнең хокукы үзгәртелде"
name_change = "«%1$s» төркем яңа исеме: «%2$s»"
[client.pv.activation]
groups = "Төркемнәр"

View File

@ -0,0 +1,97 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7玩家&r%1$s&7&r所有者%2$s"
invite = "%1$s 邀请你加入语音群组 %2$s"
only_players = "&7玩家&r%s"
page = "&7第&r %s &7页/共&r %s &7页"
[server.pv.addon.groups.tooltip]
group_uuid = "UUID%s"
password_protected = "群组受密码保护"
[server.pv.addon.groups.error]
not_in_group = "&c你需要在群组中才能执行此命令"
name_length = "&c群组名称长度应介于 %1$s 和 %2$s 个字符之间"
player_not_found = "&c未找到此玩家"
unknown_subcommand = "&c未知命令。可用命令%s"
unknown = "&c未知错误"
group_not_found = "&c未找到群组"
uuid_parse = "&cUUID 解析错误。“%s”不是 UUID"
no_permission = "&c没有权限“%s”"
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&c未知标志“%1$s”。可用标志%2$s"
usage = "&c用法/groups set <标志> <值>"
identical_value = "&c此值与当前值相同"
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&c权限过滤器已为空"
unknown_flag = "&c无法设置标志“%1$s”。可用标志%2$s"
password_not_set = "&c群组已不受密码保护"
usage = "&c用法/groups unset <标志>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&c你已是此群组的所有者"
usage = "&c用法/groups transfer <玩家>"
[server.pv.addon.groups.command.leave]
success = "&a你离开了群组"
[server.pv.addon.groups.command.create]
success = "&a群组已创建"
[server.pv.addon.groups.command.invite]
success = "&a邀请已发送至 %s"
[server.pv.addon.groups.command.invite.error]
already_joined = "&c玩家已加入此群组"
usage = "&c用法/groups invite <玩家>"
invite_self = "&c你不能邀请你自己"
[server.pv.addon.groups.command.join]
success = "&a你加入了群组"
[server.pv.addon.groups.command.join.error]
already_joined = "&c你已加入此群组"
usage = "&c用法/groups join <群组 UUID> [密码]"
[server.pv.addon.groups.command.browse.error]
page_not_found = "&c未找到页面"
no_groups = "&c无群组。使用“/groups create”创建群组"
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c← 离开"
prev = "&e<"
invite = "&e✉ 邀请"
join = "&e→ 加入"
[server.pv.addon.groups.arg]
groups_uuid = "<群组 UUID>"
password = "<密码>"
permissions = "<被逗号分开的权限列表>"
name = "<名称>"
page = "[页数]"
[server.pv.addon.groups.notifications]
player_left = "%s 离开了群组"
new_owner = "%s 是此群组的新所有者"
persistent_false = "此群组不再被固定"
player_kicked = "%s 被踢出此群组"
password_changed = "群组密码被更改"
kicked = "&c你被踢出此群组"
persistent_true = "此群组被固定"
permissions_unset = "权限保护被移除"
group_deleted = "群组被删除"
player_join = "%s 加入了群组"
password_unset = "密码保护被移除"
permissions_changed = "群组权限被更改"
name_change = "群组名称由“%1$s”更改为“%2$s”"
[client.pv.activation]
groups = "群组"

View File

@ -0,0 +1,97 @@
[server.pv.addon.groups]
divider = "&8&m-----------------------------------------------------"
[server.pv.addon.groups.format]
group_name = "&6[%s]"
players_and_owner = "&7玩家&r%1$s&7&r所有者%2$s"
invite = "%1$s 邀請你加入語音群組 %2$s"
only_players = "&7玩家&r%s"
page = "&7第&r %s &7頁/共&r %s &7頁"
[server.pv.addon.groups.tooltip]
group_uuid = "UUID%s"
password_protected = "群組受密碼保護"
[server.pv.addon.groups.error]
not_in_group = "&c你需要在群組中才能執行此指令"
name_length = "&c群組名稱長度應介於 %1$s 和 %2$s 個字元之間"
player_not_found = "&c未找到此玩家"
unknown_subcommand = "&c未知指令。可用指令%s"
unknown = "&c未知錯誤"
group_not_found = "&c未找到群組"
uuid_parse = "&cUUID 解析錯誤。「%s」不是 UUID"
no_permission = "&c沒有權限「%s」"
[server.pv.addon.groups.icons]
password_protected = "&6⛨"
[server.pv.addon.groups.command.set.error]
unknown_flag = "&c未知標誌「%1$s」。可用標誌%2$s"
usage = "&c用法/groups set <標誌> <值>"
identical_value = "&c此值與當前值相同"
[server.pv.addon.groups.command.unset.error]
permissions_not_set = "&c權限篩檢程式已為空"
unknown_flag = "&c無法設置標誌「%1$s」。可用標誌%2$s"
password_not_set = "&c群組已不受密碼保護"
usage = "&c用法/groups unset <標誌>"
[server.pv.addon.groups.command.transfer.error]
already_owner = "&c你已是此群組的所有者"
usage = "&c用法/groups transfer <玩家>"
[server.pv.addon.groups.command.leave]
success = "&a你離開了群組"
[server.pv.addon.groups.command.create]
success = "&a群組已創建"
[server.pv.addon.groups.command.invite]
success = "&a邀請已發送至 %s"
[server.pv.addon.groups.command.invite.error]
already_joined = "&c玩家已加入此群組"
usage = "&c用法/groups invite <玩家>"
invite_self = "&c你不能邀請你自己"
[server.pv.addon.groups.command.join]
success = "&a你加入了群組"
[server.pv.addon.groups.command.join.error]
already_joined = "&c你已加入此群組"
usage = "&c用法/groups join <群組 UUID> [密碼]"
[server.pv.addon.groups.command.browse.error]
page_not_found = "&c未找到頁面"
no_groups = "&c無群組。使用「/groups create」創建群組"
[server.pv.addon.groups.button]
next = "&e>"
leave = "&c← 離開"
prev = "&e<"
invite = "&e✉ 邀請"
join = "&e→ 加入"
[server.pv.addon.groups.arg]
groups_uuid = "<群組 UUID>"
password = "<密碼>"
permissions = "<被逗號分開的權限列表>"
name = "<名稱>"
page = "[頁數]"
[server.pv.addon.groups.notifications]
player_left = "%s 離開了群組"
new_owner = "%s 是此群組的新所有者"
persistent_false = "此群組不再被固定"
player_kicked = "%s 被踢出此群組"
password_changed = "群組密碼被更改"
kicked = "&c你被踢出此群組"
persistent_true = "此群組被固定"
permissions_unset = "權限保護被移除"
group_deleted = "群組被刪除"
player_join = "%s 加入了群組"
password_unset = "密碼保護被移除"
permissions_changed = "群組權限被更改"
name_change = "群組名稱由「%1$s」更改為「%2$s」"
[client.pv.activation]
groups = "群組"