Git Product home page Git Product logo

ancapstates-2's Introduction


Разработка AncapStates 2 прекращена 23 марта 2022 года. Проект находится в ожидании полного переписывания с нуля

Запланированные изменения в AncapStates 3:

  1. Изменение структуры хранения данных (на данный момент, из-за моей некомпетентности на момент начала разработки плагина все данные хранились на диске как будто в оперативке, а поля классов присутствовали от силы в 10% объектов)
  2. Построение структуры плагина на EventAPI с самого начала разработки
  3. Новая структура обработчиков команд (как уже реализовано в AncapWars или AncapVKL)
  4. Переработка структуры городов и наций, объединение их под одним интерфейсом AncapState (этот интерфейс уже присутствует в этой версии плагина, но имеет один или два метода и соответственно нефункционален)
  5. Переход на более производительную базу данных и возможно добавление возможности выбора из локальной и удалённой
  6. 90% обратной совместимости аддонов к AncapStates 2 с AncapStates 3 (планируется, что необходимо будет только изменить создание объектов городов/наций на поиск их в StateMap) UPD: нет, так не получится, дай бог 50% совместимости будет
  7. MigrationTool для переезда со старой версии плагина на новую
  8. AncapStates 3 будет находится в другом репозитории на гитхабе, здесь останется старый код

AncapStates

Плагин для MineCraft, позволяющий создавать государства и вести войны.

Возможности

  • Создание городов и государств в игре;
  • Контроль территорий по гексагонам;
  • Войны между государствами за гексагоны;
  • Интеграция с DynMap;
  • Система привата для полной защиты территорий (14 обрабатываемых ивентов);
  • Система приватных чанков для защиты ресурсов от сограждан;
  • Иерархия внутри государства;
  • Система чистки неактивных городов;
  • Продуманная система сражений и система осады замков (каждая битва может идти по несколько часов!)

Преимущества

  • Отличная оптимизация (0.01% тика/игрок)
  • Чистый и расширяемый ООП-код (качество кода 98.1% согласно codefactor.io)
  • Проект полностью OpenSource (лицензия MIT)
  • API городов и наций для разработчиков (~100 методов)
  • AddonAPI для разработчиков
  • Собственное сердцебиение плагина для выполнения действий с определённой периодичностью (API имеется)
  • Собственное EventAPI (в разработке, предполагается более 50 cancellable-ивентов)
  • Сборка плагина с помощью Maven

AncapStates

Города и нации

Плагин добавляет в игру обширную систему создания городов и государств (наций). Игроки могут cоздавать города, присоединять новые территории к городу, приглашать других игроков в города и многое другое.

Защита территорий городов от посягательств извне

Плагин имеет продвинутую систему привата территорий городов, защищающую от любых взаимодействий с территориями города

Приват по гексагонам

Единица территории в AncapStates - гексагон с шириной в 100 блоков.

Очистка неактивных городов

Плагин имеет систему удаления неактивных городов - ежедневно ночью с баланса городов (и наций) списывается некоторая сумма ресурсов. Если у города не хватает денег, он удаляется.

Оптимизация

Плагин имеет отличную оптимизацию и предназначен для работы на серверах с высоким онлайном (200 онлайна предположительно нагрузят сервер не более чем на 2%)

Многопоточность

Высокая производительность плагина основывается, в основном, на многопоточном выполнении тяжёлых методов.

AncapStates API

Base API

Базовое API представлено примерно 200 методами у объектов City, Nation и AncapStates.

Player p = e.getPlayer();
CityMap cityMap = AncapStates.getCityMap();
City city = cityMap.getCity(p.getLocation());
city.sendMessage("В вашем городе гуляет игрок "+p.getName())`

EventAPI

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

@EventHandler (priority = EventPriority.LOW)
public void onCityCreation(AncapStatesCityCreateEvent e) {
    AncapPlayer creator = e.getPlayer();
    if (creator.getName().equals("Icarus")) {
		creator.getPlayer().kickPlayer("Ты мне не нравишься");
		e.setCancelled(true);
	}
}

Лицензия

AncapStates лицензирован под MIT Licence. Это означает, что кто угодно может скачать исходный код плагина и делать с ним всё, что он захочет.

Сборка с помощью Maven

Скачайте zip-архив main ветки и запустите mvn package в распакованной директории.

.jar файл будет в /target.

ancapstates-2's People

Contributors

pukpukov avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.