Простой плагин на примере NoSteve

fromgate

Administrator
В качестве примера, привожу самый простой плагин, который только может быть: NoSteve

Исходный код - всего навсего один класс:
Code:
package ru.nukkit.plugins.nosteve;

import cn.nukkit.event.EventHandler;
import cn.nukkit.event.Listener;
import cn.nukkit.event.player.PlayerLoginEvent;
import cn.nukkit.plugin.PluginBase;

public class NoSteve extends PluginBase implements Listener {

    public void log (String message){
        this.getLogger().info(colorize (message));
    }
   
    @Override
    public void onEnable() {
        log ("&fenabled!");
        this.getServer().getPluginManager().registerEvents(this,this);
    }
   
    public String colorize(String textToTranslate){
        char[] b = textToTranslate.toCharArray();                                                       
        for (int i = 0; i < b.length - 1; i++) {                                                       
            if ((b[i] == '&') && ("0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(b[(i + 1)]) > -1))
            {                                                                                             
                b[i] = '§';                                                                                 
                b[(i + 1)] = Character.toLowerCase(b[(i + 1)]);                                             
            }                                                                                             
        }                                                                                               
        return new String(b);                                                                           
    }
   
    @EventHandler
    public void onLogin (PlayerLoginEvent event){
        if (!event.getPlayer().getName().equalsIgnoreCase("Steve")) return;
        event.setKickMessage(colorize ("&cSteve, you're not welcome here!"));
        event.setCancelled(true);
    }
   
   
}
Вот plugin.yml:
Code:
#name, main, version and api are required
name: NoSteve
main: ru.nukkit.plugins.nosteve.NoSteve
#remember version and api is string, don't write it like this: 1.0.0, or there will be an exception
version: "0.0.1"
api: ["1.0.0"]
load: POSTWORLD
author: fromgate, nukkit.ru
description: Steve name is forbidden at your server!
 

Iggy

Pioneer
Очень интересный проект, но где я могу взять API документацию для плагинов?)
 

fromgate

Administrator
@Iggy
Документации пока не существует.
Но в тоже время, лично для меня она не требуется (как не требовалась и документация для bukkit).
Методы названы "логично", по сравнению с craftbukkit - есть огромное преимущество: тут нет NMS.
Т.е. подключаешь в качестве библиотеки nukkit.jar и компилируешь.
В качестве образца - можно брать любой плагин декомпилировать или смотреть исходники на githab'е.

Вот мои наккит-плагины на гитхабе:
https://github.com/fromgate/Welcome
https://github.com/fromgate/WhereAmI
https://github.com/fromgate/Space2Slash

Система развивается, каждый день что-то добавляется.
Теоретически это может коснуться и готовых плагинов, но этого пугаться не нужно - всё что меняется - это к лучшему ;)
 
Top