Solved Part of the code only works on the first player

Discussion in 'Plugin Development' started by StatywPlay, Aug 4, 2014.

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

    StatywPlay

    I have a problem with the code because it does not work as it should. This part of the code works when it perform on first player
    Code:java
    1. public void onMove(PlayerMoveEvent event) {
    2. Player player = event.getPlayer();
    3. if (plugin.getPlayerEvent(player).equals("spleef")) {
    4. if (plugin.getInfo().eventstarted) {
    5. Material b = player.getLocation().getBlock().getType();
    6. if (b.equals(Material.STATIONARY_WATER) || b.equals(Material.WATER) || event.getPlayer().getLocation().getY() <= 0) {
    7. if (!lul.contains(player.getName()) && !ended) {
    8. ended = true;
    9. lul.add(player.getName());
    10. plugin.getMethods().basicLose(player);
    11. }
    12. }
    13. }

    When the second player touches the water nothing happens. There are no errors. Here is the whole code:
    Code:java
    1. package Handlers.EventHandlers.SimpleEvents;
    2.  
    3. import Mains.MiniEvents;
    4. import org.bukkit.*;
    5. import org.bukkit.block.Block;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.block.BlockBreakEvent;
    10. import org.bukkit.event.player.PlayerMoveEvent;
    11.  
    12. import java.util.ArrayList;
    13. import java.util.HashSet;
    14.  
    15. public class Spleef implements Listener {
    16. public final ArrayList<Location> block = new ArrayList<>();
    17. public final ArrayList<Location> block2 = new ArrayList<>();
    18. public static final HashSet<String> lul = new HashSet<>();
    19. public MiniEvents plugin;
    20.  
    21. public Spleef(MiniEvents plugin) {
    22. this.plugin = plugin;
    23. }
    24.  
    25. @EventHandler
    26. public void onBreak(final BlockBreakEvent event) {
    27. final Player player = event.getPlayer();
    28. if (plugin.getPlayerEvent(player).equals("spleef")) {
    29. if (plugin.getInfo().sbefore.contains(event.getPlayer().getName())) {
    30. event.setCancelled(true);
    31. } else {
    32. final Block b = event.getBlock();
    33. if (player.getItemInHand() != null && !player.getItemInHand().getType().equals(Material.AIR)) {
    34. if (b.getType().equals(Material.SNOW_BLOCK)) {
    35. event.setCancelled(true);
    36. player.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, 80);
    37. b.setType(Material.AIR);
    38. block.add(b.getLocation());
    39. block2.add(b.getLocation());
    40. } else {
    41. event.setCancelled(true);
    42. }
    43. } else {
    44. event.setCancelled(true);
    45. }
    46. }
    47. }
    48. }
    49.  
    50. public static boolean ended = false;
    51.  
    52. @EventHandler
    53. public void onMove(PlayerMoveEvent event) {
    54. Player player = event.getPlayer();
    55. if (plugin.getPlayerEvent(player).equals("spleef")) {
    56. if (plugin.getInfo().eventstarted) {
    57. Material b = player.getLocation().getBlock().getType();
    58. if (b.equals(Material.STATIONARY_WATER) || b.equals(Material.WATER) || event.getPlayer().getLocation().getY() <= 0) {
    59. if (!lul.contains(player.getName()) && !ended) {
    60. ended = true;
    61. lul.add(player.getName());
    62. plugin.getMethods().basicLose(player);
    63. }
    64. }
    65. }
    66. }
    67. }
    68. }
     
  2. Offline

    MineCrashKoen

    I'm pretty sure 'ended' is true at the second player so it won't do it.
     
  3. Offline

    StatywPlay

    'ended' is true to a first on the next always false
    You help me to change it?
     
  4. Offline

    krazytraynz

    Do you even use "ended" outside of the method? If not it's essentially useless, and you can just delete it.
     
  5. Offline

    bennie3211

    you dont reset your ended variable back. remove it and it will work :)
     
  6. Offline

    StatywPlay

    i delete ended =true; and working
     
Thread Status:
Not open for further replies.

Share This Page