Поднимаем свой полноценный игровой 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 и заменяем содержимое нашим:

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:

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.

 

Источник

games, Minecraft, minecraft java edition, minecraft server, mini, paper, spigot, tutorial, vanilla, Майнкрафт, майнкрафт сервер, установка сервера

Читайте также