re project
This commit is contained in:
6
src/com/alphaae/mcpe/servers/Config.java
Normal file
6
src/com/alphaae/mcpe/servers/Config.java
Normal file
@ -0,0 +1,6 @@
|
||||
package com.alphaae.mcpe.servers;
|
||||
|
||||
public interface Config {
|
||||
int JOIN_WAITING_TIME = 174;
|
||||
|
||||
}
|
@ -1,98 +0,0 @@
|
||||
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;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class InfoDisplay implements Listener {
|
||||
|
||||
private final int WAITING_TIME = 174;
|
||||
|
||||
private TaskHandler infoHandler;
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
|
||||
showJoinWindow(player);
|
||||
// showTestWindow(player);
|
||||
|
||||
try {
|
||||
infoHandler = TestPlugin.getPlugin().getServer().getScheduler().scheduleDelayedRepeatingTask(new Task() {
|
||||
@Override
|
||||
public void onRun(int i) {
|
||||
String name = player.getName();
|
||||
int ping = player.getPing();
|
||||
String uuid = player.getUniqueId().toString();
|
||||
int coin = 2000;
|
||||
|
||||
player.sendActionBar(TextFormat.colorize("&b" + name + " &f延迟: " + ping + "ms 硬币: " + coin));
|
||||
}
|
||||
}, WAITING_TIME, 12);
|
||||
} 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\nQwQ,还在开发中。。。\n\n开始测试硬币系统");
|
||||
player.showFormWindow(form);
|
||||
}
|
||||
}.runTaskLater(TestPlugin.getPlugin(), WAITING_TIME);
|
||||
}
|
||||
|
||||
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(), WAITING_TIME);
|
||||
|
||||
}
|
||||
|
||||
@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());
|
||||
}
|
||||
|
||||
|
||||
}
|
51
src/com/alphaae/mcpe/servers/MainPlugin.java
Normal file
51
src/com/alphaae/mcpe/servers/MainPlugin.java
Normal file
@ -0,0 +1,51 @@
|
||||
package com.alphaae.mcpe.servers;
|
||||
|
||||
import cn.nukkit.command.SimpleCommandMap;
|
||||
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;
|
||||
|
||||
public class MainPlugin 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;
|
||||
initConfig();
|
||||
registerCommands();
|
||||
registerEvents();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
super.onDisable();
|
||||
}
|
||||
|
||||
public void initConfig() {
|
||||
getDataFolder().mkdirs();
|
||||
saveResource("config.yml");
|
||||
reloadConfig();
|
||||
}
|
||||
|
||||
private void registerCommands() {
|
||||
SimpleCommandMap commandMap = getServer().getCommandMap();
|
||||
commandMap.register("TestPlugin", new HiCommand(this));
|
||||
}
|
||||
|
||||
private void registerEvents() {
|
||||
PluginManager pluginManager = getServer().getPluginManager();
|
||||
pluginManager.registerEvents(new JoinQuitEvent(), this);
|
||||
}
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
package com.alphaae.mcpe.servers;
|
||||
|
||||
import cn.nukkit.Player;
|
||||
import cn.nukkit.command.Command;
|
||||
import cn.nukkit.command.CommandSender;
|
||||
import cn.nukkit.form.element.Element;
|
||||
import cn.nukkit.form.element.ElementButtonImageData;
|
||||
import cn.nukkit.form.element.ElementDropdown;
|
||||
import cn.nukkit.form.element.ElementInput;
|
||||
import cn.nukkit.form.window.FormWindowCustom;
|
||||
import cn.nukkit.form.window.FormWindowSimple;
|
||||
import cn.nukkit.inventory.InventoryType;
|
||||
import cn.nukkit.inventory.PlayerInventory;
|
||||
import cn.nukkit.plugin.Plugin;
|
||||
import cn.nukkit.plugin.PluginBase;
|
||||
import cn.nukkit.plugin.PluginManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
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()) {
|
||||
// List<Element> list = new ArrayList();
|
||||
// list.add(new ElementDropdown("2333"));
|
||||
// list.add(new ElementInput("输入"));
|
||||
// FormWindowCustom form = new FormWindowCustom("title", list);
|
||||
//// form.addButton(ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/melon.png"));
|
||||
// player.showFormWindow()
|
||||
}
|
||||
return true;
|
||||
|
||||
// case "menu":
|
||||
// player.chat("/el open default.yml");
|
||||
// return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
34
src/com/alphaae/mcpe/servers/command/HiCommand.java
Normal file
34
src/com/alphaae/mcpe/servers/command/HiCommand.java
Normal file
@ -0,0 +1,34 @@
|
||||
package com.alphaae.mcpe.servers.command;
|
||||
|
||||
import cn.nukkit.Player;
|
||||
import cn.nukkit.command.Command;
|
||||
import cn.nukkit.command.CommandSender;
|
||||
import cn.nukkit.utils.TextFormat;
|
||||
import com.alphaae.mcpe.servers.MainPlugin;
|
||||
import com.alphaae.mcpe.servers.form.FormWindowMy;
|
||||
|
||||
public class HiCommand extends Command {
|
||||
private MainPlugin plugin;
|
||||
|
||||
public HiCommand(MainPlugin plugin) {
|
||||
super("hi", "Hi测试指令", "/hi");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(CommandSender commandSender, String s, String[] strings) {
|
||||
if (!this.plugin.isEnabled()) return false;
|
||||
if (!commandSender.hasPermission("testplugin.command.menu")) {
|
||||
commandSender.sendMessage(TextFormat.RED + "你没有权限使用该指令");
|
||||
return false;
|
||||
}
|
||||
|
||||
Player player = commandSender.getServer().getPlayer(commandSender.getName());
|
||||
if (commandSender.isPlayer()) {
|
||||
FormWindowMy form = new FormWindowMy(player);
|
||||
player.showFormWindow(form);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
39
src/com/alphaae/mcpe/servers/event/JoinQuitEvent.java
Normal file
39
src/com/alphaae/mcpe/servers/event/JoinQuitEvent.java
Normal file
@ -0,0 +1,39 @@
|
||||
package com.alphaae.mcpe.servers.event;
|
||||
|
||||
import cn.nukkit.event.EventHandler;
|
||||
import cn.nukkit.event.EventPriority;
|
||||
import cn.nukkit.event.Listener;
|
||||
import cn.nukkit.event.player.PlayerJoinEvent;
|
||||
import cn.nukkit.event.player.PlayerQuitEvent;
|
||||
import com.alphaae.mcpe.servers.event.block.joinquit.DisplayInfoBlock;
|
||||
import com.alphaae.mcpe.servers.event.block.joinquit.JoinQuitEventBlock;
|
||||
import com.alphaae.mcpe.servers.event.block.joinquit.JoinWindowBlock;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class JoinQuitEvent implements Listener {
|
||||
|
||||
private static List<JoinQuitEventBlock> eventBlockList;
|
||||
|
||||
static {
|
||||
eventBlockList = new ArrayList<>();
|
||||
eventBlockList.add(new DisplayInfoBlock());
|
||||
eventBlockList.add(new JoinWindowBlock());
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
for (JoinQuitEventBlock eventBlock : eventBlockList) {
|
||||
eventBlock.onPlayerJoin(event);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
for (JoinQuitEventBlock eventBlock : eventBlockList) {
|
||||
eventBlock.onPlayerQuit(event);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package com.alphaae.mcpe.servers.event.block.joinquit;
|
||||
|
||||
import cn.nukkit.Player;
|
||||
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.window.FormWindowSimple;
|
||||
import cn.nukkit.scheduler.NukkitRunnable;
|
||||
import cn.nukkit.scheduler.Task;
|
||||
import cn.nukkit.scheduler.TaskHandler;
|
||||
import cn.nukkit.utils.TextFormat;
|
||||
import com.alphaae.mcpe.servers.Config;
|
||||
import com.alphaae.mcpe.servers.MainPlugin;
|
||||
|
||||
public class DisplayInfoBlock implements JoinQuitEventBlock {
|
||||
|
||||
private TaskHandler infoHandler;
|
||||
|
||||
public DisplayInfoBlock() {
|
||||
}
|
||||
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
|
||||
try {
|
||||
infoHandler = MainPlugin.getPlugin().getServer().getScheduler().scheduleDelayedRepeatingTask(new Task() {
|
||||
@Override
|
||||
public void onRun(int i) {
|
||||
String name = player.getName();
|
||||
int ping = player.getPing();
|
||||
String uuid = player.getUniqueId().toString();
|
||||
int coin = 2000;
|
||||
|
||||
player.sendActionBar(TextFormat.colorize("&b" + name + " &f延迟: " + ping + "ms 硬币: " + coin));
|
||||
}
|
||||
}, Config.JOIN_WAITING_TIME, 12);
|
||||
} catch (Exception e) {
|
||||
infoHandler.cancel();
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
if (infoHandler != null)
|
||||
infoHandler.cancel();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.alphaae.mcpe.servers.event.block.joinquit;
|
||||
|
||||
import cn.nukkit.event.player.PlayerJoinEvent;
|
||||
import cn.nukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public interface JoinQuitEventBlock {
|
||||
void onPlayerJoin(PlayerJoinEvent event);
|
||||
|
||||
void onPlayerQuit(PlayerQuitEvent event);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.alphaae.mcpe.servers.event.block.joinquit;
|
||||
|
||||
import cn.nukkit.Player;
|
||||
import cn.nukkit.event.player.PlayerJoinEvent;
|
||||
import cn.nukkit.event.player.PlayerQuitEvent;
|
||||
import cn.nukkit.form.window.FormWindowSimple;
|
||||
import cn.nukkit.scheduler.NukkitRunnable;
|
||||
import com.alphaae.mcpe.servers.Config;
|
||||
import com.alphaae.mcpe.servers.MainPlugin;
|
||||
|
||||
public class JoinWindowBlock implements JoinQuitEventBlock {
|
||||
|
||||
@Override
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
showJoinWindow(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
|
||||
}
|
||||
|
||||
private void showJoinWindow(Player player) {
|
||||
new NukkitRunnable() {
|
||||
public void run() {
|
||||
String joinText = MainPlugin.getPlugin().getConfig().getString("join-text");
|
||||
FormWindowSimple form = new FormWindowSimple("公告", "欢迎你 " + player.getName() + " \n\n" + joinText);
|
||||
player.showFormWindow(form);
|
||||
}
|
||||
}.runTaskLater(MainPlugin.getPlugin(), Config.JOIN_WAITING_TIME);
|
||||
}
|
||||
}
|
87
src/com/alphaae/mcpe/servers/form/FormWindowMy.java
Normal file
87
src/com/alphaae/mcpe/servers/form/FormWindowMy.java
Normal file
@ -0,0 +1,87 @@
|
||||
package com.alphaae.mcpe.servers.form;
|
||||
|
||||
import cn.nukkit.Player;
|
||||
import cn.nukkit.form.element.ElementButton;
|
||||
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 FormWindowMy extends FormWindow {
|
||||
private final String type = "form";
|
||||
private String title;
|
||||
private String content;
|
||||
private List<ElementButton> buttons;
|
||||
private FormResponseSimple response;
|
||||
|
||||
public FormWindowMy(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();
|
||||
}
|
||||
|
||||
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<ElementButton> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
10
src/com/alphaae/mcpe/servers/model/SuPlayer.java
Normal file
10
src/com/alphaae/mcpe/servers/model/SuPlayer.java
Normal file
@ -0,0 +1,10 @@
|
||||
package com.alphaae.mcpe.servers.model;
|
||||
|
||||
import cn.nukkit.Player;
|
||||
|
||||
public class SuPlayer {
|
||||
private Player player;
|
||||
private String name;
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user