commit 7f74ab2a85df8d329e32388b2fa7951350aa6e52 Author: AlphaAE Date: Fri Apr 26 09:56:55 2019 +0800 Initial commit diff --git a/src/com/alphaae/mcpe/servers/InfoDisplay.java b/src/com/alphaae/mcpe/servers/InfoDisplay.java new file mode 100644 index 0000000..a9cbf94 --- /dev/null +++ b/src/com/alphaae/mcpe/servers/InfoDisplay.java @@ -0,0 +1,93 @@ +package com.alphaae.mcpe.servers; + +import cn.nukkit.Player; +import cn.nukkit.event.EventHandler; +import cn.nukkit.event.EventPriority; +import cn.nukkit.event.Listener; +import cn.nukkit.event.player.PlayerFormRespondedEvent; +import cn.nukkit.event.player.PlayerJoinEvent; +import cn.nukkit.event.player.PlayerQuitEvent; +import cn.nukkit.form.element.ElementButton; +import cn.nukkit.form.element.ElementButtonImageData; +import cn.nukkit.form.response.FormResponse; +import cn.nukkit.form.response.FormResponseModal; +import cn.nukkit.form.window.FormWindowModal; +import cn.nukkit.form.window.FormWindowSimple; +import cn.nukkit.scheduler.NukkitRunnable; +import cn.nukkit.scheduler.Task; +import cn.nukkit.scheduler.TaskHandler; +import cn.nukkit.utils.TextFormat; + +public class InfoDisplay implements Listener { + + private TaskHandler infoHandler; + + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) + public void onPlayerJoin(PlayerJoinEvent event) { + final Player player = event.getPlayer(); + + showTestWindow(player); +// showJoinWindow(player); + + try { + infoHandler = TestPlugin.getPlugin().getServer().getScheduler().scheduleDelayedRepeatingTask(new Task() { + @Override + public void onRun(int i) { + String name = player.getName(); + int ping = player.getPing(); + player.sendActionBar(TextFormat.colorize("&b" + name + " &fping: " + ping + "ms ")); + } + }, 100, 10); + } catch (Exception e) { + infoHandler.cancel(); + e.printStackTrace(); + } + + } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) + public void onPlayerQuit(PlayerQuitEvent event) { + if (infoHandler != null) + infoHandler.cancel(); + } + + private void showJoinWindow(Player player) { + new NukkitRunnable() { + public void run() { + FormWindowSimple form = new FormWindowSimple("介绍", "欢迎你 " + player.getName() + " \n\n介绍什么的懒得写了,还在开发中。。。\nQwQ\n\n\n\n\n\n\n\n\n\n"); + form.addButton(new ElementButton("关闭")); + + player.showFormWindow(form); + } + }.runTaskLater(TestPlugin.getPlugin(), 100); + } + + private void showTestWindow(Player player) { + new NukkitRunnable() { + public void run() { + FormWindowSimple form = new FormWindowSimple("商店", ""); + form.addButton(new ElementButton("购买", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/apple.png"))); + form.addButton(new ElementButton("购买", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/apple_golden.png"))); + form.addButton(new ElementButton("购买", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/diamond_helmet.png"))); + form.addButton(new ElementButton("购买", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/pumpkin_pie.png"))); + form.addButton(new ElementButton("购买", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/melon.png"))); + +// FormWindowModal formWindowModal = new FormWindowModal("协议", "猝死了要自己负责哦!", "确认", "你只能确认"); +// FormResponseModal f1 = formWindowModal.getResponse(); +//// f1.getClickedButtonId(); + player.showFormWindow(form); + } + }.runTaskLater(TestPlugin.getPlugin(), 100); + } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) + public void onPlayerFormResponded(PlayerFormRespondedEvent event) { + final Player player = event.getPlayer(); + final FormResponse formResponse = event.getResponse(); + +// FormResponseModal response = (FormResponseModal) formResponse; +// player.sendMessage("" + response.getClickedButtonId()); + } + + +} diff --git a/src/com/alphaae/mcpe/servers/TestPlugin.java b/src/com/alphaae/mcpe/servers/TestPlugin.java new file mode 100644 index 0000000..4f58e81 --- /dev/null +++ b/src/com/alphaae/mcpe/servers/TestPlugin.java @@ -0,0 +1,56 @@ +package com.alphaae.mcpe.servers; + +import cn.nukkit.Player; +import cn.nukkit.command.Command; +import cn.nukkit.command.CommandSender; +import cn.nukkit.plugin.Plugin; +import cn.nukkit.plugin.PluginBase; +import cn.nukkit.plugin.PluginManager; + +public class TestPlugin extends PluginBase { + + private static Plugin plugin; + + public static Plugin getPlugin() { + return plugin; + } + + @Override + public void onLoad() { + getLogger().info("onLoad! QwQ"); + } + + @Override + public void onEnable() { + plugin = this; + PluginManager pluginManager = getServer().getPluginManager(); + pluginManager.registerEvents(new InfoDisplay(), this); + } + + @Override + public void onDisable() { + super.onDisable(); + } + + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + Player player = sender.getServer().getPlayer(sender.getName()); + switch (command.getName()) { + case "hi": + if (sender.isPlayer()) { + player.sendTitle("Hi TiTle"); + player.sendPopup("Hi Popup"); + player.sendActionBar("Hi ActionBar"); + player.sendTip("Hi Tip"); + } + sender.sendMessage("Hi " + sender.getName()); + return true; +// +// case "menu": +// player.chat("/el open default.yml"); +// return true; + } + return false; + } +} diff --git a/src/resources/plugin.yml b/src/resources/plugin.yml new file mode 100644 index 0000000..7afc325 --- /dev/null +++ b/src/resources/plugin.yml @@ -0,0 +1,28 @@ +name: TestPlugin +main: com.alphaae.mcpe.servers.TestPlugin +version: "1.0.0" +api: ["1.0.8"] + +load: POSTWORLD + +author: alphaAE +description: AlpheAE的测试插件 +website: http://www.alphaae.com + +permissions: + testplugin.command.hi: + description: 允许用户使用hi指令 + default: true + testplugin.command.menu: + description: 允许用户使用menu指令 + default: true + +commands: + hi: + description: hi指令 + usage: "/hi" + permission: testplugin.command.hi +# menu: +# description: 菜单指令 +# usage: "/menu" +# permission: testplugin.command.hi \ No newline at end of file