From b36c37b5ab4083f77a45cdda36a5a77e6facded6 Mon Sep 17 00:00:00 2001 From: AlphaAE Date: Wed, 1 May 2019 18:31:58 +0800 Subject: [PATCH] 090501 --- src/com/alphaae/mcpe/servers/Config.java | 2 +- src/com/alphaae/mcpe/servers/MainPlugin.java | 10 +- .../mcpe/servers/command/CoinCommand.java | 4 + .../mcpe/servers/command/HiCommand.java | 10 +- .../servers/event/PlayerInteractSetEvent.java | 37 ++++++++ ...uitEvent.java => PlayerJoinQuitEvent.java} | 2 +- .../block/joinquit/LoadPlayerDataBlock.java | 1 + .../mcpe/servers/form/FormWindowMeun.java | 93 +++++++++++++++++++ .../servers/form/FormWindowOtherPlayer.java | 90 ++++++++++++++++++ .../servers/utils/ChangePlayerCoinUtils.java | 19 +++- src/resources/plugin.yml | 14 ++- 11 files changed, 264 insertions(+), 18 deletions(-) create mode 100644 src/com/alphaae/mcpe/servers/command/CoinCommand.java create mode 100644 src/com/alphaae/mcpe/servers/event/PlayerInteractSetEvent.java rename src/com/alphaae/mcpe/servers/event/{JoinQuitEvent.java => PlayerJoinQuitEvent.java} (96%) create mode 100644 src/com/alphaae/mcpe/servers/form/FormWindowMeun.java create mode 100644 src/com/alphaae/mcpe/servers/form/FormWindowOtherPlayer.java diff --git a/src/com/alphaae/mcpe/servers/Config.java b/src/com/alphaae/mcpe/servers/Config.java index 97776de..3d259c8 100644 --- a/src/com/alphaae/mcpe/servers/Config.java +++ b/src/com/alphaae/mcpe/servers/Config.java @@ -1,6 +1,6 @@ package com.alphaae.mcpe.servers; public interface Config { - int JOIN_WAITING_TIME = 200; + int JOIN_WAITING_TIME = 240; } diff --git a/src/com/alphaae/mcpe/servers/MainPlugin.java b/src/com/alphaae/mcpe/servers/MainPlugin.java index 0a668b2..11a4a74 100644 --- a/src/com/alphaae/mcpe/servers/MainPlugin.java +++ b/src/com/alphaae/mcpe/servers/MainPlugin.java @@ -5,7 +5,8 @@ import cn.nukkit.plugin.Plugin; import cn.nukkit.plugin.PluginBase; import cn.nukkit.plugin.PluginManager; import com.alphaae.mcpe.servers.command.HiCommand; -import com.alphaae.mcpe.servers.event.JoinQuitEvent; +import com.alphaae.mcpe.servers.event.PlayerInteractSetEvent; +import com.alphaae.mcpe.servers.event.PlayerJoinQuitEvent; public class MainPlugin extends PluginBase { @@ -17,7 +18,7 @@ public class MainPlugin extends PluginBase { @Override public void onLoad() { - getLogger().info("onLoad! QwQ"); + getLogger().info("AlphaAPI被加载!"); } @Override @@ -41,11 +42,12 @@ public class MainPlugin extends PluginBase { private void registerCommands() { SimpleCommandMap commandMap = getServer().getCommandMap(); - commandMap.register("TestPlugin", new HiCommand(this)); + commandMap.register("AlphaAPI", new HiCommand(this)); } private void registerEvents() { PluginManager pluginManager = getServer().getPluginManager(); - pluginManager.registerEvents(new JoinQuitEvent(), this); + pluginManager.registerEvents(new PlayerJoinQuitEvent(), this); + pluginManager.registerEvents(new PlayerInteractSetEvent(), this); } } diff --git a/src/com/alphaae/mcpe/servers/command/CoinCommand.java b/src/com/alphaae/mcpe/servers/command/CoinCommand.java new file mode 100644 index 0000000..1323c8a --- /dev/null +++ b/src/com/alphaae/mcpe/servers/command/CoinCommand.java @@ -0,0 +1,4 @@ +package com.alphaae.mcpe.servers.command; + +public class CoinCommand { +} diff --git a/src/com/alphaae/mcpe/servers/command/HiCommand.java b/src/com/alphaae/mcpe/servers/command/HiCommand.java index 7988a67..79603f1 100644 --- a/src/com/alphaae/mcpe/servers/command/HiCommand.java +++ b/src/com/alphaae/mcpe/servers/command/HiCommand.java @@ -6,7 +6,6 @@ import cn.nukkit.command.CommandSender; import cn.nukkit.utils.TextFormat; import com.alphaae.mcpe.servers.MainPlugin; import com.alphaae.mcpe.servers.StaticData; -import com.alphaae.mcpe.servers.form.FormWindowMy; import com.alphaae.mcpe.servers.model.RePlayer; import com.alphaae.mcpe.servers.utils.ChangePlayerCoinUtils; @@ -23,16 +22,15 @@ public class HiCommand extends Command { @Override public boolean execute(CommandSender commandSender, String s, String[] strings) { if (!this.plugin.isEnabled()) return false; - if (!commandSender.hasPermission("testplugin.command.menu")) { + if (!commandSender.hasPermission("alphaapi.command.everybody")) { commandSender.sendMessage(TextFormat.RED + "你没有权限使用该指令"); return false; } - Player player = commandSender.getServer().getPlayer(commandSender.getName()); - UUID uuid = player.getUniqueId(); if (commandSender.isPlayer()) { -// FormWindowMy form = new FormWindowMy(player); -// player.showFormWindow(form); + Player player = commandSender.getServer().getPlayer(commandSender.getName()); + UUID uuid = player.getUniqueId(); + //测试指令 RePlayer rePlayer = StaticData.rePlayerMap.get(uuid); ChangePlayerCoinUtils.ReduceIcon(rePlayer, 100); return true; diff --git a/src/com/alphaae/mcpe/servers/event/PlayerInteractSetEvent.java b/src/com/alphaae/mcpe/servers/event/PlayerInteractSetEvent.java new file mode 100644 index 0000000..a5ed0f6 --- /dev/null +++ b/src/com/alphaae/mcpe/servers/event/PlayerInteractSetEvent.java @@ -0,0 +1,37 @@ +package com.alphaae.mcpe.servers.event; + +import cn.nukkit.Player; +import cn.nukkit.event.EventHandler; +import cn.nukkit.event.EventPriority; +import cn.nukkit.event.Listener; +import cn.nukkit.event.player.PlayerInteractEvent; +import cn.nukkit.event.player.PlayerItemHeldEvent; +import cn.nukkit.item.Item; +import com.alphaae.mcpe.servers.form.FormWindowMeun; + +public class PlayerInteractSetEvent implements Listener { + + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) + public void onPlayerInteract(PlayerInteractEvent event) { + Player player = event.getPlayer(); + Item item = event.getItem(); + if (player != null && item != null) { + if (item.getId() == 347) { + FormWindowMeun form = new FormWindowMeun(player); + player.showFormWindow(form); + } + } + } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) + public void onPlayerItemHeld(PlayerItemHeldEvent event) { + Player player = event.getPlayer(); + Item item = event.getItem(); + if (player != null && item != null) { + if (item.getId() == 347) { + + } + } + } + +} diff --git a/src/com/alphaae/mcpe/servers/event/JoinQuitEvent.java b/src/com/alphaae/mcpe/servers/event/PlayerJoinQuitEvent.java similarity index 96% rename from src/com/alphaae/mcpe/servers/event/JoinQuitEvent.java rename to src/com/alphaae/mcpe/servers/event/PlayerJoinQuitEvent.java index ea7daca..5f6e2ff 100644 --- a/src/com/alphaae/mcpe/servers/event/JoinQuitEvent.java +++ b/src/com/alphaae/mcpe/servers/event/PlayerJoinQuitEvent.java @@ -13,7 +13,7 @@ import com.alphaae.mcpe.servers.event.block.joinquit.LoadPlayerDataBlock; import java.util.ArrayList; import java.util.List; -public class JoinQuitEvent implements Listener { +public class PlayerJoinQuitEvent implements Listener { private static List eventBlockList; diff --git a/src/com/alphaae/mcpe/servers/event/block/joinquit/LoadPlayerDataBlock.java b/src/com/alphaae/mcpe/servers/event/block/joinquit/LoadPlayerDataBlock.java index 25e9e26..6a3efb3 100644 --- a/src/com/alphaae/mcpe/servers/event/block/joinquit/LoadPlayerDataBlock.java +++ b/src/com/alphaae/mcpe/servers/event/block/joinquit/LoadPlayerDataBlock.java @@ -19,6 +19,7 @@ public class LoadPlayerDataBlock implements JoinQuitEventBlock { String title = rePlayer.getTitle(); + player.setNameTag(TextFormat.colorize("&e[" + title + "] &b" + player.getName() + "&f")); player.setDisplayName(TextFormat.colorize("&e[" + title + "] &b" + player.getName() + "&f")); StaticData.rePlayerMap.put(player.getUniqueId(), rePlayer); } diff --git a/src/com/alphaae/mcpe/servers/form/FormWindowMeun.java b/src/com/alphaae/mcpe/servers/form/FormWindowMeun.java new file mode 100644 index 0000000..abd5b10 --- /dev/null +++ b/src/com/alphaae/mcpe/servers/form/FormWindowMeun.java @@ -0,0 +1,93 @@ +package com.alphaae.mcpe.servers.form; + +import cn.nukkit.Player; +import cn.nukkit.form.element.ElementButton; +import cn.nukkit.form.element.ElementButtonImageData; +import cn.nukkit.form.response.FormResponseSimple; +import cn.nukkit.form.window.FormWindow; +import cn.nukkit.utils.TextFormat; +import com.alphaae.mcpe.servers.StaticData; +import com.alphaae.mcpe.servers.model.RePlayer; +import com.google.gson.Gson; + +import java.util.ArrayList; +import java.util.List; + +public class FormWindowMeun extends FormWindow { + private final String type = "form"; + private String title; + private String content; + private List buttons; + private FormResponseSimple response; + + public FormWindowMeun(Player player) { + this.title = "我"; + this.buttons = new ArrayList(); + + String name = player.getName(); + RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId()); + + this.content = TextFormat.colorize("&b" + name + "&f\n" + + "---------------------------------\n" + + "称号: " + rePlayer.getTitle() + "\n" + + "硬币: " + rePlayer.getCoin() + "\n" + + "---------------------------------\n" + + ""); + + buttons.add(new ElementButton("传送", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/ender_pearl.png"))); + buttons.add(new ElementButton("任务", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/book_writable.png"))); + buttons.add(new ElementButton("升级", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_pickaxe.png"))); + + } + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getContent() { + return this.content; + } + + public void setContent(String content) { + this.content = content; + } + + public List getButtons() { + return this.buttons; + } + + public void addButton(ElementButton button) { + this.buttons.add(button); + } + + public String getJSONData() { + return (new Gson()).toJson(this); + } + + public FormResponseSimple getResponse() { + return this.response; + } + + public void setResponse(String data) { + if (data.equals("null")) { + this.closed = true; + } else { + int buttonID; + try { + buttonID = Integer.parseInt(data); + } catch (Exception var4) { + return; + } + + if (buttonID >= this.buttons.size()) { + this.response = new FormResponseSimple(buttonID, (ElementButton) null); + } else { + this.response = new FormResponseSimple(buttonID, (ElementButton) this.buttons.get(buttonID)); + } + } + } +} diff --git a/src/com/alphaae/mcpe/servers/form/FormWindowOtherPlayer.java b/src/com/alphaae/mcpe/servers/form/FormWindowOtherPlayer.java new file mode 100644 index 0000000..376327d --- /dev/null +++ b/src/com/alphaae/mcpe/servers/form/FormWindowOtherPlayer.java @@ -0,0 +1,90 @@ +package com.alphaae.mcpe.servers.form; + +import cn.nukkit.Player; +import cn.nukkit.form.element.ElementButton; +import cn.nukkit.form.element.ElementButtonImageData; +import cn.nukkit.form.response.FormResponseSimple; +import cn.nukkit.form.window.FormWindow; +import com.google.gson.Gson; + +import java.util.ArrayList; +import java.util.List; + +public class FormWindowOtherPlayer extends FormWindow { + private final String type = "form"; + private String title; + private String content; + private List buttons; + private FormResponseSimple response; + + public FormWindowOtherPlayer(Player player) { + this.title = ""; + this.content = ""; + this.response = null; + + String name = player.getName(); + String coin = "2000"; + + String content = "" + name + "\n" + + "---------------------------------\n---------------------------------\n" + + "硬币: " + coin + "\n" + + ""; + + this.title = name; + this.content = content; + this.buttons = new ArrayList(); + + buttons.add(new ElementButton("", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, ""))); + } + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getContent() { + return this.content; + } + + public void setContent(String content) { + this.content = content; + } + + public List getButtons() { + return this.buttons; + } + + public void addButton(ElementButton button) { + this.buttons.add(button); + } + + public String getJSONData() { + return (new Gson()).toJson(this); + } + + public FormResponseSimple getResponse() { + return this.response; + } + + public void setResponse(String data) { + if (data.equals("null")) { + this.closed = true; + } else { + int buttonID; + try { + buttonID = Integer.parseInt(data); + } catch (Exception var4) { + return; + } + + if (buttonID >= this.buttons.size()) { + this.response = new FormResponseSimple(buttonID, (ElementButton) null); + } else { + this.response = new FormResponseSimple(buttonID, (ElementButton) this.buttons.get(buttonID)); + } + } + } +} diff --git a/src/com/alphaae/mcpe/servers/utils/ChangePlayerCoinUtils.java b/src/com/alphaae/mcpe/servers/utils/ChangePlayerCoinUtils.java index d6ca5f1..13ad048 100644 --- a/src/com/alphaae/mcpe/servers/utils/ChangePlayerCoinUtils.java +++ b/src/com/alphaae/mcpe/servers/utils/ChangePlayerCoinUtils.java @@ -1,6 +1,7 @@ package com.alphaae.mcpe.servers.utils; import cn.nukkit.Player; +import cn.nukkit.utils.TextFormat; import com.alphaae.mcpe.servers.MainPlugin; import com.alphaae.mcpe.servers.model.RePlayer; @@ -13,7 +14,6 @@ public class ChangePlayerCoinUtils { return PlayerDataLoadUtils.ChangeData(rePlayer); } - public static boolean ReduceIcon(RePlayer rePlayer, int count) { int userCoin = rePlayer.getCoin(); int newCoin = userCoin - count; @@ -22,7 +22,22 @@ public class ChangePlayerCoinUtils { return PlayerDataLoadUtils.ChangeData(rePlayer); } Player player = MainPlugin.getPlugin().getServer().getPlayer(rePlayer.getUuid()).get(); - player.sendMessage(""); + player.sendMessage(TextFormat.colorize("&4硬币不足")); + return false; + } + + public static boolean GaveIcon(RePlayer rePlayer1, RePlayer rePlayer2, int count) { + int userCoin1 = rePlayer1.getCoin(); + int userCoin2 = rePlayer2.getCoin(); + int newCoin1 = userCoin1 - count; + int newCoin2 = userCoin2 + count; + if (newCoin1 >= 0) { + rePlayer1.setCoin(newCoin1); + rePlayer2.setCoin(newCoin2); + return PlayerDataLoadUtils.ChangeData(rePlayer1) & PlayerDataLoadUtils.ChangeData(rePlayer2); + } + Player player = MainPlugin.getPlugin().getServer().getPlayer(rePlayer1.getUuid()).get(); + player.sendMessage(TextFormat.colorize("&4硬币不足")); return false; } diff --git a/src/resources/plugin.yml b/src/resources/plugin.yml index c257d97..355d51d 100644 --- a/src/resources/plugin.yml +++ b/src/resources/plugin.yml @@ -1,4 +1,4 @@ -name: MainPlugin +name: AlphaAPI main: com.alphaae.mcpe.servers.MainPlugin version: "1.0.0" api: ["1.0.8"] @@ -6,12 +6,18 @@ api: ["1.0.8"] load: POSTWORLD author: alphaAE -description: AlpheAE的测试插件 +description: AlpheAE 插件组 核心插件 website: http://www.alphaae.com permissions: - testplugin.command.menu: - description: 允许用户使用menu指令 + alphaapi.command.console: + description: 允许控制台使用的指令 + default: false + alphaapi.command.op: + description: 允许OP用户使用的指令 + default: op + alphaapi.command.everybody: + description: 允许所有用户使用的指令 default: true #commands: