1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[DEV/LIB] MinigamesAPI v1.8 - библиотека для создания миниигр [1.7.9-R0.2]

Тема в разделе "Релизы плагинов", создана пользователем serega6531, 4 июл 2014.

  1. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    MinigamesAPI - библиотека для создания миниигр:
    Версия: 1.8

    Это - библиотека для разработчиков, позволяющая легко создавать миниигры. Содержит основные классы для этого.

    Работа с API:
    Миниигра регистрируется так: Bukkit.getPluginManager.getPlugin("MinigamesAPI").registerMinigame(Plugin, FileConfiguration). Описание параметров в JavaDocs. Метод возвращает MinigamePluginController, содержащий менеджеры, управляющие частями игры. Вот их методы:

    ArenaManager содержит эти основные методы: createArena, и getArena. Они позволяют управлять аренами.
    SignManager содержит методы registerSign и getSign.
    И главный менеджер, SessionManager содержит метод createSession.

    Более подробное описание в JavaDocs.

    Ивенты:
    Плагин бросает следующие ивенты:
    GamePlayerHitEvent, GamePlayerKillEvent, GameSessionStartEvent, GameSessionStopEvent, GameSignDestroyEvent, PlayerJoinGameSessionEvent, PlayerLeaveGameSessionEvent, GameSessionCountDownTickEvent и GameSessionTickEvent (вызываются раз в секунду во время игры). Их смысл понятен из их названий.

    Особенности:
    1. Библиотека для разработчиков
    2. Содержит основные классы для создания миниигр
    3. Позволяет создавать динамические таблички.
    JavaDocs
    Примеры кода
    dev.bukkit.org

    Кто хочет, исходники может посмотреть, написав мне в скайп.

    Лог изменений:
    • 1.1 - Релиз плагина (Да, без 1.0)
    • 1.2 - Добавлена забытая телепортация на спавн после смерти, новый ивент GameSessionTickEvent
    • 1.3 - Добавлена метрика
    Дальше изменения будут публиковаться на dev.bukkit.org.
     
    Последнее редактирование: 27 июл 2014
  2. MelonCraft

    MelonCraft Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    pisikakin
    Исправь :) Снимок экрана 2014-07-04 в 2.17.44.png
     
  3. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
  4. marick0073

    marick0073 Активный участник Пользователь

    Баллы:
    88
    Skype:
    marick00731
    Имя в Minecraft:
    marick0073
    "Это библиотека для разработчиков,..." => "Эта библиотека для разработчиков,..." || "Это - библиотека для разработчиков,..."
     
  5. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Спасибо, сонный уже весь.
    Примеры кода:
    1.
    Код:
    api = ((MinigamesAPI) Bukkit.getPluginManager().getPlugin("MinigamesAPI")).registerMinigame(this, getConfig());
    - Регистрирует миниигру
    2.
    Код:
    api.getArenaManager().createArena("testarena", firstCorner, secondCorner, new Location[]{spawn1, spawn2});
    - Создает арену с именем testname с заданными углами и двумя спавнами для команд.
    3.
    Код:
    api.getSessionManager().createSession(api.getArenaManager().getArena("testarena")).joinPlayer(api.getAPI().getGamePlayer("serega6531"));
    - Создает сессию с ареной с именем testname и подключает первого игрока, получаемого из api.getAPI().getGamePlayer()
    4.
    Код:
    if(api.getSessionManager().isPlayerInSession("serega6531")) api.getAPI().getPlayerSession("serega6531").joinPlayer(api.getAPI().getGamePlayer(player.getName()))
    - Ищет сессию игрока с ником serega6531 и, если она существует, подключает к ней нового игрока.
    5.
    Код:
        @EventHandler
        public void onSignChange(SignChangeEvent e){
            if(!e.getLine(0).equalsIgnoreCase("[GameSign]")) return;
            api.getSignManager().registerSign(new GameSign(new SignHandler(){
    
                @Override
                public void onClick(Player player, String command,
                        String argument) {
                    player.sendMessage("Clicked! " + command + " - " + argument);
                }
            
            }, e.getLine(1), e.getLine(2), e.getLine(3), e.getBlock().getLocation(), Test.pl));
        }
    - Отслеживает создание таблички, и, если надо, регистрирует её.
    6.
    Код:
        private void loadSigns(){
            if(!getConfig().contains("signs")) return;
            ConfigurationSection sign;
            String data;
            String spl[];
            Location loc;
            ConfigurationSection signs = getConfig().getConfigurationSection("signs");
            for(String signname : signs.getValues(false).keySet()){
                sign = signs.getConfigurationSection(signname);
                loc = deserializeLocation(sign.getConfigurationSection("location"));
                data = sign.getString("data");
                spl = data.split(";;");
                api.getSignManager().registerSign(new GameSign(sh, spl[0], spl[1], spl[2], loc, this));
              
            }
        }
      
        private void saveSigns(){
            GameSign[] signs = api.getSignManager().getSignsToSave(this);
            ConfigurationSection sec, ssec;
            if(!getConfig().contains("signs")) sec = getConfig().createSection("signs");
            else sec = getConfig().getConfigurationSection("signs");
            int id = 0;
            for(GameSign sign : signs){
                ssec = sec.createSection("sign" + id);
                ssec.createSection("location", serializeLocation(sign.getLocation()));
                ssec.set("data", sign.getCommand() + ";;" + sign.getArgument() + ";;" + sign.getText());
                id++;
            }
        }
    - Загружает и сохраняет таблички в конфиг (это должна делать миниигра)
    Переделал JavaDocs в UTF-8.
    Что-то никто не смотрит. Приглашаю @BeYkeR, @JustBlender, @fromgate.
     
  6. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
  7. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Попробовать не хотите?
     
  8. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Извини, времени нету (Пишу свою библиотеку), но возьму себе , скоро понадобиться. (БУДУ ДЕКОМПИЛИРОВАТЬ АЗАЗАЗАЗА)
     
  9. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Исходники могу дать. В скайп пишите.
     
  10. fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate

    А? Ну... вообще у меня есть желание сделать универсальный конструктор для всякого рода мини-игр (не обязательно мини). Но вряд ли я это буду делать на основе какого-то API :)
     
  11. DigitalMisha

    DigitalMisha Активный участник Пользователь

    Баллы:
    58
    Неплохо было бы.
     
  12. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
  13. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    В русском JD одинаковые описания в конце event (join/leave).
     
  14. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Исправлю.
     
  15. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Да, и в чём принципиальное отлиие вашего API от тех же MGLib и Gamegine?
     
  16. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    :confused: Никогда таких не видел.
    Второй почти как мой.
     
  17. FirePoint

    FirePoint Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    Just_Andrew
    Что-то ты увлекся писать API для плагинов :)
     
  18. BeLkA

    BeLkA Старожил Пользователь

    Баллы:
    153
    Skype:
    FayStaff
    Super plagin vapshe!!!
     
  19. MrAnanasik

    MrAnanasik Старожил Пользователь

    Баллы:
    153
    спс большое))0)000))0)
    меньше замарочик будит))00)0)
     
  20. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Пожалуйста, если не сарказм.
     

Поделиться этой страницей