mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-21 12:15:50 +00:00
97 lines
3.7 KiB
Java
97 lines
3.7 KiB
Java
|
package me.mrCookieSlime.Slimefun.GPS;
|
|||
|
|
|||
|
import java.util.ArrayList;
|
|||
|
import java.util.List;
|
|||
|
import java.util.UUID;
|
|||
|
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage;
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.HoverAction;
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu;
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler;
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.CustomBookOverlay;
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.MenuHelper;
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.MenuHelper.ChatHandler;
|
|||
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
|||
|
import me.mrCookieSlime.Slimefun.Setup.Messages;
|
|||
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
|||
|
|
|||
|
import org.bukkit.ChatColor;
|
|||
|
import org.bukkit.Material;
|
|||
|
import org.bukkit.block.Block;
|
|||
|
import org.bukkit.entity.Player;
|
|||
|
import org.bukkit.inventory.ItemStack;
|
|||
|
import org.bukkit.material.MaterialData;
|
|||
|
|
|||
|
public class Elevator {
|
|||
|
|
|||
|
public static List<UUID> ignored = new ArrayList<UUID>();
|
|||
|
|
|||
|
public static void openEditor(Player p, final Block b) {
|
|||
|
ChestMenu menu = new ChestMenu("Elevator Settings");
|
|||
|
|
|||
|
menu.addItem(4, new CustomItem(new MaterialData(Material.NAME_TAG), "<EFBFBD>7Floor Name <20>e(Click to edit)", "", "<EFBFBD>r" + ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(b, "floor"))));
|
|||
|
menu.addMenuClickHandler(4, new MenuClickHandler() {
|
|||
|
|
|||
|
@Override
|
|||
|
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
|
|||
|
p.closeInventory();
|
|||
|
p.sendMessage("");
|
|||
|
p.sendMessage("<EFBFBD>4<EFBFBD>l>> <20>ePlease enter a Name for this Floor in your Chat!");
|
|||
|
p.sendMessage("<EFBFBD>4<EFBFBD>l>> <20>e(Chat Colors are supported!");
|
|||
|
p.sendMessage("");
|
|||
|
|
|||
|
MenuHelper.awaitChatInput(p, new ChatHandler() {
|
|||
|
|
|||
|
@Override
|
|||
|
public boolean onChat(Player p, String message) {
|
|||
|
BlockStorage.addBlockInfo(b, "floor", message.replaceAll("<EFBFBD>", "&"));
|
|||
|
|
|||
|
p.sendMessage("");
|
|||
|
p.sendMessage("<EFBFBD>4<EFBFBD>l>> <20>eSuccessfully named this Floor:");
|
|||
|
p.sendMessage("<EFBFBD>4<EFBFBD>l>> <20>r" + ChatColor.translateAlternateColorCodes('&', message));
|
|||
|
p.sendMessage("");
|
|||
|
|
|||
|
openEditor(p, b);
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
});
|
|||
|
return false;
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
menu.open(p);
|
|||
|
}
|
|||
|
|
|||
|
public static void openDialogue(Player p, Block b) {
|
|||
|
if (ignored.contains(p.getUniqueId())) {
|
|||
|
ignored.remove(p.getUniqueId());
|
|||
|
return;
|
|||
|
}
|
|||
|
TellRawMessage tellraw = new TellRawMessage();
|
|||
|
tellraw.addText("<EFBFBD>3- Pick a Destination -\n\n");
|
|||
|
int index = 1;
|
|||
|
for (int y = b.getWorld().getMaxHeight(); y > 0; y--) {
|
|||
|
Block block = b.getWorld().getBlockAt(b.getX(), y, b.getZ());
|
|||
|
if (BlockStorage.check(block, "ELEVATOR_PLATE")) {
|
|||
|
String floor = ChatColor.translateAlternateColorCodes('&', BlockStorage.getBlockInfo(block, "floor"));
|
|||
|
if (block.getY() == b.getY()) {
|
|||
|
tellraw.addText("<EFBFBD>7> " + index + ". <20>r" + floor + "\n");
|
|||
|
tellraw.addHoverEvent(HoverAction.SHOW_TEXT, "\n<EFBFBD>eThis is the Floor you are currently on:\n<EFBFBD>r" + floor + "\n");
|
|||
|
}
|
|||
|
else {
|
|||
|
tellraw.addText("<EFBFBD>7" + index + ". <20>r" + floor + "\n");
|
|||
|
tellraw.addHoverEvent(HoverAction.SHOW_TEXT, "\n<EFBFBD>eClick to teleport to this Floor\n<EFBFBD>r" + floor + "\n");
|
|||
|
tellraw.addClickEvent(me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.ClickAction.RUN_COMMAND, "/sf elevator " + block.getX() + " " + block.getY() + " " + block.getZ() + " ");
|
|||
|
}
|
|||
|
|
|||
|
index++;
|
|||
|
}
|
|||
|
}
|
|||
|
if (index > 2) new CustomBookOverlay("Elevator", "Slimefun", tellraw).open(p);
|
|||
|
else Messages.local.sendTranslation(p, "machines.ELEVATOR.no-destinations", true);
|
|||
|
}
|
|||
|
|
|||
|
}
|