Bukkit
Это модифицирования версия Minecraft, которую так же называют Craftbukkit. Craftbukkit — это оригинальный API, который позволяет сторонним разработчикам добавлять свой собственный код в Minecraft.
В течении долгого времени разработчики использовали Craftbukkit для создания многих плагинов для одиночной и сетевой игры Minecraft. Благодаря Bukkit появились самые известные плагины, как: Faction, MCMMO, Bungee и т.д.
Однако разработчики Craftbukkit недавно прекратили поддерживать и выпускать новые обновления для Bukkit, но его до сих пор можно использовать для добавления плагинов и модов на ваш сервер.
Bukkit
Bukkit — глобальная серверная модификация, предоставляющая API для взаимодействия с игровым миром и созданная для упрощения создания плагинов к SMP-серверу. Bukkit был призван заменить hMod. Существуют некоторое сходство между этими модами, но плагины, написанные для hMod, несовместимы с Bukkit и должны быть переписаны с использованием Bukkit API. Bukkit являлся самой используемой системой управления плагинами.
В феврале 2012 года разработчики Bukkit официально влились в команду Mojang.
В августе 2014 года команду Bukkit покинули практически все разработчики, в том числе глава проекта EvilSeph [1] , а уже 3 сентября один из бывших разработчиков послал DMCA Takedown, тем самым добившись блокировки проекта. С тех пор скачать исходники и сборки Bukkit’а с официального сайта нельзя.
Позже команды разработчиков Spigot, Cauldron и Bukkit объединили усилия в новой универсальной серверной платформе
- 1 Установка
- 1.1 Windows
- 1.2 Linux
- 1.3 OS X
Установка [ ]
Windows [ ]
- Скачиваем сервер, пусть данный пример будет на версии 1.12;
- Перемещаем jar-архив в папку для сервера
- Открываем блокнот или другой текстовый редактор
- Вписываем туда, подставив название скачанного jar файла. Например для версии 1.12 текст в блокноте будет выглядеть так:
java -jar craftbukkit-1.12.jar
craftbukkit-1.12.jar — имя скачанного файла.
или (для 64-битной Java)
- Вписываем туда, подставив имя файла:
"%ProgramFiles%\Java\\bin\java.exe" -Xmx1024M -jar craftbukkit-.jar
или (для 32-битной Java)
"%ProgramFiles(x86)%\Java\\bin\java.exe" -Xmx1024M -jar craftbukkit-.jar
- Для 32-битной системы или 64-битной системы и 64-битной версии Java пишем это:
@ECHO OFF "%ProgramFiles%\Java\\bin\java.exe" -Xms1024M -Xmx1024M -jar craftbukkit-.jar -nogui PAUSE
- Для 64-битной системы и 32-битной версии Java пишем это:
@ECHO OFF "%ProgramFiles(x86)%\Java\\bin\java.exe" -Xms1024M -Xmx1024M -jar craftbukkit-.jar -nogui PAUSE
Или создаём в любом месте скрипт для упрощения запуска:
- Для 32-битной системы или 64-битной системы и 64-битной версии Java:
@ECHO OFF SET BINDIR=%~dp0 CD /D "%BINDIR%" "%ProgramFiles%\Java\\bin\java.exe" -Xmx1024M -Xms1024M -jar craftbukkit-.jar PAUSE
- Для 64-битной системы и 32-битной версии Java:
@ECHO OFF SET BINDIR=%~dp0 CD /D "%BINDIR%" "%ProgramFiles(x86)%\Java\\bin\java.exe" -Xmx1024M -Xms1024M -jar craftbukkit-.jar PAUSE
- Если не помогло, есть вариант:
@ECHO OFF SET BINDIR=%~dp0 CD /D "%BINDIR%" java -Xincgc -Xmx1G -jar CraftBukkit-.jar PAUSE
- Также, есть пользовательский скрипт:
@ECHO OFF SET BINDIR=%~dp0 CD /D "%BINDIR%" :Start cls java -Xincgc -Xmx1G -jar CraftBukkit-.jar cls PAUSE goto Start
Данный скрипт перезапускает сервер, если пользователь нажал на клавишу, а не закрыл консоль.
- Если не работает — переустановите Java.
- Если не помогло — напишите полный путь вместо «java».
- Внимание! Для корректной работы любого скрипта нужно установить соответствующую версию Java! На 32-битную систему можно установить только 32-битную версию Java!
Linux [ ]
- Скачиваем сервер
- Перемещаем jar-архив в папку для сервера
- Сервер готов, для запуска переходим в папку сервера и отдаем команду java -Xincgc -Xmx1G -jar craftbukkit-.jar .
Желательно изменить опцию «-Xmx1G» в соответствии с количеством свободной оперативной памяти. Объём памяти должен быть больше 1 гигабайта, то есть не «-Xmx2G» или «-Xmx5600M»
При желании можно повесить эту команду на кнопку на панели или в меню:
sh -c "cd ~/.minecraft_server/ && java -Xincgc -Xmx1G -jar craftbukkit-.jar"
Или создать в любом месте скрипт для упрощения запуска:
#! /bin/sh cd ~/.minecraft_server/ java -Xincgc -Xmx1G -jar craftbukkit-.jar exit 0
Скрипт нужно сделать исполняемым: chmod a+x start.sh и можно запускать командой sh start.sh .
Или даже прописать алиас, добавив где-нибудь в ~/.bashrc
alias mcserver='cd ~/.minecraft_server/ && java -Xincgc -Xmx1G -jar craftbukkit-.jar'
После этого сервер можно будет запускать командой mcserver .
Возможно, Вы также захотите использовать init-скрипт для фоновой работы сервера.
OS X [ ]
- Открываем терминал и пишем этот код для версии 1.12:
cd ~/Desktop mkdir "Bukkit Server" cd ~/Desktop/Bukkit Server curl -O https://cdn.getbukkit.org/craftbukkit/craftbukkit-1.12.jar mv craftbukkit-.jar CraftBukkit.jar
также можно просто скачать нужную версию здесь, и поместить в нужную вам папку. В следующей команде замените [RAM] на количество оперативной памяти, которое будет выделено на запуск и дальнейшую работу сервера (512M — 512 МБ, 1536M — 1536 МБ, 1G — 1 ГБ, 2G — 2 ГБ, 4G — 4ГБ, и.т.д.):
echo "cd ~/Desktop/Bukkit Server java -Xincgc -Xmx[RAM] -jar CraftBukkit.jar" > ../LaunchServer.command chmod +x LaunchServer.command
2. Сервер готов, для запуска используем файл LaunchServer.command (будет лежать на рабочем столе).
Управление [ ]
В управлении и настройке сервер Bukkit во многом схож с чистым сервером, необходимая информация по этому может быть найдена здесь.
Bukkit предоставляет все те же команды, что и оригинальный сервер Minecraft, но также имеет и три собственные особые команды:
Команда Описание Использование Запись в Permissions Доступ по умолчанию version Показывает версию CraftBukkit этого сервера. version bukkit.command.version Всем plugins Выводит список установленных плагинов. plugins bukkit.command.plugins Всем reload Останавливает и снова запускает все плагины на сервере. reload bukkit.command.reload Операторам Прочитать о настройке прав более подробно можно на вики проекта.
Рекомендуемые плагины [ ]
- WorldEdit — инструменты для редактирования мира
- WorldGuard — манипуляции с регионами
- CommandBook — дополнительные команды
- LWC — для ограничения доступа к сундуку, дверям, кнопкам, рычагам (сильно нагружает сервер, требуется мощная машина)
- PermissionsEX — управление правами игроков
- BorderGuard — ограничить размер мира для пользователей
- DynMap — создание карты мира в браузере
- MobArena — PvE арена
- CoreProtect — Просмотр изменения блоков в мире для отлова нарушителей и отката действий игроков
Остальные плагины [ ]
Интересные факты [ ]
- Двое из разработчиков Bukkit (Натан Адамс, Натан Гилберт) — красно-зеленые дальтоники.
- Натан Адамс позже присоединился к Mojang под именем Dinnerbone.
Примечания [ ]
Bukkit. Что это и с чем его едят?
Bukkit. Что это и с чем его едят?
Bukkit — серверная API, для взаимодействия с игровым миром и созданная для упрощения создания плагинов под SMP сервер. Призван заменить hey0’s Mod. Bukkit был первоначально задумана как два инструмента: CraftBukkit и Bukkit. Позже разработали ScrapBukkit. Bukkit является самой популярной API, и, по-видимому таковой и останется до выхода официального API от Mojang (а то и после).
Установка
Windows
1. Скачайте последний билд CraftBukkit.
2. Поместите .jar файл в желаемую папку.
@java -Xincgc -Xmx1G -jar craftbukkit-1.1-R3.jar
Bukkit. Что это и с чем его едят?Bukkit. Что это и с чем его едят?
4. Сохраните файл в папку с сервером с разрешением (форматом) *.bat
5. Сервер готов, запускаем. При первом запуске нужные файлы и папки сгенирируются сами.
Linux
1. Скачайте последний билд CraftBukkit.
2. Поместите .jar файл в желаемую папку (~/minecraft_server к примеру)
cat > minecraft_server.sh << EOF
BINDIR=»\$(dirname «\$(readlink -fn «\$0″)»)»
java -Xincgc -Xmx1G -jar craftbukkit-1.1-R3.jar
chmod +x minecraft_server.sh
Mac OS X
cd ~/Desktop
mkdir «Bukkit Server»
cd ~/Desktop/Bukkit\ Server
mv craftbukkit-1.1-R2.jar CraftBukkit.jar
echo «cd ~/Desktop/Bukkit\ Server
java -Xincgc -Xmx[RAM] -jar CraftBukkit.jar» > LaunchServer.command
chmod +x LaunchServer.command
Стандартные команды
Команда
Примечание
Выводит версию CraftBukkit.
Выводит список установленных плагинов.
Перезапуск сервера. По умолчанию доступно только администратору.Плагины
Вам надоело играть на «чистом» сервере?
Этот мини-гайд объясняет, как установить основные плагины на Ваш сервер.
1. Выбираем нужный плагин (лучше от сюда — Bukkit Plugin List )
2. Перемещаем файл .jar и другие файлы в папку /plugins
3. Запустите сервер и дождатесь его полной загрузки.
4. Введите Stop в консоль сервера.
5. Запустите сервер.
6. Все сделано! Ваш плагин должен быть установлен и готов к использованию.
Основные плагины:
World Edit — позволяет редактировать мир. Быстрее, чем это делается в ручную 🙂
Permissions — установка полномочий на игроков
LWC — защита сундуков, дверей и т.д
WorldGuard — позваоляет защищать регионы на сервере.
AuthMe — плагин авторизации на сервере. Рекомендиется для offline серверов.
CPFix
Наверно каждый, кто включал русский язык в майнкрафте, обращал внимание на то, что при попытке набрать что-то в чат на сервер отправлялись какие-то кракозяблики их же можно было увидеть в книгах, а на табличках вместо русских букв появлялись непонятные знаки вопросов. Причина всего это проста. В стандартный клиент майнкрафта включена устаревшая версия библиотеки LWJGL, при вводе символов с клавиатуры, кодирует их не в кодировке UTF-8, а в какой-то безумной смеси: один байт от кодировки UTF-8, а второй — обычный символ в кодировке CP1251. Полученные символы и явлются теми кракозябликами, которые так сильно нас раздражают. Казалось бы, решение простое: нужно обновить библиотеку LWJGL (последняя версия доступна по адресу: http://lwjgl.org/download.php), однако разработчики Minecraft’а не спешат с таким обновлением (как я понимаю из-за каких-то проблем в новой версии библиотеки с Mac’ами), а всех пользователей вручную сменить библиотеку не заставишь. В результате то тут, то там на серверах появляются таблички с «кривыми» символами, а все благодаря тому, что традиционная руссификация методом «подстановки» файла font.txt на самом деле не решает проблемы, а маскирует её: в клиентах, руссифицированных посредством font.txt (и соответствующего графического файла) на самом деле кодировка не исправлена, исправлено только её отображение, а на сервер символы попадают во все том же кривом отображении. Таким образом, у потенциальных игроков на сервере может быть:
- Стандартный клиент со стандартной руссификацией и старой версией LWJGL (Windows) — если не прилагать каких-то усилий, то он в принципе не сможет писать на русском.
- Стандартный клиент со стандартной руссификацией и старой версией LWJGL (Linux) — насколько знаю тут всё хорошо, UTF-8 в чате, на табличках и вообще. То что он пишет видят все.
- Стандартный клиент c руссификатором методом font.txt и старой версией LWJGL (Windows) — клиент пишет в чат на русском. Его не понимают клиенты из п.1 и п.2, но понимают все клиенты из п.3
- Стандартный клиент c обновленной версией LWJGL (Windows) — собственно всё нормально текст принимается в UTF-8, игрок видит, что он пишет и его текст понятен всем.
Как с этим бороться
Естественно самым координальным и верным решением было бы устранение изначальной проблемы — внедрением исправленной версией LWJGL в клиент Minecraft’а. Но пока это не сделают разработчики, это решение будет неэффективным. Придется контроллировать игроков, заставлять их либо самостоятельно обновлять злосчастную LWJGL или же усиленно «впаривать» собственный клиент (с обновленной библиотекой). В ряде случаев второй вариант может решить проблему, но по тем или иным причинам ограничивать игроков каким-то специальным клиентом не всегда представляется возможным (да и удобным). Поэтому, при текущей ситуации, сервер направленный на полноценную поддержку кириллицы в игре должен уметь приводить к нормальному виду текст в «кривой» кодировке поступаемый от клиента. Процедура «руссфикации» сервера в этом случае будет выглядеть следующим образом.
Что нужно для организации поддержки русского языка
Собственно, для организации поддержки русского языка нужно не так уж и много:
- Убедиться, что при вызове Java для старта сервера, включена поддержка UTF-8 для файлов. Для этого при запуске должен использоваться ключ: -Dfile.encoding=UTF-8
- Необходимо внедрить «русский» файл font.txt в craftbukkit.jar. Это необходимо для того, чтобы русский язык начал поддерживаться в табличках (в чате он и так воспринимается нормально).
- Установить плагин CPFix, который необходим для того чтобы приводить весь поступающий в чат, таблички, книги текст в едино-верную кодировку UTF-8. С этим плагином даже клиенты под Windows с устаревшей LWJGL смогут с горем пополам писать на русском языке. К примеру, слово «ïðèâåò», поступившее от такого клиента, после перекодировки превратится в «привет».
А как же консоль?
С консолью есть несколько нюансов. Все они связаны с консолью в Windows (в Linux насколько я понимаю с поддержкой кодировки UTF-8 в консоли проблем никаких нет). Поэтому все о чем я буду говорить ниже относится к стандартной консоли Windows. Для того чтобы консоль нормально отображала текст UTF-8 (т.е. сообщения игроков в чате, текст выводимый плагинами на русском) необходимо включить в ней вывод в кодировке UTF-8. Проще всего это сделать вызвав команду chcp 65001. И уже после этой команды запускать Java. В качестве примера привожу содержимое cmd-файла, которым я запускаю свой «домашний тестовый» сервер:
chcp 65001 "%ProgramFiles%\Java\jre7\bin\java.exe" -Xms1024M -Xmx1024M -Dfile.encoding=UTF-8 -jar craftbukkit.jar pause
После этого, сервер будет поддерживать вывод текста на русском языке (и кстати в цвете — тоже). Однако остается одно огромное «но»: Windows-консоль не поддерживает ввод текста в кодировке UTF-8! То есть не поддерживает ВООБЩЕ! То есть текст вы на русском читать сможете, а писать нет. Лично меня это устраивает: на домашне-тестовом сервере писать что-то с консоли на русском не приходится, а на активном игровом сервере вряд ли будет использоваться Windows.
Однако если уж очень хочется, то можно и заставить консоль «принимать» русский текст. Для этого придется устроить небольшую чехарду с кодировками. Во-первых, надо будет отказаться от кодировки UTF8 в консоли. Т.е. убрать chcp 65001 из командного файла, которым запускается сервер. Также необходимо будет отключить поддержку UTF-8 для файлов (т.е. убрать из строки запуска Java ключ -Dfile.encoding=UTF-8). В результате мы получим вот такой файл:
"%ProgramFiles%\Java\jre7\bin\java.exe" -Xms1024M -Xmx1024M -jar craftbukkit.jar pausecode>> Теперь необходимо в настройках плагина CPFix (версии 0.2.0) настроить перекодирование текста из консоли: code yml>>output-recode: console: enable: true code-page: CP866 server-log: enable: true code-page: CP866 input-recode: enable: true code-page: CP866
Все эти опции отключены по умолчанию, но в файле настроек присутствуют — нужно включить и перезагрузить сервер. Кстати, если вы используете в консоли какую-то другую кодировку, то можете подставить и её. Ну и кстати, кодировку журнального файла (server-log) может отличаться от кодировки консоли: в консоль текст может выводиться в CP866, а в server.log при желании можно вести в UTF8.
Собственно после этого можно будет вводить в консоли текст на русском и сервером, а также плагинами он будет восприниматься адекватно. И команда /say Привет! будет понята всеми 🙂
Что и где качать?
- Craftbukkit лучше всего брать с оффсайта: http://dl.bukkit.org/
- Файл font.txt можно взять тут: https://dl.dropbox.com/u/64799811/CPFix/font.txt
- Плагин CPFix всегда доступен тут: http://dev.bukkit.org/server-mods/cpfix/
