重写窗体构架

This commit is contained in:
AlphaAE
2019-05-06 12:03:07 +08:00
parent b50cb3d25f
commit de12f82925
3 changed files with 59 additions and 123 deletions

View File

@ -6,15 +6,20 @@ import cn.nukkit.event.EventPriority;
import cn.nukkit.event.Listener; import cn.nukkit.event.Listener;
import cn.nukkit.event.player.PlayerFormRespondedEvent; import cn.nukkit.event.player.PlayerFormRespondedEvent;
import cn.nukkit.form.window.FormWindow; import cn.nukkit.form.window.FormWindow;
import com.alphaae.mcpe.servers.form.FormWindowMeun;
import com.alphaae.mcpe.servers.form.FormWindowOtherPlayer;
public class FormRespondedEvent implements Listener { public class FormRespondedEvent implements Listener {
//窗口返回事件 //窗口返回事件
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onPlayerFormResponded(PlayerFormRespondedEvent event) { public void onPlayerFormResponded(PlayerFormRespondedEvent event) {
Player player = event.getPlayer();
FormWindow window = event.getWindow(); FormWindow window = event.getWindow();
if (event.getResponse() == null) return;
if (window instanceof FormWindowMeun)
((FormWindowMeun) window).RespondedEvent(event);
else if (window instanceof FormWindowOtherPlayer)
((FormWindowOtherPlayer) window).RespondedEvent(event);
} }

View File

@ -1,10 +1,12 @@
package com.alphaae.mcpe.servers.form; package com.alphaae.mcpe.servers.form;
import cn.nukkit.Player; import cn.nukkit.Player;
import cn.nukkit.event.player.PlayerFormRespondedEvent;
import cn.nukkit.form.element.ElementButton; import cn.nukkit.form.element.ElementButton;
import cn.nukkit.form.element.ElementButtonImageData; import cn.nukkit.form.element.ElementButtonImageData;
import cn.nukkit.form.response.FormResponseSimple; import cn.nukkit.form.response.FormResponseSimple;
import cn.nukkit.form.window.FormWindow; import cn.nukkit.form.window.FormWindow;
import cn.nukkit.form.window.FormWindowSimple;
import cn.nukkit.utils.TextFormat; import cn.nukkit.utils.TextFormat;
import com.alphaae.mcpe.servers.StaticData; import com.alphaae.mcpe.servers.StaticData;
import com.alphaae.mcpe.servers.model.RePlayer; import com.alphaae.mcpe.servers.model.RePlayer;
@ -13,80 +15,48 @@ import com.google.gson.Gson;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class FormWindowMeun extends FormWindow { public class FormWindowMeun extends FormWindowSimple {
private final String type = "form";
private String title;
private String content;
private List<ElementButton> buttons;
private FormResponseSimple response;
public FormWindowMeun(Player player) { public FormWindowMeun(Player player) {
super("", "");
createContents(player);
createButtons();
}
private void createContents(Player player) {
String name = player.getName(); String name = player.getName();
RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId()); RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
String content = TextFormat.colorize("&b" + name + "&f\n" +
this.title = "";
this.buttons = new ArrayList();
this.content = TextFormat.colorize("&b" + name + "&f\n" +
"---------------------------------\n" + "---------------------------------\n" +
"称号: " + rePlayer.getTitle() + "\n" + "称号: " + rePlayer.getTitle() + "\n" +
"硬币: " + rePlayer.getCoin() + "\n" + "硬币: " + rePlayer.getCoin() + "\n" +
"---------------------------------\n" + "---------------------------------\n" +
""); "");
setContent(content);
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() { private void createButtons() {
return this.title; addButton(new ElementButton("传送", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/ender_pearl.png")));
addButton(new ElementButton("任务", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/book_writable.png")));
addButton(new ElementButton("升级", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_pickaxe.png")));
} }
public void setTitle(String title) { public void RespondedEvent(PlayerFormRespondedEvent event) {
this.title = title; String clickedText = ((FormResponseSimple) event.getResponse()).getClickedButton().getText();
Player player = event.getPlayer();
if (!event.wasClosed()) {
switch (clickedText){
case "传送":
player.sendMessage("传送");
break;
case "任务":
player.sendMessage("任务");
break;
case "升级":
player.sendMessage("升级");
break;
}
}
} }
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));
}
}
}
} }

View File

@ -1,10 +1,12 @@
package com.alphaae.mcpe.servers.form; package com.alphaae.mcpe.servers.form;
import cn.nukkit.Player; import cn.nukkit.Player;
import cn.nukkit.event.player.PlayerFormRespondedEvent;
import cn.nukkit.form.element.ElementButton; import cn.nukkit.form.element.ElementButton;
import cn.nukkit.form.element.ElementButtonImageData; import cn.nukkit.form.element.ElementButtonImageData;
import cn.nukkit.form.response.FormResponseSimple; import cn.nukkit.form.response.FormResponseSimple;
import cn.nukkit.form.window.FormWindow; import cn.nukkit.form.window.FormWindow;
import cn.nukkit.form.window.FormWindowSimple;
import cn.nukkit.utils.TextFormat; import cn.nukkit.utils.TextFormat;
import com.alphaae.mcpe.servers.StaticData; import com.alphaae.mcpe.servers.StaticData;
import com.alphaae.mcpe.servers.model.RePlayer; import com.alphaae.mcpe.servers.model.RePlayer;
@ -13,79 +15,38 @@ import com.google.gson.Gson;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class FormWindowOtherPlayer extends FormWindow { public class FormWindowOtherPlayer extends FormWindowSimple {
private final String type = "form";
private String title;
private String content;
private List<ElementButton> buttons;
private FormResponseSimple response;
public FormWindowOtherPlayer(Player player, Player player2) { public FormWindowOtherPlayer(Player player, Player player2) {
// String name = player.getName(); super("", "");
// RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId()); createContents(player, player2);
createButtons();
}
private void createContents(Player player, Player player2) {
String name = player.getName();
RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
String name2 = player2.getName(); String name2 = player2.getName();
RePlayer rePlayer2 = StaticData.rePlayerMap.get(player2.getUniqueId()); RePlayer rePlayer2 = StaticData.rePlayerMap.get(player2.getUniqueId());
String content = TextFormat.colorize("&b" + name2 + "&f\n" +
this.title = "玩家:" + name2;
this.buttons = new ArrayList();
this.content = TextFormat.colorize("&b" + name2 + "&f\n" +
"---------------------------------\n" + "---------------------------------\n" +
"称号: " + rePlayer2.getTitle() + "\n" + "称号: " + rePlayer2.getTitle() + "\n" +
"---------------------------------\n" + "---------------------------------\n" +
""); "");
setTitle("玩家:" + name2);
buttons.add(new ElementButton("组队", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_helmet.png"))); setContent(content);
buttons.add(new ElementButton("交易", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/emerald.png")));
} }
public String getTitle() { private void createButtons() {
return this.title; addButton(new ElementButton("组队", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_helmet.png")));
addButton(new ElementButton("交易", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/emerald.png")));
} }
public void setTitle(String title) { public void RespondedEvent(PlayerFormRespondedEvent event) {
this.title = title; String clickedText = ((FormResponseSimple) event.getResponse()).getClickedButton().getText();
Player player = event.getPlayer();
} }
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));
}
}
}
} }