mirror of
https://github.com/sekwah41/Advanced-Portals.git
synced 2025-02-12 02:11:22 +01:00
Started the chat guis
This commit is contained in:
parent
860eca9f02
commit
7f806a0c55
@ -6,6 +6,10 @@ import java.util.Collections;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.minecraft.server.v1_7_R1.ChatSerializer;
|
||||||
|
import net.minecraft.server.v1_7_R1.IChatBaseComponent;
|
||||||
|
import net.minecraft.server.v1_7_R1.PacketPlayOutChat;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -13,6 +17,7 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
|
import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.PlayerInventory;
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
@ -233,13 +238,58 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter {
|
|||||||
player.sendMessage("§c[§7AdvancedPortals§c] Portal selection cancelled!");
|
player.sendMessage("§c[§7AdvancedPortals§c] Portal selection cancelled!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(args[0].toLowerCase().equals("remove")) {
|
else if(args[0].toLowerCase().equals("gui")){
|
||||||
|
if(args.length > 1){
|
||||||
|
if(args[1].toLowerCase().equals("remove") && args.length > 2){
|
||||||
|
sender.sendMessage("");
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] Are you sure you would like to remove the portal §e" + args[2] + "§c?");
|
||||||
|
sender.sendMessage("");
|
||||||
|
IChatBaseComponent comp = ChatSerializer.a("{text:\" \",extra:[{text:\"§e[Yes]\",clickEvent:{action:run_command,value:\"/portal remove " + args[2] + "\",hoverEvent:{action:show_text,value:\"This is a test\"}}}, " +
|
||||||
|
"{text:\" \"},{text:\"§e[No]\",clickEvent:{action:run_command,value:\"/portal edit " + args[2] + "\",hoverEvent:{action:show_text,value:\"This is a test\"}}}]}");
|
||||||
|
PacketPlayOutChat packet = new PacketPlayOutChat(comp, true);
|
||||||
|
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
|
||||||
|
sender.sendMessage("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(args[0].toLowerCase().equals("edit")) {
|
||||||
|
ConfigAccessor portalConfig = new ConfigAccessor(plugin, "Portals.yml");
|
||||||
|
if(args.length > 1){
|
||||||
|
String posX = portalConfig.getConfig().getString(args[1] + ".pos1.X");
|
||||||
|
if(posX != null){
|
||||||
|
portalEditMenu(sender, portalConfig, args[1]);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] No portal by the name §e" + args[1] + "§c exists!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(player.hasMetadata("selectedPortal")){
|
||||||
|
String portalName = player.getMetadata("selectedPortal").get(0).asString();
|
||||||
|
String posX = portalConfig.getConfig().getString(portalName + ".pos1.X");
|
||||||
|
if(posX != null){
|
||||||
|
portalEditMenu(sender, portalConfig, portalName);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] The portal you had selected no longer seems to exist!");
|
||||||
|
player.removeMetadata("selectedPortal", plugin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] No portal has been defined or selected!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(args[0].toLowerCase().equals("rename")) {
|
||||||
|
|
||||||
|
// not finished yet /
|
||||||
|
/**
|
||||||
ConfigAccessor portalConfig = new ConfigAccessor(plugin, "Portals.yml");
|
ConfigAccessor portalConfig = new ConfigAccessor(plugin, "Portals.yml");
|
||||||
if(args.length > 1){
|
if(args.length > 1){
|
||||||
String posX = portalConfig.getConfig().getString(args[1] + ".pos1.X");
|
String posX = portalConfig.getConfig().getString(args[1] + ".pos1.X");
|
||||||
if(posX != null){
|
if(posX != null){
|
||||||
Portal.remove(args[1]);
|
Portal.remove(args[1]);
|
||||||
sender.sendMessage("§a[§eAdvancedPortals§a] The portal §7" + args[1] + " has been removed!");
|
sender.sendMessage("§a[§eAdvancedPortals§a] The portal §e" + args[1] + "§a has been removed!");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
sender.sendMessage("§c[§7AdvancedPortals§c] No portal by that name exists!");
|
sender.sendMessage("§c[§7AdvancedPortals§c] No portal by that name exists!");
|
||||||
@ -261,6 +311,36 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter {
|
|||||||
else{
|
else{
|
||||||
sender.sendMessage("§c[§7AdvancedPortals§c] No portal has been defined or selected!");
|
sender.sendMessage("§c[§7AdvancedPortals§c] No portal has been defined or selected!");
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
else if(args[0].toLowerCase().equals("remove")) {
|
||||||
|
ConfigAccessor portalConfig = new ConfigAccessor(plugin, "Portals.yml");
|
||||||
|
if(args.length > 1){
|
||||||
|
String posX = portalConfig.getConfig().getString(args[1] + ".pos1.X");
|
||||||
|
if(posX != null){
|
||||||
|
Portal.remove(args[1]);
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] The portal §e" + args[1] + "§c has been removed!");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] No portal by that name exists!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(player.hasMetadata("selectedPortal")){
|
||||||
|
String portalName = player.getMetadata("selectedPortal").get(0).asString();
|
||||||
|
String posX = portalConfig.getConfig().getString(portalName + ".pos1.X");
|
||||||
|
if(posX != null){
|
||||||
|
Portal.remove(args[1]);
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] The portal §7" + portalName + " has been removed!");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] The portal you had selected no longer seems to exist!");
|
||||||
|
player.removeMetadata("selectedPortal", plugin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
sender.sendMessage("§c[§7AdvancedPortals§c] No portal has been defined or selected!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(args[0].toLowerCase().equals("bukkitpage")) {
|
else if(args[0].toLowerCase().equals("bukkitpage")) {
|
||||||
@ -304,6 +384,45 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void portalEditMenu(CommandSender sender, ConfigAccessor portalConfig, String portalName) {
|
||||||
|
// make the text gui with the json message for a list of edit commands to be clicked or hovered
|
||||||
|
// put \" for a " in the json messages
|
||||||
|
// sadly there is no newline code so these three lines will have to be copied and pasted for each line
|
||||||
|
|
||||||
|
// use the usual messages for normal lines but anything that needs special features make sure you use the
|
||||||
|
// chat steriliser
|
||||||
|
sender.sendMessage("");
|
||||||
|
sender.sendMessage("§a[§eAdvancedPortals§a] Editing: §e" + portalName);
|
||||||
|
|
||||||
|
sender.sendMessage(" §apos1§e: " + portalConfig.getConfig().getString(portalName + ".pos1.X"));
|
||||||
|
sender.sendMessage(" §apos2§e: " + portalConfig.getConfig().getString(portalName + ".pos2.X"));
|
||||||
|
|
||||||
|
String destination = portalConfig.getConfig().getString(portalName + ".destination");
|
||||||
|
if(destination != null){
|
||||||
|
sender.sendMessage(" §adestination§e: " + destination);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
sender.sendMessage(" §cdestination§e: null");
|
||||||
|
}
|
||||||
|
|
||||||
|
String trigger = portalConfig.getConfig().getString(portalName + ".triggerblock");
|
||||||
|
if(trigger != null){
|
||||||
|
sender.sendMessage(" §atriggerBlock§e: " + trigger);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
sender.sendMessage(" §ctriggerBlock§e: null");
|
||||||
|
}
|
||||||
|
sender.sendMessage(" ");
|
||||||
|
|
||||||
|
Player player = (Player)sender;
|
||||||
|
|
||||||
|
IChatBaseComponent comp = ChatSerializer.a("{text:\"§aFunctions§e: \",extra:[{text:\"§eRemove\",clickEvent:{action:run_command,value:\"/portal gui remove " + portalName + "\",hoverEvent:{action:show_text,value:\"This is a test\"}}}]}");
|
||||||
|
PacketPlayOutChat packet = new PacketPlayOutChat(comp, true);
|
||||||
|
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
|
||||||
|
sender.sendMessage("");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, Command cmd, String command, String[] args) {
|
public List<String> onTabComplete(CommandSender sender, Command cmd, String command, String[] args) {
|
||||||
LinkedList<String> autoComplete = new LinkedList<String>();
|
LinkedList<String> autoComplete = new LinkedList<String>();
|
||||||
|
@ -340,6 +340,26 @@ public class Portal {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void rename(String oldName, String newName){
|
||||||
|
|
||||||
|
// set it so it gets all data from one and puts it into another place
|
||||||
|
|
||||||
|
ConfigAccessor config = new ConfigAccessor(plugin, "Destinations.yml");
|
||||||
|
|
||||||
|
config.getConfig().set(newName.toLowerCase() + ".world", config.getConfig().getString(oldName + ".world"));
|
||||||
|
|
||||||
|
config.getConfig().set(newName.toLowerCase() + ".pos.X", config.getConfig().getDouble(oldName + ".pos.X"));
|
||||||
|
config.getConfig().set(newName.toLowerCase() + ".pos.Y", config.getConfig().getDouble(oldName + ".pos.Y"));
|
||||||
|
config.getConfig().set(newName.toLowerCase() + ".pos.Z", config.getConfig().getDouble(oldName + ".pos.Z"));
|
||||||
|
|
||||||
|
config.getConfig().set(newName.toLowerCase() + ".pos.pitch", config.getConfig().getDouble(oldName + ".pos.pitch"));
|
||||||
|
config.getConfig().set(newName.toLowerCase() + ".pos.yaw", config.getConfig().getDouble(oldName + ".pos.yaw"));
|
||||||
|
|
||||||
|
remove(oldName);
|
||||||
|
|
||||||
|
config.saveConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user