Solved Inventory gui help. tp with direction.

Discussion in 'Plugin Development' started by BeastCraft3, May 7, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    BeastCraft3

    Greetings, I've been asking people how to add directions when they use a inv gui but I never manage to find it out. I've asked alot of friends but no one has manage to do it. I think it has something to do with pitch or yaw. Please help, it would help the beastmodemc community.

    My code so far
    Code:java
    1. package me.BeastCraft3.inventorygui;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.Location;
    8. import org.bukkit.Material;
    9. import org.bukkit.entity.Player;
    10. import org.bukkit.event.EventHandler;
    11. import org.bukkit.event.Listener;
    12. import org.bukkit.event.block.Action;
    13. import org.bukkit.event.inventory.InventoryClickEvent;
    14. import org.bukkit.event.player.PlayerInteractEvent;
    15. import org.bukkit.event.player.PlayerJoinEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19.  
    20. public class invgui implements Listener {
    21.  
    22.  
    23. ItemStack compass = new ItemStack(Material.COMPASS);{
    24. ItemMeta compassmeta = compass.getItemMeta();
    25. ArrayList<String> cc = new ArrayList<String>();
    26. compassmeta.setDisplayName(ChatColor.RED + "Quick Teleporter");
    27. cc.add(ChatColor.RED + "This is a quick teleporter");
    28. cc.add(ChatColor.RED + "for LAZY people");
    29. compassmeta.setLore(cc);
    30. compass.setItemMeta(compassmeta);
    31. }
    32.  
    33. public Main plugin;
    34.  
    35.  
    36. private void teleportInWord(Player player, int x, int y, int z) {
    37. player.teleport(new Location(player.getWorld(), x, y, z));
    38.  
    39. }
    40.  
    41.  
    42. private void openGUI(Player player) {
    43. Inventory inv = Bukkit.createInventory(null, 18, ChatColor.BLUE + "Server Selector");
    44.  
    45. ItemStack SurvivalGames = new ItemStack (Material.GOLD_SWORD);
    46. ItemMeta SurvivalGamesMeta = SurvivalGames.getItemMeta();
    47. ItemStack Hub = new ItemStack (Material.CAKE);
    48. ItemMeta HubMeta = Hub.getItemMeta();
    49. ItemStack SkyWars = new ItemStack (Material.BOW);
    50. ItemMeta SkyWarsMeta = SkyWars.getItemMeta();
    51. ItemStack KitPvP = new ItemStack (Material.LEATHER_HELMET);
    52. ItemMeta KitPvPMeta = KitPvP.getItemMeta();
    53. ItemStack Splegg = new ItemStack (Material.EGG);
    54. ItemMeta SpleggMeta = Splegg.getItemMeta();
    55. ItemStack LadderLord = new ItemStack (Material.LADDER);
    56. ItemMeta LadderLordMeta = LadderLord.getItemMeta();
    57. ItemStack Skyblock = new ItemStack (Material.GRASS);
    58. ItemMeta SkyblockMeta = Skyblock.getItemMeta();
    59.  
    60. SurvivalGamesMeta.setDisplayName(ChatColor.BLUE + "SurvivalGames");
    61. SurvivalGames.setItemMeta(SurvivalGamesMeta);
    62.  
    63. HubMeta.setDisplayName(ChatColor.GREEN + "Hub");
    64. Hub.setItemMeta(HubMeta);
    65.  
    66. SkyWarsMeta.setDisplayName(ChatColor.AQUA + "SkyWars");
    67. SkyWars.setItemMeta(SkyWarsMeta);
    68.  
    69. KitPvPMeta.setDisplayName(ChatColor.DARK_RED + "KitPvP");
    70. KitPvP.setItemMeta(KitPvPMeta);
    71.  
    72. SpleggMeta.setDisplayName(ChatColor.WHITE + "Splegg");
    73. Splegg.setItemMeta(SpleggMeta);
    74.  
    75. LadderLordMeta.setDisplayName(ChatColor.GOLD + "Ladder Lord");
    76. LadderLord.setItemMeta(LadderLordMeta);
    77.  
    78. SkyblockMeta.setDisplayName(ChatColor.DARK_GREEN + "Skyblock");
    79. Skyblock.setItemMeta(SkyblockMeta);
    80.  
    81. inv.setItem(2, SurvivalGames);
    82. inv.setItem(4, Hub);
    83. inv.setItem(6, SkyWars);
    84. inv.setItem(8, KitPvP);
    85. inv.setItem(10, Splegg);
    86. inv.setItem(12, LadderLord);
    87. inv.setItem(14, Skyblock);
    88.  
    89. player.openInventory(inv);
    90. }
    91.  
    92. @EventHandler
    93. public void onInventoryClick(InventoryClickEvent event) {
    94. if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Server Selector"))
    95. return;
    96. Player player = (Player) event.getWhoClicked();
    97. event.setCancelled(true);
    98.  
    99. if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR||!event.getCurrentItem().hasItemMeta()){
    100. player.closeInventory();
    101. return;
    102. }
    103.  
    104. switch (event.getCurrentItem().getType()){
    105. case GOLD_SWORD:
    106. teleportInWord(player, -507, 64, -1081);
    107. player.closeInventory();
    108. player.sendMessage(String.format("%sTeleported to %sSurvivalGames%s!", ChatColor.GOLD, ChatColor.BLUE, ChatColor.GOLD));
    109. break;
    110. case CAKE:
    111. teleportInWord(player, -500, 113, -1002);
    112. player.closeInventory();
    113. player.sendMessage(String.format("%sTeleported to %sHub%s!", ChatColor.GOLD, ChatColor.GREEN, ChatColor.GOLD));
    114. break;
    115. case BOW:
    116. teleportInWord(player, -506, 111, -1018);
    117. player.closeInventory();
    118. player.sendMessage(String.format("%sTeleported to %sSkyWars%s!", ChatColor.GOLD, ChatColor.AQUA, ChatColor.GOLD));
    119. break;
    120. case LEATHER_HELMET:
    121. teleportInWord(player, -484, 111, -1008);
    122. player.closeInventory();
    123. player.sendMessage(String.format("%sTeleported to %sKitPvP%s!", ChatColor.GOLD, ChatColor.DARK_RED, ChatColor.GOLD));
    124. break;
    125. case EGG:
    126. teleportInWord(player, -516, 111, -996);
    127. player.closeInventory();
    128. player.sendMessage(String.format("%sTeleported to %sSplegg%s!", ChatColor.GOLD, ChatColor.WHITE, ChatColor.GOLD));
    129. break;
    130. case LADDER:
    131. teleportInWord(player, -484, 111, -996);
    132. player.closeInventory();
    133. player.sendMessage(String.format("%sTeleported to %sLadder Lord%s!", ChatColor.GOLD, ChatColor.GOLD, ChatColor.GOLD));
    134. break;
    135. case GRASS:
    136. teleportInWord(player, -506, 111, -985);
    137. player.closeInventory();
    138. player.sendMessage(String.format("%sTeleported to %sSkyblock%s!", ChatColor.GOLD, ChatColor.DARK_GREEN, ChatColor.GOLD));
    139. break;
    140. default:
    141. player.closeInventory();
    142. break;
    143. }
    144.  
    145. }
    146.  
    147.  
    148. @EventHandler
    149. public void OnPlayerJoin(PlayerJoinEvent e){
    150.  
    151. if(!(e.getPlayer().hasPlayedBefore())){
    152. e.getPlayer().getInventory().addItem(new ItemStack(Material.COMPASS));
    153. }
    154. }
    155.  
    156.  
    157.  
    158. @EventHandler
    159. public void onPlayerInteract(PlayerInteractEvent event) {
    160. Action a = event.getAction();
    161. ItemStack is = event.getItem();
    162.  
    163. if (a == Action.PHYSICAL || is == null || is.getType() == Material.AIR)
    164. return;
    165.  
    166. if (is.getType() == Material.COMPASS)
    167. openGUI(event.getPlayer());
    168. }
    169.  
    170. }
    171.  
     
  2. Offline

    tommycake50

    You mean to set peoples directions when you tp them?
     
  3. Offline

    BeastCraft3

  4. Offline

    tommycake50

    .teleport() takes 2 extra arguments one for pitch and one for yaw.
    so for instance
    .teleport(player.getWorld(), x, y, z, 180, 0);
     
  5. Offline

    BeastCraft3

    tommycake50
    k, but where should I place it in the code? Sorry for nagging but im kinda new to java as you might see ;3

    nvm im stupid... xD I found it out, I just needed to add the 180, 0 in the teleport method.. Thanks Man, You're awesome :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 8, 2016
Thread Status:
Not open for further replies.

Share This Page