Туториал «От а до я» Создания плагина Minecraft

Сегодня я заново открываю цикл статей и на этот раз. забрасывать его не буду и даже буду отвечать на ваши коментарии. Ну что ж, от слов к делу. Поехали! Подготовка Для написания своих плагинов нам понадобятся:

  • Среда разработки Java-приложений Eclipse;
  • Api Spigot: https://hub.spigotmc.org/nexus/content/groups/public/org/spigotmc/spigot-api/ .
  • Документация по Bukkit API.

Так же понадобятся базовые знания по Java. Если таковых нет, то вот ссылки по “поднятию скила”:

  • Основы Java для начинающих Сайт рассчитан на тех, кто только начинает изучать Java
  • Java (Beginner) Programming Tutorials Видео-туториал по Ява, рассчитанный для новичков(я начинал с него).
  • Справочник по java Я бы назвал это шпаргалкой по яве
  • Java эксперт И пусть вас не пугает название. Здесь можно найти множество примеров решения на те или иные задачи.

Установка и настройка EclipseЕсли вы уже знакомы с Eclipse или увас другая IDE, то пропускайте этот раздел.Проблем с установкой эклипса возниктуть не должно: его нужно просто распаковать в любоую папку и запустить. Сразу после этого, эклипс попросит указать, какое рабочее пространство(workspace) сейчас открыть. Это папка, в которой будут сохранятся все созданные проекты и где ее располагать – лично ваше решение. Если вам всеранво, то оставляйте все как есть. Если вдруг захотите изменить рабочее пространстро, то не переживайте: при каждом следующем запуске, эклипс сново спросит вас о рабочем пространстве. Таких пространств можно наделать сколько угодно и каждое может быть настроено по разному, под какие-то определенные цели. К примеру у меня есть 2 рабочих пространства: для написания обычных java-приложений и для написания плагинов под “ведро”. Если вдруг вам надоест это сообщение, там есть галочка «Use this as the default and do not ask again», что позволяет задать workspace по-умолчанию.+Как только вы определитесь с выбором места и загрузится Eclipse, то мы увидим пригласительную вкладку… которую сразу же закрываем. Она нам ни к чему. Теперь же мы видим рабочее пространство самого эклипса. Из всего этого, нам понадобится только следующие панели:Последние 2 описанные панели можно вообще свернуть, т.к. пользоваться ими будем редко. Рабочее место почти готово. Осталось только поставить еще 2 галочки в настройках. Переходим в меню Window -> Preferences, далее по древу General -> Editor -> Text Editors и выставляем галочку «Show line numbers», чтобы включить отображение нумерации строк. Теперь переходим в General -> Workspace и в группе «Text file encoding» выставляем кодировку UTF-8, самым установив кодировку по-умолчанию. С установкой и настройкой покончено. Теперь поясню, как создавать новый проект для плагина. Это можно сделать одим из 3-х способов:

  • Меню File -> New -> Java Project
  • Кнопка на панели инструментов
  • Правый клик в Package Explorer

Перед нами откроется окно New Java Project. В Project name указываем название нашему проекту Нажимаем Next. В появившемся окне, переходим на вкладку Libraries, нажимаем кнопку Add External JARs и выбираем скаченный Bukkit API Жмем Finish. Слева, в Package Explorer, показался наш проект с папкой src, в которой будут храниться наши исходные коды. Теперь созданим новый класс. Делается это точно так же, как и с Java Project. В окне New Java Class нам понадобятся только следующие графы:

  • Package указывается пакет, в котором будет хранится наш класс. Формат имени должен быть примерно такой: ru.dmitriymx.bukkit.tutorial. Если в двух словах и на пальцах, то пакеты в ява – это пространство имен(namespace) или «виртуальные папки», в которые помещаются классы. Подробнее про это можно прочитать здесь: [1], [2], [3].

Все остальные пункты оставляем как есть и жмем Finish. Вот теперь переходим непосредственно к коду.Пишем простой плагин Как только мы создали новый класс, нашему взору предстает уже готовый пустой шаблон Пока это всего лишь пустой класс, который абсолютно бесполезен в быту. Будем это исправлять. Изменяем вот это на это Эклипс подчеркнет нам JavaPlugin, указывая на ошибку в коде. Если подвести мышь к такому подчеркнутому коду, то откроется окошко с описанием ошибки и способы ее решения. В данном случае нам нужно импортировать класс из Bukkit API, для чего выбираем пункт «Import ‘JavaPlugin’(org.bukkit.plugin.java)» Сразу же замечаем, как над всем нашим кодом вписалась строчка Немного теоретического материала. У плагинов есть 3 основных метода: onEnable(), onDisable() и onLoad(). Первые два отвечают за включение и отключение плагина, а последний срабатывает когда плагин непосредственно подгружается в память сервера. Из этого следует, что onLoad выполняется самым первым, но сам плагин начинает работать только после вызова onEnable со стороны сервера. По выключению или перезагрузки сервера, вызывается метод onDisable. С “точками входа-выхода” разобрались. Давайте теперь напишем что-нибудь более-менее работоспособное. Приведем общий код класса к следующему виду: кому невидна вторая часть: о что мы сейчас написали – готовый плагин. Все что он делает – это пишет в чат о приходе и уходе игрока на сервер. Разбираться в его работе будем по порядку(а как иначе?). Сперва обращу внимание на строку объявления класса. Как видно, к нашему классу добавилось расширение Listener. Не углубляясь в дебри явы, скажу проще: указывая данное расширение, мы тем самым расширяем область применения класса не только как плагина(JavaPlugin), но и как обработчика событий(Listener). А вот как раз в методе onEnable() мы регистрируем наш класс на сервере как обработчик событий(this – это указание «на самого себя», если кто забыл). Далее следует 2 наших обработчика событий onJoin() и onQuit(). Первый отвечает а событие входа игрока на сервер, а второй – за уход. С помощью метода event.getPlayer().sendMessage(), мы можем отправить сообщение тому игроку, которое вызвал данное событие(в нашем случае игроку, который зашел). Статический класс ChatColor хранит в себе константы цветов для окраски. Думаю как им пользоваться уже видно из примера. Так же, оба наших обработчка оповещают других игроков на сервере о произошетших событиях, но делают это по разному. В onJoin() с помощью метода event.setJoinMessage() мы меняем привычное сообщение «Player joined the game» на любое другое. А в onQuit() мы поступили инача(в целях примера): убрали вывод сообщения о выходе и сообщаем об этом через метод getServer().broadcastMessage(), который просто посылает всем игрокам на сервере указанное сообщение.+ Дело осталось за малым: написание важного файлика plugin.yml и упаковка всего этого в jar-файл. plugin.yml – это файл описания плагина. В нем задается название плагина, главный класс, описание и какие комманды зарегестрировать за плагинов(об этом позже) и т.д. В нашем случае, файлик должен выглядеть так: Ой, забфл сказать, где этот файлик должен находится. Жмем правой кнопкой мыши в PackageExplorer по папке src и через меню New выбираем File. В поле File name пишем plugin.yml и жмем Finish. В открывшемся текстовом редакторе, пишем то, что я указывал выше. Всё сохраняем и переходим к последней фазе: упаковке. Правый тык по папке src -> Export. В древе папок, открываем Java и выбираем JAR file и жмем Next. Из голочек оставляем только «Export generated class files and resources» и «Compress the contents of the JAR file». В поле JAR file указываем, куда будем сохранять полученный плагин. После нажатия на Finish, плагин можно класть в папку plugins, запускать сервер и проверять его работу. Видите? Это совсем просто. С практикой вы наберетесь больше опыта и сможете делать более крутые плагины, даже такие легендарные как WorldEdit и WorldGuard. Источник1234http://dmitriymx.ru/blog/pishem-prostoj-plagin-dlya-bukkit

Это статья является некоей базой для написания плагинов. По ней Вы сможете написать свой первый и последующие плагины. Для начала Вам понадобится jar архив с сервером bukkit/craftbukkit,среда для программирования(мне более удобна NetBeans), Java SDK, описание API bukkit’а. Помните, что совместимость версий идёт по нарастающей: первые версии-1.8.1 и 1.0.0 — … Это два разряда, совместимость между которыми обеспечивать нужно отдельно. Главные места я постараюсь выделить так, а места на которые нужно обратить внимание так.Мы будем писать на 1.0.0+. Если у Вас есть среда, сервер, мы можем приступать. Для начала создайте новый проект java: иблиотека классов java. После этого мы должны внутрь нашего проекта подключить в качестве библиотеки наш сервер.В пакете по умолчанию нам нужно создать файл YAML plugin.yml. Как наполнять его описано в http://wiki.bukkit.org/Plugin_YAML/ru .Далее создадим пакет. Название пишем любое, но оно не должно содержать пробелы и любые не буквенные символы, кроме точек нижнего подчёркивания, цифр, но он не должен на них начинаться(подчёркивания не касается).

  1. Несовпадения имен пакетов гарантированы при использовании имени домена в обратном порядке: com.javasoft.jag — «com» и «edu» — обычно в верхнем регистре, но теперь — рекомендуется в нижнем.
  2. Имена классов — описательные существительные, с заглавной буквой в начале каждого слова: PolarCoords (ПолярныеКоординаты). Часто (но не всегда) интерфейсы называются «что-то-able», например, «Runnable» (запускаемый), «Sortable» (упорядочиваемый). Предупреждение: java.util.Observable не интерфейс, а java.util.Observer — интерфейс. Эти два имени плохо продуманы.
  3. Переменные и поля — существительное/фраза с существительным, с первой буквой в нижнем регистре и первой буквой подслова — в верхнем: currentLimit (текущийПредел).
  4. Имена методов — глагол/фраза с глаголом, с маленькой буквы, каждое подслово — с большой: calculateCurrentLimit (вычислитьТекущийПредел).
  5. Имена констант (с модификатором final) пишутся большими буквами: UPPER_LIMIT

Теперь мы начнём наполнять пакет.Нам нужен главный класс. Создаём в нашем классе новый класс java и назовём его любым именем (может содержать буквы и цифры (но не сначала)). Рекомендую его назвать main, дабы не путаться.Помните: т.к. java является кроссплатформенной, то регистр имеет значение. Теперь открываем этот класс (если он не открыт) и видим нечто подобное:Код:

package названиеВашегоПакета;  public class названиеВашегоКласса {  }

Комментарии не влияют на код и пишутся так: между /* и */ или после // вся строка. Класс — структурная единица языка, вторая по величине, после пакета. Метод — структурная единица класса, которая может принимать, возвращать значения и выполнять различные действия. Переменная — объект, который может хранить некоторую информацию. Тела всех методов и классов находятся внутри фигурных скобок, после их объявления. У всех классов, методов и переменных есть 3 модификатора доступа: public — доступна из любого места, protected — доступна только внутри пакета и private — доступна только внутри класса.Расширим стандартный класс JavaPlugin — добавим после названия Вашего класса и до открывающейся фигурной скобки:Код:

extends JavaPlugin

Компилятор должен среагировать и ввести нас в курс, что у нас в коде ошибка на слове JavaPlugin. Если в компиляторе есть структура, отвечающая за полуавтоматическое исправление ошибок, то она предложит добавить император импорта …JavaPlugin. Разрешим ему. Впоследствии я не буду упоминать такие моменты.Переопределяем стандартный метод JavaPlugin, вводим в теле класса:Код:

@Override public void onEnable() {  }

Это метод, который вызывается при старте нашего плагина. Также существуют методы public void onDisable() и public void onLoad(), они соответственно запускаются при выключении и подгрузке плагина.В данном методе желательно подгружать все нужные ресурсы для работы плагина, шерстить файл настроек и пр. Давайте введём в теле класса пару переменных и произведём подгрузку файла настроек.Создадим общедоступную переменную строкового типа:Код:

public String название_переменной;

и булеву переменную, для доступа изнутри класса:Код:

private boolean другое_название;

Чтобы удобнее взаимодействовать с кодом, создадим приватный метод для проверки и создания файла настроек. Метод не должен принимать никаких данных, и возвращать (void). В теле метода инициализируем локальную переменную для работы с конфигом:Код:

FileConfiguration config = this.getConfig();

Теперь начинаем шерстить настроечный файл.Проверим, есть ли в нём булево поле «enable», если нет, то создадим его и присвоим ему значение true:Код:

if(!config.isBoolean("enable"))     config.set("enable", true);

Теперь запишем значение этого поля в ранее определённую булеву переменную:Код:

другое_название = c.getBoolean("enable");

Проделаем ту же операцию с строковым полем «какое-то_поле»:Код:

if(!config.isString("название_переменной"))     config.set("какое-то_поле", "значение_по_умолчанию"); название_переменной = config.getString("какое-то_поле");

По окончании операций с файлом настроек, сохраним его:Код:

this.saveConfig();

Вызываем этот метод в теле onEnable().Если значение, которое мы получили из поля «enable» равно false, то выключаем плагин:Код:

if(!другое_название) {  getServer().getPluginManager().disablePlugin(this); return; }

Теперь создадим базу для обработки событий. Для этого нам понадобится класс-инструментарий Listener.В качестве такого класса можно использовать основной класс, внутренний класс или новый класс.После названия класса вводим:Код:

implements Listener

Нам подойдёт одна из следующих конструкций, они применяются в зависимости от нужд и количества различных событий, предполагаемых к обработке:Код:

Bukkit.getServer().getPluginManager().registerEvents(new название_класса_обработчика(), this); //Вызываем в главном классе, желательно в методе void onEnable()  Bukkit.getServer().getPluginManager().registerEvents(переменная_объекта_класса_обработчика, this); //Вызываем в главном классе, желательно в методе void onEnable(), но после инициализации  переменной  Bukkit.getServer().getPluginManager().registerEvents(this, переменная_содержащая_объект_главного_класса_плагина); //Вызываем в самом классе-обработчике, если это основной класс, то не рекомендую использовать для большого количества различных событий

Вот так выглядит обработка простого события входа игрока на сервер и оповещение лично всех игроков, которые онлайн, с проверкой наличия разрешения:Код:

@EventHandler public void onPlayerJoin(PlayerJoinEvent e) {     if(e.getPlayer().hasPermission("не_показывать_что_я_вошёл"))         return;     String name = e.getPlayer().getName();     for(Player p:Bukkit.getServer().getOnlinePlayers())         if(!p.getName().equals(name))             p.sendMessage("Игрок "+name+" вошёл на сервер!"); }

Переходим к обработчикам команд.После названия класса вводим:Код:

implements CommandExecutor

Нам подойдёт одна из следущих конструкций для определения такого класса для сервера. Но, в отличие от событий, такой метод вызывается от имени плагина:Код:

getCommand("название_команды").setExecutor(new название_класса_обработчик()); //Вызываем в главном классе, желательно в методе void onEnable()  getCommand("название_команды").setExecutor(переменная_объекта_класса_обработчика); //Вызываем в главном классе, желательно в методе void onEnable(), но после инициализации  переменной  переменная_содержащая_объект_главного_класса_плагина.getCommand("название_команды").setExecutor(this); //Вызываем в самом классе-обработчике

Метод, обрабатывающий команды — переопределённый методКод:

public boolean onCommand(CommandSender sender, Command command, String label, String[] args)

Данный метод принимает несколько значений: CommandSender sender — отправляющий сообщение, может быть объектом ConsoleCommandSender, при отправке из консоли, и Player, при отправке игроком. Command command — объект отправленной команды. String label — название команды без символа ‘/’ и аргументов. String[] args — список аргументов команды, если их нет — то равен null.Как Вы должны были заметить, метод возвращает boolean, означающий выполнена команда верно или нет. Вот так выглядит обработка простой команды, приветствующей определённого игрока с запретом на использование из консоли/без ника игрока/на себя:Код:

@Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {     if(sender instanceof ConsoleCommandSender)     {  sender.sendMessage("Запрещено использовать из консоли!"); return true; }     if(args==null||args.length!=1||Bukkit.getServer().getPlayer(strings[0])==null)     {  sender.sendMessage("Ник игрока указан неверно!"); return false; }     if(Bukkit.getServer().getPlayer(strings[0]).getName().equals(sender.getName()))     {  sender.sendMessage("Запрещено использовать на себя!"); return false; }     Bukkit.getServer().getPlayer(strings[0]).sendMessage("Вас приветствует "+sender.getName()+"!");     return true; }

Я уверен, что данных знаний достаточно для написания своего собственного плагина. Можно приступать!

19 авг в 2020 63K

Все мультиплеерные онлайн-игры работают на отдельных серверах. Бывает, что предлагаемые параметры пользователя не устраивают. В таких случаях оптимальным вариантом будет установка собственного сервера. Сегодня расскажем о том, какими способами можно создать сервер Minecraft.

Зачем создавать свой сервер в Майнкрафт

Создавая собственный сервер в Minecraft, пользователь получает практически безграничный контроль над игровым процессом. В нем можно создавать собственные правила, устанавливать какие-либо моды или фильтры, приглашать своих друзей в приват и так далее. Это не так сложно и дорого, как может показаться на первый взгляд. Но это не все преимущества, есть еще несколько:

  • Гибкая настройка конфигураций.
  • Собственная библиотека материалов, которую можно пополнять на свое усмотрение. 
  • Выбор любого удобного способа создания и обслуживания сервера.
  • Возможность заработать на аренде. Этот вариант наиболее распространен, так как позволяет окупить все затраты, связанные с поддержкой игрового сервера. 
  • Возможность создать приватный сервер только для друзей.

Как создать внутренний сервер в Realms

Майнкрафт – очень крупная игра с огромной базой пользователей. Естественно, что разработчики игры Mojang AB совместно с Microsoft создали готовое решение для создания сервера – Realms. На данный момент оно доступно в виде ежемесячной подписки Realms Plus и стоит 7,99 долларов США. В дополнение еще прилагается куча пакетов текстур, скинов и мэшапов, облачное хранилище, пятьдесят миров Майнкрафт, а еще одновременное подключение к серверу до 10 игроков.

Плюсы: Так как это предложение от официальных разработчиков, пользователю не придется заботиться о защите, постоянно обновлять ПО или создавать резервные копии. Все эти заботы на себя возложили разработчики.

Минусы у подобного сервера тоже имеются. Пользоваться сервером Realms смогут только владельцы лицензионной версии игры. Устанавливать различные плагины и моды на такой сервер невозможно.

Вдобавок, на мобильных устройствах, консолях и Windows 10 предусмотрена своя версия Minecraft. На Mac и Linux придется устанавливать Minecraft: Java Edition с другой версией кода. Эти два варианта несовместимы друг с другом, разрабатываются по отдельности и имеют разный функционал. Не отличается только цена, но, если вы используете обе версии, переплачивать придется вдвойне.

Как создать сервер Minecraft на специализированном хостинге бесплатно

Помимо официальных разработчиков, серверные услуги в игре Minecraft предлагают и другие компании. Некоторые из них предоставляют услуги бесплатно. Взамен пользователю просто придется просматривать назойливые рекламные баннеры. Пример подобной компании, предоставляющей бесплатные серверы, – Aternos.

Одно из явных преимуществ в сравнении с предыдущим сервером – добавление модификаций и плагинов на усмотрение пользователя. Есть еще возможность подключения с неофициальных версий игры. 

В числе минусов присутствует сложность в настройке подобного сервера. Придется вручную устанавливать разные параметры; моды и плагины подключаются тоже самостоятельно игроком. Компании, бывает, внедряют дополнительные услуги, за которые придется платить. Стабильность в работе таких серверов тоже не так часто встретишь, все же зависит от хостинга. 

Именно данный сервер, Aternos, отличается еще и нестабильной скоростью работы. Также приходится постоянно ждать своей очереди, потому что желающих воспользоваться бесплатным сервером немало. Реклама в процессе будет выскакивать «на каждом шагу»

По поводу компаний с полностью платными услугами – у каждой из них цена и функционал могут отличаться. Среднюю стоимость вычислить практически нереально, выбор остается за игроком. Например, Advensпредоставляет серверные услуги по цене от 800 рублей, а игровой хостинг MyArena предоставляет тарифы с оплатой за слоты и ресурсы. 

Как создать домашний сервер для Minecraft

Создать сервер Майнкрафт можно и самостоятельно на компьютере, без посредников. Как говорится, дешево и сердито. Единственным требованием в таком случае будет только статический IP-адрес. Для его приобретения необходимо обратиться к провайдеру. После остается только создать собственный одиночный мир и открыть к нему доступ. Друзьям останется только подключиться через установленный IP.

Плюсы – можно устанавливать любые моды и плагины, применять любые конфигурации, проводить детальную настройку мира.

Но чтобы все работало хорошо, компьютер должен обладать неслабыми характеристиками. Это скорее минус. Если начинка недостаточно мощная и производительная, создавать сервер на своем ПК будет не лучшей идеей. Любые операции будут сопровождаться постоянными багами и подтормаживанием.

Кроме того, важно иметь стабильное и высокоскоростное подключение к интернету. Рекомендуется иметь свободный пропускной канал для исключения лагов и высоких пингов. Но это все равно не гарантирует стабильную работу, скорость в итоге останется низкой. Подобный сервер полностью зависит от характеристик компьютера, домашнего интернета и электричества. 

Как создать сервер Minecraft на Windows без модов

Прежде всего нужно скачать и установить последнюю версию Java на компьютер. Без него сервер не будет работать. Приложение бесплатное.

Далее потребуется купить и скачать Minecraft: Java Edition с официального сайта разработчика. После нужно установить игру и запустить ее.  

Пользователь должен войти в свой аккаунт. Если его нет, тогда следует зарегистрироваться. Как только авторизация будет завершена, надо прогрузить мир игры и сразу же закрыть ее.

Потом нужно создать на компьютере папку, назвав ее Minecraft Server. Далее потребуется скачать сервер с официального сайта. Файл будет в формате server.jar. Его понадобится скопировать в созданную папку и запустить вот такой командой через командную строку:

java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui

На момент написания статьи актуальна версия сервера 1.16.2.

Сразу после этого появятся дополнительные файлы. В их числе будет документ с названием eula.txt. Нужно открыть его в блокноте, найти в списке параметр eula=false, поменять значение на true и закрыть файл, сохранив изменения.

Примерно то же самое надо проделать с документом под названием server.properties. Открыть в блокноте, поменять в параметре online-mode=true значение, оно должно быть отмечено как false. Потом следует сохранение изменений и повторный запуск файла server.jar.

Далее откроется консоль, где будет показано состояние сервера. Пока эта самая консоль активна, сервер будет работать, и другие пользователи смогут без проблем к нему подключаться.

Как создать сервер Minecraft на Windows с модами

Сперва надо установить клиент Minecraft и добавить в него моды с помощью бесплатного приложения Forge. Его версия должна совпадать со скачанной версией игры. Устанавливать программу следует в ту же папку, в которой находится Майнкрафт.

Теперь надо создать на компьютере папку под названием Minecraft Forge Server. Далее запускается Forge (файл формата jar) и устанавливается сервер. В качестве расположения выбирается только что созданная папка. 

Потом надо отредактировать через блокнот некоторые значения в файлах. Например, в eula.txt в строке eula=false нужно выставить значение true и сохранить изменения. Примерно то же следует проделать с документом server.properties, только там в параметре online-mode значение true меняется на false.

Затем необходимо перейти в mods, расположенную в папке с клиентом Minecraft. Можно воспользоваться окном «Выполнить» нажатием на клавиши Win + R, ввести в поле «Открыть» значение %appdata%.minecraft и нажать на Enter. Все файлы модификаций в указанном файле понадобится отправить другим игрокам, вместе с которыми планируется использовать сервер. И внимание, каждый из них должен переместить моды в ту же папку на своем компьютере.

Последний этап настройки – эти самые файлы из папки mods перемещаются в другую с точно таким же названием, только расположенную в директории Minecraft Forge Server.

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

Как создать сервер в Майнкрафт на Linux

Чтобы создать сервер Майнкрафт для игры с друзьями необходимо, чтобы были установлены дистрибутивы Linux с версиями не выше указанных – Ubuntu 18.04 и CentOS 7. Еще для установки сервера требуется наличие свежей версии Java. Проверить ее можно, дав в «Терминале» такую команду:

java -version

Если Java на компьютере не установлена, в той же командной строке можно дать запрос на установку. В Ubuntu это будет выглядеть так:

sudo apt-get updatesudo apt-get install default-jdk

В CentOS команда должна быть введена вот так:

sudo yum updatesudo yum install java -y

Как только Java будет скачан и инсталлирован, потребуется установить Screen, позволяющий одновременно работать с несколькими окнами в одной сессии. Вот так надо вводить команду на установку на Ubuntu:

sudo apt-get install screen

А вот для CentOS следует вводить запрос таким образом:

sudo yum install screen -y

Теперь надо осуществить подключение к серверу по SSH. Для входа можно использовать «Терминал». Для подключения нужно активировать такой запрос, правильно подставив, конечно же, указанные значения:

ssh имя_пользователя@ip_сервера

После активации команды будут запрошены логин и пароль.

Можно приступать к установке сервера Minecraft. Для начала создается отдельная папка, где будут храниться все конфигурационные файлы игры. Это необязательно, конечно, но для лучшей организации работы системы будет нелишним. Создать папку можно по команде:

mkdir minecraft

После успешного завершения процесса понадобится открыть папку, для этого вводим запрос такой формы:

cd minecraft

Еще перед скачиванием конфигурационных файлов надо будет установить wget. Вот как выглядит команда для такой операции на Ubuntu:

sudo apt-get install wget

А вот как должен выглядеть запрос на дистрибутиве CentOS:

sudo yum install wget -y

После завершения установки инструмент wget будет использован для загрузки файла свойств с сервера Minecraft. Дать при этом надо такой запрос:

wget https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289289789/server.jar

Теперь надо загрузить файл конфигурации с официального сайта игры. Обычно команда на установку и ссылка на скачивание даются на соответствующей странице.

Но на этом настройка не завершена. Надо еще подтвердить лицензионное соглашение через файл eula. Открываем лицензионное соглашение в текстовом редакторе, находим строку eula=false, меняем ее на eula=true и сохраняем изменения.

Сразу после этого можно приступать к запуску сервера. Чтобы он работал в фоновом режиме, потребуется активировать Screen вот такой командой:

screen -S "Minecraft server 1"

Пора запускать новый установленный сервер! Активируем вот такой запрос в «Терминале»:

java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui

Уточняем, что для запуска сервера минимальное значение ОЗУ составляет 1024 МБ. Именно поэтому данная цифра была прописана после -Xmx и -Xms. А если вам этого мало, просто поменяйте значение на любое другое, оптимальное для вас.

Запускаем Minecraft на VDS или выделенном сервере

Сделать сервер Майнкрафт можно через хостинг. Для этого потребуется сервер с достаточно мощным железом. В таком случае нужно будет скачать серверную версию Minecraft и удаленно установить ее на арендованное оборудование. 

В хостинге Timeweb можно купить готовый выделенный сервер или самостоятельно подобрать конфигурацию. Правда, этот вариант не самый дешевый. Если у вас ограничен бюджет, можно подключить VDS сервер. Это отличный вариант для начинающих геймеров. 

Из минусов – это не самый простой способ, для его реализации требуются определенные знания и навыки в администрировании. При работе могут возникать какие-либо трудности и нюансы, также вполне допустимо возникновение проблем в процессе запуска и настройки сервера.

Но результат определенно того стоит – пользователь сможет реализовать на таком сервере любые возможности для игры, использовать любые шаблоны, моды и защитное ПО. Такой сервер доступен круглосуточно и не зависит от того, включен ваш компьютер или нет. Такой сервер можно будет использовать для игры с друзьями или продавать.

О том, как создать сервер Minecraft на VDS на базе платформы CentOS 7, ранее было рассказано в другой статье.

Создание сервера Minecraft на VDS с Ubuntu 18.04

Чтобы создать сервер Майнкрафт для игры с другом потребуется заранее установить на сервер дистрибутив Ubuntu 18.04 и включить поддержку SSH. В хостинге Timeweb можно выбрать тариф с оптимальными параметрами и ценами. Если выяснится, что этих характеристик недостаточно, вы сможете выбрать тариф с большей производительностью.

Первым делом после подготовки сервера надо установить Java. Рекомендуется версия 8 OpenJDK для Java, в частности, headless JRE. Это минимальная версия, не имеющая поддержки графического интерфейса в приложении. Именно поэтому она отлично подходит для запуска приложений Java на сервере. Для скачивания и установки надо ввести следующую команду:

sudo apt install openjdk-8-jre-headless

Еще нужно будет скачать приложение Screen (о его назначении говорилось выше), для этого дается следующий запрос:

sudo apt install screen

После того как все необходимо ПО установлено, потребуется активировать брандмауэр для разрешения трафика на сервер Minecraft. В игре по умолчанию используется порт 25565. Чтобы внедрить это правило, запускается такая команда:

sudo ufw allow 25565

Наконец пришло время для скачивания и установки сервера Minecraft. Для этого используем утилиту wget. Открываем сайт разработчика для загрузки сервера, копируем ссылку на загрузку и вставляем ее после утилиты. Примерно так это будет выглядеть:

wget https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289789530/server.jar

Как только загрузка завершится, потребуется принять лицензионное соглашение через файл. Надо для этого открыть в текстовом редакторе nano файл eula.txt. Затем следует найти параметр eula=false и поменять значение на true. Теперь можно приступать к запуску файла jar. Открываем приложение screen и даем в нем вот такую команду:

java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui

В течение нескольких секунд будет совершена инициализация. Потом выйдут результаты, примерно вот такие:

Server thread/INFO: Done (32s)! For help, type "help"

Это значит, что подключение сервера завершилось.

Заключение

Сделать свой сервер Майнкрафт для игры с другом можно несколькими способами. У каждого из них есть свои плюсы и минусы, различные возможности и ограничения. Выбирать стоит исходя из характеристик установленного железа и собственных потребностей, будь то установка плагинов и модов. Ну и финансовых возможностей, разумеется. 

Айше Джемилева +121

Сегодня я заново открываю цикл статей и на этот раз. забрасывать его не буду и даже буду отвечать на ваши коментарии. Ну что ж, от слов к делу. Поехали! Подготовка Для написания своих плагинов нам понадобятся:

  • Среда разработки Java-приложений Eclipse;
  • Api Spigot: https://hub.spigotmc.org/nexus/content/groups/public/org/spigotmc/spigot-api/ .
  • Документация по Bukkit API.

Так же понадобятся базовые знания по Java. Если таковых нет, то вот ссылки по “поднятию скила”:

  • Основы Java для начинающих Сайт рассчитан на тех, кто только начинает изучать Java
  • Java (Beginner) Programming Tutorials Видео-туториал по Ява, рассчитанный для новичков(я начинал с него).
  • Справочник по java Я бы назвал это шпаргалкой по яве
  • Java эксперт И пусть вас не пугает название. Здесь можно найти множество примеров решения на те или иные задачи.

Установка и настройка EclipseЕсли вы уже знакомы с Eclipse или увас другая IDE, то пропускайте этот раздел.Проблем с установкой эклипса возниктуть не должно: его нужно просто распаковать в любоую папку и запустить. Сразу после этого, эклипс попросит указать, какое рабочее пространство(workspace) сейчас открыть. Это папка, в которой будут сохранятся все созданные проекты и где ее располагать – лично ваше решение. Если вам всеранво, то оставляйте все как есть. Если вдруг захотите изменить рабочее пространстро, то не переживайте: при каждом следующем запуске, эклипс сново спросит вас о рабочем пространстве. Таких пространств можно наделать сколько угодно и каждое может быть настроено по разному, под какие-то определенные цели. К примеру у меня есть 2 рабочих пространства: для написания обычных java-приложений и для написания плагинов под “ведро”. Если вдруг вам надоест это сообщение, там есть галочка «Use this as the default and do not ask again», что позволяет задать workspace по-умолчанию.+Как только вы определитесь с выбором места и загрузится Eclipse, то мы увидим пригласительную вкладку… которую сразу же закрываем. Она нам ни к чему. Теперь же мы видим рабочее пространство самого эклипса. Из всего этого, нам понадобится только следующие панели:Последние 2 описанные панели можно вообще свернуть, т.к. пользоваться ими будем редко. Рабочее место почти готово. Осталось только поставить еще 2 галочки в настройках. Переходим в меню Window -> Preferences, далее по древу General -> Editor -> Text Editors и выставляем галочку «Show line numbers», чтобы включить отображение нумерации строк. Теперь переходим в General -> Workspace и в группе «Text file encoding» выставляем кодировку UTF-8, самым установив кодировку по-умолчанию. С установкой и настройкой покончено. Теперь поясню, как создавать новый проект для плагина. Это можно сделать одим из 3-х способов:

  • Меню File -> New -> Java Project
  • Кнопка на панели инструментов
  • Правый клик в Package Explorer

Перед нами откроется окно New Java Project. В Project name указываем название нашему проекту Нажимаем Next. В появившемся окне, переходим на вкладку Libraries, нажимаем кнопку Add External JARs и выбираем скаченный Bukkit API Жмем Finish. Слева, в Package Explorer, показался наш проект с папкой src, в которой будут храниться наши исходные коды. Теперь созданим новый класс. Делается это точно так же, как и с Java Project. В окне New Java Class нам понадобятся только следующие графы:

  • Package указывается пакет, в котором будет хранится наш класс. Формат имени должен быть примерно такой: ru.dmitriymx.bukkit.tutorial. Если в двух словах и на пальцах, то пакеты в ява – это пространство имен(namespace) или «виртуальные папки», в которые помещаются классы. Подробнее про это можно прочитать здесь: [1], [2], [3].

Все остальные пункты оставляем как есть и жмем Finish. Вот теперь переходим непосредственно к коду.Пишем простой плагин Как только мы создали новый класс, нашему взору предстает уже готовый пустой шаблон40434-6d106e77f6a1aac7086ed82aacad5e64.jpg Пока это всего лишь пустой класс, который абсолютно бесполезен в быту. Будем это исправлять. Изменяем вот это40435-57226deeafbbf38f31d98699ba61e9cc.jpg на это40437-a402aed200e0adc7c010be21f01b3131.jpg Эклипс подчеркнет нам JavaPlugin, указывая на ошибку в коде. Если подвести мышь к такому подчеркнутому коду, то откроется окошко с описанием ошибки и способы ее решения. В данном случае нам нужно импортировать класс из Bukkit API, для чего выбираем пункт «Import ‘JavaPlugin’(org.bukkit.plugin.java)» Сразу же замечаем, как над всем нашим кодом вписалась строчка Немного теоретического материала. У плагинов есть 3 основных метода: onEnable(), onDisable() и onLoad(). Первые два отвечают за включение и отключение плагина, а последний срабатывает когда плагин непосредственно подгружается в память сервера. Из этого следует, что onLoad выполняется самым первым, но сам плагин начинает работать только после вызова onEnable со стороны сервера. По выключению или перезагрузки сервера, вызывается метод onDisable. С “точками входа-выхода” разобрались. Давайте теперь напишем что-нибудь более-менее работоспособное. Приведем общий код класса к следующему виду: кому невидна вторая часть: о что мы сейчас написали – готовый плагин. Все что он делает – это пишет в чат о приходе и уходе игрока на сервер. Разбираться в его работе будем по порядку(а как иначе?). Сперва обращу внимание на строку объявления класса. Как видно, к нашему классу добавилось расширение Listener. Не углубляясь в дебри явы, скажу проще: указывая данное расширение, мы тем самым расширяем область применения класса не только как плагина(JavaPlugin), но и как обработчика событий(Listener). А вот как раз в методе onEnable() мы регистрируем наш класс на сервере как обработчик событий(this – это указание «на самого себя», если кто забыл). Далее следует 2 наших обработчика событий onJoin() и onQuit(). Первый отвечает а событие входа игрока на сервер, а второй – за уход. С помощью метода event.getPlayer().sendMessage(), мы можем отправить сообщение тому игроку, которое вызвал данное событие(в нашем случае игроку, который зашел). Статический класс ChatColor хранит в себе константы цветов для окраски. Думаю как им пользоваться уже видно из примера. Так же, оба наших обработчка оповещают других игроков на сервере о произошетших событиях, но делают это по разному. В onJoin() с помощью метода event.setJoinMessage() мы меняем привычное сообщение «Player joined the game» на любое другое. А в onQuit() мы поступили инача(в целях примера): убрали вывод сообщения о выходе и сообщаем об этом через метод getServer().broadcastMessage(), который просто посылает всем игрокам на сервере указанное сообщение.+ Дело осталось за малым: написание важного файлика plugin.yml и упаковка всего этого в jar-файл. plugin.yml – это файл описания плагина. В нем задается название плагина, главный класс, описание и какие комманды зарегестрировать за плагинов(об этом позже) и т.д. В нашем случае, файлик должен выглядеть так: Ой, забфл сказать, где этот файлик должен находится. Жмем правой кнопкой мыши в PackageExplorer по папке src и через меню New выбираем File. В поле File name пишем plugin.yml и жмем Finish. В открывшемся текстовом редакторе, пишем то, что я указывал выше. Всё сохраняем и переходим к последней фазе: упаковке. Правый тык по папке src -> Export. В древе папок, открываем Java и выбираем JAR file и жмем Next. Из голочек оставляем только «Export generated class files and resources» и «Compress the contents of the JAR file». В поле JAR file указываем, куда будем сохранять полученный плагин. После нажатия на Finish, плагин можно класть в папку plugins, запускать сервер и проверять его работу. Видите? Это совсем просто. С практикой вы наберетесь больше опыта и сможете делать более крутые плагины, даже такие легендарные как WorldEdit и WorldGuard. Источник1234http://dmitriymx.ru/blog/pishem-prostoj-plagin-dlya-bukkit

Используемые источники:

  • https://bukkit.ru/threads/ot-a-do-ja-sozdanija-plagina-minecraft.118332/
  • http://rubukkit.org/threads/urok-pishem-pervyj-plagin.24364/
  • https://timeweb.com/ru/community/articles/kak-sozdat-server-minecraft-6-sposobov
  • http://rubukkit.org/threads/ot-a-do-ja-sozdanija-plagina-minecraft.118332/

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116