Got this now and i want it to make so it will remove the regen when going away from the block Code:java public void regenPlayers(PlayerMoveEvent e){Player p = e.getPlayer();if ((p.hasPermission("blockregen.use")) &&(!p.hasPotionEffect(PotionEffectType.REGENERATION))){Block under = e.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN);if (under.getType().equals(Material.SPONGE)){e.getPlayer().sendMessage(ChatColor.LIGHT_PURPLE + "" + ChatColor.ITALIC + " Here is your Regeneration!");e.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, Integer.MAX_VALUE, 10));}else if (this.regenPlayers.contains(e.getPlayer().getUniqueId()))if (!(BLOCK == Matrial.SPONGE.removePotionEffect(PotionEffectType.REGENERATION) )){this.regenPlayers.remove(e.getPlayer().getUniqueId());; Ps : new with java
LOLOLOLOL Ehh Code:java @EventHandler public void on(PlayerMoveEvent e){ Block under = (Block) e.getPlayer().getLocation().getBlock().getLocation().subtract(0.0D, -1.0D, 0.0D); if(under.getType().equals(Material.SPONGE)){ e.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, Integer.MAX_VALUE, 100)); }else{ } } Danne123
Danne123 instead of doing Integer.MAX_VALUE for the time, do something like 1 second. So as long as they are on the sponge, they can get regen, but if the leave, 1 second later they won't have it.
Did get this when move Code: 19:35:34 [SEVERE] Could not pass event PlayerMoveEvent to BlockRegen v1.1 19:35:35 org.bukkit.event.EventException 19:35:35 at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:235) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.PacketPlayInFlying.a(SourceFile:137) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.PacketPlayInPositionLook.handle(SourceFile:20) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:667) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 Caused by: java.lang.ClassCastException: org.bukkit.Location cannot be cast to org.bukkit.block.Block 19:35:35 at danne.blockregen.blockregen.blockregen.on(blockregen.java:41) ~[?:?] 19:35:35 at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) ~[?:?] 19:35:35 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0] 19:35:35 at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0] 19:35:35 at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-63-g8356f65-b3075jnks] 19:35:35 ... 13 more @Plugers11
Danne123 Use Code:java Block under = e.getPlayer().getLocation().getBlock().getLocation().subtract(0.0D, -1.0D, 0.0D).getBlock();
How about using a task scheduler instead? It would be less heavy on memory. Code:java //Place this in onEnable()Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){ @Overridepublic void run() { for(Player p: Bukkit.getServer().getOnlinePlayers()){int x = p.getLocation().getBlockX();int y = p.getLocation().getBlockY();int z = p.getLocation().getBlockZ(); Block under = p.getWorld().getBlockAt(x,y-1,z);if(under.getType() == Material.SPONGE){p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 20, 2));}} } }, 20, 20); He forgot another major thing - Block under = (Block) e.getPlayer().getLocation().getBlock().getLocation().subtract(0.0D, -1.0D, 0.0D); On the left side of that statement is a block. On the right side, there is a location. You can't convert a location to a bock. EDIT by Moderator: merged posts, please use the edit button instead of double posting.