fix form bug

This commit is contained in:
AlphaAE
2019-05-09 22:02:22 +08:00
parent 69efe92737
commit 5a2fc4dc63
3 changed files with 64 additions and 15 deletions

View File

@ -10,6 +10,7 @@ import cn.nukkit.event.player.PlayerInteractEntityEvent;
import cn.nukkit.event.player.PlayerInteractEvent; import cn.nukkit.event.player.PlayerInteractEvent;
import cn.nukkit.event.player.PlayerItemHeldEvent; import cn.nukkit.event.player.PlayerItemHeldEvent;
import cn.nukkit.item.Item; import cn.nukkit.item.Item;
import cn.nukkit.plugin.Plugin;
import cn.nukkit.utils.TextFormat; import cn.nukkit.utils.TextFormat;
import com.alphaae.mcpe.servers.MainPlugin; import com.alphaae.mcpe.servers.MainPlugin;
import com.alphaae.mcpe.servers.form.FormWindowMeun; import com.alphaae.mcpe.servers.form.FormWindowMeun;
@ -34,9 +35,10 @@ public class PlayerInteractSetEvent implements Listener {
//玩家手持物品事件 //玩家手持物品事件
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onPlayerItemHeld(PlayerItemHeldEvent event) { public void onPlayerItemHeld(PlayerItemHeldEvent event) {
Plugin plugin = MainPlugin.getPlugin();
Player player = event.getPlayer(); Player player = event.getPlayer();
Item item = event.getItem(); Item item = event.getItem();
int slot = event.getSlot(); final int slot = event.getSlot();
if (player != null && item != null) { if (player != null && item != null) {
if (item.getId() == 347) { if (item.getId() == 347) {
if (slot != 0) { if (slot != 0) {
@ -44,8 +46,8 @@ public class PlayerInteractSetEvent implements Listener {
} else { } else {
player.getInventory().setHeldItemSlot(1); player.getInventory().setHeldItemSlot(1);
} }
FormWindowMeun form = new FormWindowMeun(player); FormWindowMeun formWindowMeun = new FormWindowMeun(player);
player.showFormWindow(form); player.showFormWindow(formWindowMeun);
} }
} }
} }

View File

@ -5,28 +5,24 @@ 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.FormWindowSimple; 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.event.block.form.FormEvent; import com.alphaae.mcpe.servers.event.block.form.FormEvent;
import com.alphaae.mcpe.servers.model.RePlayer; import com.alphaae.mcpe.servers.model.RePlayer;
import com.google.gson.Gson; import com.sun.istack.internal.NotNull;
import java.util.ArrayList;
import java.util.List;
public class FormWindowMeun extends FormWindowSimple implements FormEvent { public class FormWindowMeun extends FormWindowSimple implements FormEvent {
public FormWindowMeun(Player player) { public FormWindowMeun(@NotNull Player player) {
super("", ""); super("", "");
createContents(player); RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
createButtons(); createContents(player, rePlayer);
createButtons(player, rePlayer);
} }
private void createContents(Player player) { private void createContents(Player player, RePlayer rePlayer) {
String name = player.getName(); String name = player.getName();
RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
String content = TextFormat.colorize("&b" + name + "&f\n" + String content = TextFormat.colorize("&b" + name + "&f\n" +
"---------------------------------\n" + "---------------------------------\n" +
"称号: " + rePlayer.getTitle() + "\n" + "称号: " + rePlayer.getTitle() + "\n" +
@ -36,19 +32,21 @@ public class FormWindowMeun extends FormWindowSimple implements FormEvent {
setContent(content); setContent(content);
} }
private void createButtons() { private void createButtons(Player player, RePlayer rePlayer) {
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/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/book_writable.png")));
addButton(new ElementButton("升级", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_pickaxe.png"))); addButton(new ElementButton("升级", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_pickaxe.png")));
} }
@Override
public void RespondedEvent(PlayerFormRespondedEvent event) { public void RespondedEvent(PlayerFormRespondedEvent event) {
String clickedText = ((FormResponseSimple) event.getResponse()).getClickedButton().getText(); String clickedText = ((FormResponseSimple) event.getResponse()).getClickedButton().getText();
Player player = event.getPlayer(); Player player = event.getPlayer();
if (!event.wasClosed()) { if (!event.wasClosed()) {
switch (clickedText) { switch (clickedText) {
case "传送": case "传送":
player.sendMessage("传送"); FormWindowTeleport formWindowTeleport = new FormWindowTeleport(player);
player.showFormWindow(formWindowTeleport);
break; break;
case "任务": case "任务":
player.sendMessage("任务"); player.sendMessage("任务");

View File

@ -0,0 +1,49 @@
package com.alphaae.mcpe.servers.form;
import cn.nukkit.Player;
import cn.nukkit.event.player.PlayerFormRespondedEvent;
import cn.nukkit.form.element.ElementButton;
import cn.nukkit.form.element.ElementButtonImageData;
import cn.nukkit.form.response.FormResponseSimple;
import cn.nukkit.form.window.FormWindowSimple;
import cn.nukkit.utils.TextFormat;
import com.alphaae.mcpe.servers.StaticData;
import com.alphaae.mcpe.servers.event.block.form.FormEvent;
import com.alphaae.mcpe.servers.model.RePlayer;
import com.sun.istack.internal.NotNull;
public class FormWindowTeleport extends FormWindowSimple implements FormEvent {
public FormWindowTeleport(@NotNull Player player) {
super("传送地点", "");
RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
createContents(player, rePlayer);
createButtons(player, rePlayer);
}
private void createContents(Player player, RePlayer rePlayer) {
}
private void createButtons(Player player, RePlayer rePlayer) {
addButton(new ElementButton("返回"));
addButton(new ElementButton("上次死亡地点"));
addButton(new ElementButton(""));
}
public void RespondedEvent(PlayerFormRespondedEvent event) {
String clickedText = ((FormResponseSimple) event.getResponse()).getClickedButton().getText();
Player player = event.getPlayer();
if (!event.wasClosed()) {
switch (clickedText) {
case "返回":
FormWindowMeun formWindowMeun = new FormWindowMeun(player);
player.showFormWindow(formWindowMeun);
break;
case "上次死亡地点":
player.sendMessage("传送");
break;
}
}
}
}