Поднимаем свой полноценный игровой Minecraft сервер с мини-играми. Часть 3. Устанавливаем мини-игры
Часть 1. Выбираем и устанавливаем сервер
Часть 2. Устанавливаем карту для лобби сервера
И так, лобби у нас готово, теперь нам нужно запустить сервера с мини-играми и прокси сервер.
Для этого нам понадобится такие плагины:
- BungeeCord — прокси, который объединяет сервера в одну сеть и делает незаметным переход между ними для игрока
- SuperLobbyDeluxe — отличный плагин, который позволяет настраивать лобби, ограничивать права игроков на создании и разрушение блоков, отключать смену погоды и времени и многое другое.
- Citizens — плагин для создания npc
- Citizens Server Selector — плагин для создания npc с командами перехода между серверами
- ItemJoin — плагин, позволяющий выдать игроку определенные предметы при подключении к серверу
- Chest Commands — прекрасный плагин для создания графического пользовательского интерфейса
- Murder Mystery — популярная мини-игра
- Holographic Displays — плагин, позволяющий создавать голографические надписи, требуется, как зависимость, для Murder Mystery
- BSkyBlock — еще одна популярная мини-игра
И так, скачиваем все плагины.
Так же создаем три новых папки в корневой папке сервера:
~/BungeeCord
~/MurderMystery
~/SkyBlock
В папку BungeeCord копируем скачаный файл BungeeCord.jar, в MurderMystery и SkyBlock копируем paper-1.15.2.jar. Так же во все новые папки копируем файл start.sh из PirateBay.
Файл start.sh редактируем таким образом, что для каждого сервера у нас было своё название процесса для программы screen. Так же для BungeeCord будет другой jar файл, который мы скачали ранее. Я сделал это следующим образом.
BungeeCord:
#!/bin/sh
screen -S BungeeCord java -Xms512M -Xmx512M -jar BungeeCord.jar
MurderMystery:
#!/bin/sh
screen -S MurderMystery java -Xms1G -Xmx1G -XX:+UseConcMarkSweepGC -jar Paper-1.15.2.jar
SkyBlock:
#!/bin/sh
screen -S SkyBlock java -Xms1G -Xmx1G -XX:+UseConcMarkSweepGC -jar Paper-1.15.2.jar
Обратите внимание, суммарно теперь 4 сервера будут потреблять 3.5Gb ОЗУ, поэтому мне пришлось увеличить конфигурацию дроплета на хостинге до 4Gb.
По уже пройденному сценарию запускаем 3 новых сервера, не забывая редактировать файл eula.txt.
После первого запуска сервера BungeeCord, нам нужно в его конфигурации прописать 3 будущих сервера: PirateBay, MurderMystery, SkyBlock. Для этого в файле ~/BungeeCord/config.yml добавляем следующие сервера, удалив тот, что был создан по умолчанию:
servers:
lobby:
motd: '&1JWelcome to Lobby'
address: localhost:25565
restricted: false
murdermystery:
motd: '&1JWelcome to Murder Mystery'
address: localhost:25566
restricted: false
skyblock:
motd: '&1Welcome to Sky Block'
address: localhost:25567
restricted: false
так же ставим ip_forward: true и не забываем поменять online_mode: true на false, если у вас не лицензионный Minecraft.
После первого запуска серверов MurderMystery и SkyBlock, а также для PirateBay правим их server.properties, выставив соответствующие порты из bungeecord. Так же нужно установить online-mode=false, что бы bungeecord мог проксировать наши сервера:
для PirateBay:
server-port=25565
query.port=25565
online-mode=false
для MurderMystery:
server-port=25566
query.port=25566
online-mode=false
для SkyBlock:
server-port=25567
query.port=25567
online-mode=false
Так же для того, что бы заработал Citizens Server Selector, нам нужно в файле spigot.yml для сервера PirateBay проставить параметр bungeecord: true
Перезапускаем все сервера.
Обратите внимание, что теперь у нас изменился порт для подключения в игровом клиенте, согласно конфигурации bungeecord теперь он 25577.
Теперь время настроить наш лобби-сервер. Для этого копируем скачанные плагины SuperLobbyDeluxe, Citizens, Citizens Server Selector, LuckPerms, ItemJoin и Chest Commands в папку плагинов нашего PirateBay сервера ~/PirateBay/plugins. Перезапускаем сервер и подключаемся к нему из игры.
Первым делом выберем место на карте, где у нас должны появляться игроки и выполним команду:
/superlobby setspawn @a
Теперь выбираем место для npc, который будет перенаправлять нас на сервер мини-игры и выполняем команды:
/css create &a&lMurderMystery
/css setCmd join murdermystery
/css setDesc &eOnline: &1{players}
Наш npc создался и если мы нажмем на него правой кнопкой мыши, нас перенаправит на сервер MurderMystery. Для перехода между серверами вы так же можете использовать команду /server:
/server murdermystery
/server skyblock
/server lobby
Тоже самое проделываем и для SkyBlock:
/css create &5&lSkyBlock
/css setCmd join skyblock
/css setDesc &eOnline: &1{players}
У нас должно получиться следующее:

Теперь настроим меню игрока. Для этого нам нужно подправить конфигурацию плагина ItemJoin.
Открываем ~/PirateBay/plugins/ItemJoin/items.yml и заменяем содержимое нашим:
# --{ =-=-=-=-=-=-=-=-=-= ItemJoin's Custom Item Configurations, by RockinChaos =-=-=-=-=-=-=-=-=-= }--
# See the tutorial page for a more in-depth explaination; https://github.com/RockinChaos/ItemJoin/wiki
items-Version: 6
items-Delay: 2
items-Overwrite: false
items-Spamming: false
items-RestrictCount: false
items:
compass:
id: COMPASS
slot: 0
name: '&1Lobby menu'
commands:
- 'menu'
triggers: join, respawn, world-change
permission-node: itemjoin.compass
enabled-worlds: Void
itemflags: death-drops, self-drops, inventory-modify
Также поступаем и с ~/PirateBay/plugins/ChestCommands/menu/example.yml:
######################
#+ +#
# MENU SETTINGS #
#+ +#
######################
menu-settings:
# REQUIRED
# Appears as the title of the menu.
name: '&1Menu'
# REQUIRED
# The number of rows in the menu.
rows: 3
# OPTIONAL (you can remove this or set it to '')
# Bind multiple commands using ; (command: 'menu; m; me')
command: 'menu'
# OPTIONAL
# How frequently the menu will be refreshed, in seconds.
# Useful if you have variables in items' descriptions.
auto-refresh: 5
# OPTIONAL
# This command command will be executed when the menu is opened.
# Supports all the icon command types.
open-action: 'tell: &eYou opened the example menu.'
# OPTIONAL
# The menu will open only when right-clicking with a compass.
open-with-item:
id: compass
left-click: false
right-click: true
######################
#+ +#
# ITEMS #
#+ +#
######################
lobbycmd:
COMMAND: 'server lobby'
NAME: '&eReturn to the Main Lobby'
LORE:
- 'Returns to the Main Lobby'
ID: enderpearl
POSITION-X: 1
POSITION-Y: 1
spawn:
COMMAND: 'spawn'
NAME: '&eBack to Spawn'
LORE:
- 'Left click to move to Spawn Point'
ID: turtleegg
POSITION-X: 1
POSITION-Y: 2
skyblock:
COMMAND: 'server skyblock'
NAME: '&ePlay SkyBlock'
LORE:
- 'Left click to play SkyBlock'
ID: grassblock
POSITION-X: 4
POSITION-Y: 1
murdermystery:
COMMAND: 'server murdermystery'
NAME: '&ePlay Murder Mystery'
LORE:
- 'Left click to play Murder Mystery'
ID: bow
POSITION-X: 5
POSITION-Y: 1
Перезапускаем сервер PirateBay. У нас должно появиться меню в виде компаса:

И при нажатии правой кнопки мыши вот такое игровое меню:

Но если мы заберем у нашего игрока роль оператора, выполнив команду
/deop Dinikin
то при попытке открыть меню компаса, мы получим сообщение, что у нас нет прав на открытие файла example.yml. И тут нам на помощь приходит плагин LuckPerms. Он позволяет настроить права на выполнение определенных команд для определенных групп пользователей или даже конкретных игроков.
Возвращаем нашему пользователю роль оператора в консоли сервера:
/op Dinikin
и там же вводим:
lp user Dinikin permission set luckperms.*
предоставим нам права админа на все команды плагина LuckPerms.
Переходим в игру и выполняем команду:
/lp editor
которая сгенерирует ссылку на сайт плагина, по которой нам нужно перейти для дальнейшего редактировани прав:

Переходим по ссылке и на открывшейся странице добавляем дефолтной группе пользователей права chestcommands.open.example.yml:

Жмем Save в правом верхнем углу, копируем сгенерированную команду и выполняем ее в игре. Результатом будет следующее сообщение:

Снова забираем у себя права оператора и пробуем открыть игровое меню. Теперь это должно получиться и у простого пользователя:

Теперь можете перенести плагины ItemJoin и Command Chest c соджержимым их папок на сервера мини-игр SkyBlock и MurderMystery, что бы не проделывать эти же дейтсвия повторно.
Так же копируем соответствующие плагины мини-игр. Для Murder Mystery так же копируем плагин Holographic Displays и SuperLobbyDelux. Перезарускаем сервера мини-игр.
Для LuckPerms плагина на обоих серверах повторяем действия, что бы предоставить игрокам доступ к меню.
И так, игра SkyBlock у нас готова, вы можете перейти на нее через npc либо меню. Что бы начать выживание, просто наберите команду /is или /island и выберите тип острова.

Если вы хотите, что бы для всех новых игроков остров создавался автоматически, поставьте в файле ~/SkyBlock/plugins/BentoBox/addons/BSkyBlock/config.yml для параметра create-island-on-first-login свойство enable: true и перезапустите сервер.
Осталось за малым: подобрать и импортировать карту для мини-игры Murder Mystery, а так же настроить её.
Я скачал эту карту, распаковал архив и залил на сервер в папку ~/MurderMystery. Незабудьте в файле ~/MurderMystery/server.properties изменить значение свойства level-name=world на имя вашей папки с картами. Перегружаем сервер и переходим на карту MurderMystery:

Как настроить игру Murder Mystery, вы можете в этом видео
Поздравляю, мы закончили с установкой игрового сервера. Нам все еще осталось сделать некоторые косметические настройки, такие как приветственные и информационные надписи. Однако эти изменения уже выходят за рамки этого туториала, но я думаю, вы без проблем сможете разобраться в конфигурационных файлах плагина SuperLobbyDelux.
На съемках «Народа против Гориллы Гродда» заметили намеки на появление Короля Соломона
Premium Collectibles Studio открыла предзаказ на статую ксеноморфа из фильма Чужой высотой 124 сантиметра
Серии Crash Bandicoot исполнилось 30 лет, но Xbox практически никак не отметила юбилей
Градостроительный симулятор XIRI Oasis Cities посвящен выживанию города будущего
Разработчики Moss закрыли студию после релиза игры на всех платформах
Авторы Fable пообещали сделать боевую систему глубокой вместо копирования старых RPG
По данным СМИ, Sony забрала у студии Kojima Productions движок Decima
Российская инди-студия анонсировала градостроительный симулятор XIRI Oasis Cities