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.PlayerItemHeldEvent;
import cn.nukkit.item.Item;
import cn.nukkit.plugin.Plugin;
import cn.nukkit.utils.TextFormat;
import com.alphaae.mcpe.servers.MainPlugin;
import com.alphaae.mcpe.servers.form.FormWindowMeun;
@ -34,9 +35,10 @@ public class PlayerInteractSetEvent implements Listener {
//玩家手持物品事件
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onPlayerItemHeld(PlayerItemHeldEvent event) {
Plugin plugin = MainPlugin.getPlugin();
Player player = event.getPlayer();
Item item = event.getItem();
int slot = event.getSlot();
final int slot = event.getSlot();
if (player != null && item != null) {
if (item.getId() == 347) {
if (slot != 0) {
@ -44,8 +46,8 @@ public class PlayerInteractSetEvent implements Listener {
} else {
player.getInventory().setHeldItemSlot(1);
}
FormWindowMeun form = new FormWindowMeun(player);
player.showFormWindow(form);
FormWindowMeun formWindowMeun = new FormWindowMeun(player);
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.ElementButtonImageData;
import cn.nukkit.form.response.FormResponseSimple;
import cn.nukkit.form.window.FormWindow;
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.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import com.sun.istack.internal.NotNull;
public class FormWindowMeun extends FormWindowSimple implements FormEvent {
public FormWindowMeun(Player player) {
public FormWindowMeun(@NotNull Player player) {
super("", "");
createContents(player);
createButtons();
RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
createContents(player, rePlayer);
createButtons(player, rePlayer);
}
private void createContents(Player player) {
private void createContents(Player player, RePlayer rePlayer) {
String name = player.getName();
RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
String content = TextFormat.colorize("&b" + name + "&f\n" +
"---------------------------------\n" +
"称号: " + rePlayer.getTitle() + "\n" +
@ -36,19 +32,21 @@ public class FormWindowMeun extends FormWindowSimple implements FormEvent {
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/book_writable.png")));
addButton(new ElementButton("升级", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_pickaxe.png")));
}
@Override
public void RespondedEvent(PlayerFormRespondedEvent event) {
String clickedText = ((FormResponseSimple) event.getResponse()).getClickedButton().getText();
Player player = event.getPlayer();
if (!event.wasClosed()) {
switch (clickedText) {
case "传送":
player.sendMessage("传送");
FormWindowTeleport formWindowTeleport = new FormWindowTeleport(player);
player.showFormWindow(formWindowTeleport);
break;
case "任务":
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;
}
}
}
}