Freezing Players

Discussion in 'Plugin Development' started by david123718, Aug 25, 2014.

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

    david123718

    I can do both also how do i make so they cant move theit mouse
     
  2. Offline

    hintss

    You don't

    EDIT: or, well, other than cancelling PME
     
  3. Offline

    david123718

    What is PME?

    This did not work

    bump

    nothing is working please help

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 10, 2016
  4. Offline

    BillyGalbreath

    Try teleporting the player to the event.getFrom() location when you cancel the PME (PlayerMoveEvent). Hopefully that location stores the previous yaw/pitch so it will turn the player back.
     
    es359 likes this.
  5. Offline

    david123718

    but its not putting the players in the arraylist
     
  6. Offline

    es359

    This is the best way I could find to do it. Doesn't continuously lag the player out.
    Code:java
    1. @EventHandler //BCCF
    2. public void onPlayerMove(PlayerMoveEvent event) {
    3. Player player = event.getPlayer();
    4. if(fr.contains(player.getName())) {
    5. event.setTo(event.getFrom());
    6. player.sendMessage(ChatColor.translateAlternateColorCodes('&',getConfig().getString("Freeze.msg")));
    7. }
    8. }
     
  7. Offline

    hintss

    cancelling the PME should do that already
     
  8. Offline

    MCMastery

  9. Offline

    david123718

    but I don't want them to move their pitch/yaw and I want to use hashmaps so i could put them in a list when they do a interaction

    I dont know what to do so im giving the whole code.

    Code:java
    1. package me.david.prickledpvp;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.HashMap;
    5.  
    6. import net.milkbowl.vault.economy.Economy;
    7. import net.milkbowl.vault.economy.EconomyResponse;
    8.  
    9. import org.bukkit.Bukkit;
    10. import org.bukkit.ChatColor;
    11. import org.bukkit.Location;
    12. import org.bukkit.Material;
    13. import org.bukkit.OfflinePlayer;
    14. import org.bukkit.World;
    15. import org.bukkit.block.Block;
    16. import org.bukkit.command.Command;
    17. import org.bukkit.command.CommandSender;
    18. import org.bukkit.entity.Player;
    19. import org.bukkit.event.EventHandler;
    20. import org.bukkit.event.Listener;
    21. import org.bukkit.event.block.Action;
    22. import org.bukkit.event.entity.PlayerDeathEvent;
    23. import org.bukkit.event.inventory.InventoryClickEvent;
    24. import org.bukkit.event.player.PlayerEvent;
    25. import org.bukkit.event.player.PlayerInteractEvent;
    26. import org.bukkit.event.player.PlayerJoinEvent;
    27. import org.bukkit.event.player.PlayerLoginEvent;
    28. import org.bukkit.event.player.PlayerMoveEvent;
    29. import org.bukkit.inventory.Inventory;
    30. import org.bukkit.inventory.ItemStack;
    31. import org.bukkit.inventory.meta.ItemMeta;
    32. import org.bukkit.plugin.RegisteredServiceProvider;
    33. import org.bukkit.plugin.java.JavaPlugin;
    34.  
    35. public class Main extends JavaPlugin implements Listener {
    36. public final HashMap<Player, ArrayList<Block>> frozen = new HashMap<Player, ArrayList<Block>>();
    37.  
    38.  
    39.  
    40. public static Economy econ = null;
    41.  
    42. public void onEnable() {
    43. if (!setupEconomy() ) {
    44. getLogger().severe(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
    45. getServer().getPluginManager().disablePlugin(this);
    46. getServer().getPluginManager().registerEvents(this, this);
    47. return;
    48. }
    49. getServer().getPluginManager().registerEvents(this, this);
    50. }
    51.  
    52.  
    53. private boolean setupEconomy() {
    54. if (getServer().getPluginManager().getPlugin("Vault") == null ) {
    55. return false;
    56. }
    57. RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
    58. if (rsp == null) {
    59. }
    60. econ = rsp.getProvider();
    61. return econ != null;
    62. }
    63. private void teleportInWord(Player player, int x, int y, int z) {
    64. }
    65.  
    66. private void openGUI(Player player) {
    67. Inventory inv = Bukkit.createInventory(null, 9, ChatColor.GREEN
    68. + "Warp Selector");
    69. //Meta
    70. ItemStack spawn = new ItemStack(Material.DIAMOND_SWORD);
    71. ItemMeta spawnMeta = spawn.getItemMeta();
    72. ItemStack mine = new ItemStack(Material.DIAMOND_PICKAXE);
    73. ItemMeta mineMeta = mine.getItemMeta();
    74. ItemStack plots = new ItemStack(Material.LOG);
    75. ItemMeta plotsMeta = plots.getItemMeta();
    76. ItemStack premium = new ItemStack(Material.DIAMOND);
    77. ItemMeta premiumMeta = premium.getItemMeta();
    78.  
    79. spawnMeta.setDisplayName(ChatColor.AQUA + "Spawn");
    80. spawn.setItemMeta(spawnMeta);
    81.  
    82. mineMeta.setDisplayName(ChatColor.BLUE + "Mine");
    83. mine.setItemMeta(mineMeta);
    84.  
    85. premiumMeta.setDisplayName(ChatColor.AQUA + "Premium");
    86. premium.setItemMeta(premiumMeta);
    87.  
    88. plotsMeta.setDisplayName(ChatColor.GOLD + "Plots");
    89. plots.setItemMeta(plotsMeta);
    90.  
    91. inv.setItem(0, plots);
    92. inv.setItem(3, spawn);
    93. inv.setItem(5, mine);
    94. inv.setItem(8, premium);
    95.  
    96. player.openInventory(inv);
    97. }
    98. private void openPremiumGUI(Player player) {
    99. Inventory premiuminv = Bukkit.createInventory(null, 9, ChatColor.GREEN
    100. + "Premium Warp Selector"); }
    101.  
    102. //Events
    103. @EventHandler
    104. public void PlayerDeath(PlayerDeathEvent e){
    105. Player player = e.getEntity();
    106. Player killer = player.getKiller();
    107. EconomyResponse r = econ.depositPlayer(killer.getName(), 10);
    108. killer.sendMessage(ChatColor.BLUE + "You have earned 10 dollars for killing " + player.getName() + ".");
    109. }
    110. @EventHandler
    111. public void FirstJoinRank(PlayerJoinEvent event) {
    112. Player player = event.getPlayer();
    113. if(!player.getPlayer().hasPlayedBefore()) {
    114. Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "pex user " + player.getName() + " group set member" ); }
    115. }
    116. @EventHandler
    117. public void onPlayerMove(PlayerMoveEvent e) {
    118. Player player =e.getPlayer();
    119. if(frozen.containsKey(player.getName())){
    120. player.sendMessage(ChatColor.RED + "You are frozen.");
    121. }
    122. }
    123.  
    124.  
    125.  
    126.  
    127. @EventHandler
    128. public void onInventoryClick(InventoryClickEvent event) {
    129. if (!ChatColor.stripColor(event.getInventory().getName())
    130. .equalsIgnoreCase("Warp Selector"))
    131. return;
    132. Player player = (Player) event.getWhoClicked();
    133. event.setCancelled(true);
    134.  
    135. if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR||!event.getCurrentItem().hasItemMeta()){
    136. player.closeInventory();
    137. return;
    138. }
    139. switch (event.getCurrentItem().getType()) {
    140. case DIAMOND_SWORD:
    141. player.chat("/spawn");
    142. player.closeInventory();
    143. }
    144. switch (event.getCurrentItem().getType()) {
    145. case DIAMOND_PICKAXE:
    146. player.chat("/warp mine");
    147. player.closeInventory();
    148. }
    149. switch (event.getCurrentItem().getType()) {
    150. case LOG:
    151. player.chat("/warp plots");
    152. player.closeInventory(); }
    153.  
    154. switch (event.getCurrentItem().getType()) {
    155. case DIAMOND:
    156. player.sendMessage(ChatColor.AQUA + "This Interactive GUI is not ready.");
    157. player.closeInventory(); }
    158. }
    159. @EventHandler
    160. public void onPlayerJoin(PlayerJoinEvent event) {
    161. event.getPlayer().getInventory().addItem(new ItemStack(Material.COMPASS));
    162. } //tutorial
    163. @EventHandler
    164. public void onFirstJoin(PlayerJoinEvent event) {
    165. event.getPlayer().chat("/newplayer");
    166. }
    167.  
    168. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    169. if(cmd.getName().equalsIgnoreCase("newplayer")) {
    170. Player player = (Player) sender;
    171. player.sendMessage(" ");
    172. player.sendMessage(" ");
    173. player.sendMessage(" ");
    174. player.sendMessage(" ");
    175. player.sendMessage(" ");
    176. player.sendMessage(" ");
    177. player.sendMessage(" ");
    178. player.sendMessage(" ");
    179. player.sendMessage(" ");
    180. player.sendMessage(" ");
    181. player.sendMessage(" ");
    182. player.sendMessage(" ");
    183. player.sendMessage(" ");
    184. player.sendMessage(" ");
    185. player.sendMessage(" ");
    186. player.sendMessage(" ");
    187. player.sendMessage(" ");
    188. player.sendMessage(" ");
    189. player.sendMessage(" ");
    190. player.sendMessage(" ");
    191. player.sendMessage(" ");
    192. player.sendMessage(" ");
    193. player.sendMessage(" ");
    194. player.sendMessage(ChatColor.DARK_RED + "Welcome " + ChatColor.GRAY + "to " + ChatColor.GOLD + "PrickledPvP!");
    195. player.sendMessage(" ");
    196. player.sendMessage(ChatColor.AQUA + "PrickledPvP is a three in one server.");
    197. player.sendMessage(ChatColor.BLUE + "It has SkyBlock, KitPvP and Mining!");
    198. player.sendMessage(ChatColor.BOLD + "You can play all three with the same inventory.");
    199. player.sendMessage(ChatColor.COLOR_CHAR + "You can store your mined/PvP items into your chest that you created in SkyBlock.");
    200. player.sendMessage(ChatColor.DARK_AQUA + "You can expand your very own island.");
    201. player.sendMessage(ChatColor.DARK_BLUE + "You earn 10 Dollars everytime you kill someone in kitpvp.");
    202. player.sendMessage(ChatColor.DARK_GREEN + "You can spend the money to expand your island, buy goods for kitpvp or upgrade your pickaxe for mining.");
    203. player.sendMessage(ChatColor.GRAY + "You can enchant your items at the enchanting table at spawn.");
    204. player.sendMessage(ChatColor.RED + "Use your kits! Type /kit for a list of your kits.");
    205.  
    206. }else{
    207. Player player = (Player) sender;
    208. if(cmd.getName().equalsIgnoreCase("cc")) {
    209. if(!player.hasPermission("prickledpvp.cc")) {
    210. player.sendMessage(ChatColor.RED + "You do not have access to this command.");
    211.  
    212. }else{
    213. Bukkit.getServer().broadcastMessage(" ");
    214. Bukkit.getServer().broadcastMessage(" ");
    215. Bukkit.getServer().broadcastMessage(" ");
    216. Bukkit.getServer().broadcastMessage(" ");
    217. Bukkit.getServer().broadcastMessage(" ");
    218. Bukkit.getServer().broadcastMessage(" ");
    219. Bukkit.getServer().broadcastMessage(" ");
    220. Bukkit.getServer().broadcastMessage(" ");
    221. Bukkit.getServer().broadcastMessage(" ");
    222. Bukkit.getServer().broadcastMessage(" ");
    223. Bukkit.getServer().broadcastMessage(" ");
    224. Bukkit.getServer().broadcastMessage(" ");
    225. Bukkit.getServer().broadcastMessage(" ");
    226. Bukkit.getServer().broadcastMessage(" ");
    227. Bukkit.getServer().broadcastMessage(" ");
    228. Bukkit.getServer().broadcastMessage(" ");
    229. Bukkit.getServer().broadcastMessage(" ");
    230. Bukkit.getServer().broadcastMessage(" ");
    231. Bukkit.getServer().broadcastMessage(" ");
    232. Bukkit.getServer().broadcastMessage(" ");
    233. Bukkit.getServer().broadcastMessage(" ");
    234. Bukkit.getServer().broadcastMessage(" ");
    235. Bukkit.getServer().broadcastMessage(" ");
    236. Bukkit.getServer().broadcastMessage(" ");
    237. Bukkit.getServer().broadcastMessage(" ");
    238. Bukkit.getServer().broadcastMessage(" ");
    239. Bukkit.getServer().broadcastMessage(" ");
    240. Bukkit.getServer().broadcastMessage(" ");
    241. Bukkit.getServer().broadcastMessage(" ");
    242. Bukkit.getServer().broadcastMessage(" ");
    243. Bukkit.getServer().broadcastMessage(" ");
    244. Bukkit.getServer().broadcastMessage(" ");
    245. Bukkit.getServer().broadcastMessage(" ");
    246. Bukkit.getServer().broadcastMessage(" ");
    247. Bukkit.getServer().broadcastMessage(ChatColor.AQUA + "Chat Cleared By " + sender.getName() + ".");
    248.  
    249. }}else{
    250. if(!player.hasPermission("prickledpvp.freeze")) {
    251. if(cmd.getName().equalsIgnoreCase("freeze")) {
    252. player.sendMessage(ChatColor.RED + "You do not have access to this command.");
    253.  
    254. }else{
    255. player.sendMessage(ChatColor.AQUA + "You are now frozen.");
    256. frozen.put(player, null);
    257.  
    258. }}else{
    259. if(!player.hasPermission("prickledpvp.unfreeze")) {
    260. if(cmd.getName().equalsIgnoreCase("unfreeze")) {
    261. frozen.remove(player.getName(), null);
    262. player.sendMessage(ChatColor.AQUA + "You are not frozen.");
    263.  
    264.  
    265. }
    266.  
    267. }
    268.  
    269. }
    270. }
    271. }
    272.  
    273.  
    274.  
    275.  
    276.  
    277.  
    278. return false;
    279. }
    280. @EventHandler
    281. public void onPlayerInteract(PlayerInteractEvent event) {
    282. Action a = event.getAction();
    283. ItemStack is = event.getItem();
    284.  
    285. if (a == Action.PHYSICAL || is == null || is.getType() == Material.AIR)
    286. return;
    287.  
    288. if (is.getType() == Material.COMPASS)
    289. openGUI(event.getPlayer());
    290. {
    291. }
    292. }
    293. }
    294.  
    295.  
    296.  


    please help

    Please help srry for spam i just need help asap

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 10, 2016
  10. Offline

    hintss

    That literally made no sense
     
  11. Offline

    GreySwordz

    Once bukkit 1.8 comes out, you can spawn an invisible entity and have them spectate that :)
     
  12. Offline

    xTrollxDudex

    Cancelling the event would move them, thus causing another PME. This would repeat again and again, lagging the player out.
     
    es359 likes this.
  13. Offline

    david123718

    but this isnt my problem My code is not putting the players in to the list
     
  14. Offline

    xTrollxDudex

    I wasn't talking about your problem
     
  15. Offline

    david123718

    but this forum is about my problem
     
  16. Offline

    xTrollxDudex

    No it's not, it's about helping you solve the problem, not solving the problem for you.
     
Thread Status:
Not open for further replies.

Share This Page