Anti-Spam

Discussion in 'Plugin Development' started by TheHolySheep_NL, Apr 28, 2014.

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

    TheHolySheep_NL

    hello, I am making an Anti-Spam plugin.
    The problem:
    When people chat they get added to the "antispam ArrayList" but the never get removed. I also get an error when people chat.

    - Sheep

    AntiSpam Class:
    Code:java
    1. package me.theholysheepnl.ServerHelp;
    2.  
    3.  
    4. import java.util.ArrayList;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.EventHandler;
    10. import org.bukkit.event.EventPriority;
    11. import org.bukkit.event.Listener;
    12. import org.bukkit.plugin.Plugin;
    13.  
    14. public class AntiSpam implements Listener {
    15.  
    16. ArrayList<String> antispam = new ArrayList<String>();
    17.  
    18. @EventHandler(priority = EventPriority.NORMAL)
    19. public void onChatEvent(final org.bukkit.event.player.AsyncPlayerChatEvent e){
    20. final Player p = e.getPlayer();
    21. if(antispam.contains(e.getPlayer().getName())){
    22. p.sendMessage(ChatColor.RED + "You have to wait" + ChatColor.GOLD + " 2 " + ChatColor.RED + "More seconds before you can send a message again!");
    23. e.setCancelled(true);
    24. return;
    25. }
    26. if(!antispam.contains(e.getPlayer().getName())){
    27. antispam.add(p.getName());
    28. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask((Plugin) this, new Runnable() {
    29. public void run() {
    30. antispam.remove(e.getPlayer().getName());
    31. }
    32. }, 20);
    33. }
    34. }
    35. }


    Error:
    Code:java
    1. [09:19:50 ERROR]: Could not pass event AsyncPlayerChatEvent to ServerHelp v0.2
    2. org.bukkit.event.EventException
    3. at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    4. at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    5. at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    6. at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    7. at net.minecraft.server.v1_7_R1.PlayerConnection.chat(PlayerConnection.java:858) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    8. at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:828) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    9. at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    10. at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    11. at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:72) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    12. at net.minecraft.server.v1_7_R1.NetworkManager.channelRead0(NetworkManager.java:192) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    13. at net.minecraft.util.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975j
    14. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd4
    15. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450
    16. at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    17. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd4
    18. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450
    19. at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    20. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd4
    21. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450
    22. at net.minecraft.util.io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:149) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    23. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd4
    24. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450
    25. at net.minecraft.util.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    26. at net.minecraft.util.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b297
    27. at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    28. at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    29. at net.minecraft.util.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    30. at net.minecraft.util.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jn
    31. at java.lang.Thread.run(Unknown Source) [?:1.7.0_55]
    32. Caused by: java.lang.ClassCastException: me.theholysheepnl.ServerHelp.AntiSpam cannot be cast to org.bukkit.plugin.Plugin
    33. at me.theholysheepnl.ServerHelp.AntiSpam.onChatEvent(AntiSpam.java:37) ~[?:?]
    34. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_55]
    35. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_55]
    36. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_55]
    37. at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_55]
    38. at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    39. ... 28 more
    40. [09:19:50 ERROR]: Could not pass event AsyncPlayerChatEvent to ServerHelp v0.2
    41. org.bukkit.event.EventException
    42. at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    43. at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    44. at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    45. at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    46. at net.minecraft.server.v1_7_R1.PlayerConnection.chat(PlayerConnection.java:858) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    47. at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:828) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    48. at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    49. at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    50. at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:72) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    51. at net.minecraft.server.v1_7_R1.NetworkManager.channelRead0(NetworkManager.java:192) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    52. at net.minecraft.util.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975j
    53. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd4
    54. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450
    55. at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    56. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd4
    57. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450
    58. at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    59. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd4
    60. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450
    61. at net.minecraft.util.io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:149) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    62. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd4
    63. at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450
    64. at net.minecraft.util.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    65. at net.minecraft.util.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b297
    66. at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    67. at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    68. at net.minecraft.util.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    69. at net.minecraft.util.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jn
    70. at java.lang.Thread.run(Unknown Source) [?:1.7.0_55]
    71. Caused by: java.lang.NullPointerException
    72. at me.theholysheepnl.ServerHelp.AntiCurse.onChatEvent(AntiCurse.java:14) ~[?:?]
    73. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_55]
    74. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_55]
    75. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_55]
    76. at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_55]
    77. at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-1-gbafd450-b2975jnks]
    78. ... 28 more
     
  2. Offline

    RawCode

    care to read your trace?

    Caused by: java.lang.ClassCastException: me.theholysheepnl.ServerHelp.AntiSpam cannot be cast to org.bukkit.plugin.Plugin
     
  3. Offline

    CraftedShack

    You cannot cast AntiSpam to Plugin. Because the class AntiSpam doesn't extend JavaPlugin class.
     
  4. Offline

    TheHolySheep_NL

    RawCode i did read my trace but i dont know how to fix it :/

    - Sheep

    CraftedShack How do i fix that?
    Do i have to put Anti-Spam in the Main class?

    - Sheep

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

    Zwander

    (Plugin)this
    AntiSpam is not an instance of Plugin.

    Do you understand how to read stack traces?
    They literally tell you where the error is.

    EDIT: Ninja'd

    Get the plugin instance. Put a static method in the main class that gets the plugin instance.
    You will need a static variable of type Plugin for this.

    Code:
    private static Plugin plugin;
    public void onEnable(){
      plugin=this;
    }
    public static Plugin getPlugin(){
      return plugin;
    }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 7, 2016
  6. Offline

    TheHolySheep_NL

    Zwander did you mean this:
    Code:java
    1. package me.theholysheepnl.ServerHelp;
    2.  
    3. import java.util.logging.Logger;
    4.  
    5. import org.bukkit.event.Listener;
    6. import org.bukkit.plugin.Plugin;
    7. import org.bukkit.plugin.PluginManager;
    8. import org.bukkit.plugin.java.JavaPlugin;
    9.  
    10. public class Main extends JavaPlugin implements Listener {
    11. public final Logger logger = Logger.getLogger("Minecraft");
    12. public static Main plugin;
    13.  
    14. @Override
    15. public void onEnable() {
    16.  
    17. plugin=this;
    18. }
    19. public static Plugin getPlugin(){
    20. return plugin;
    21. }
    22.  
    23. PluginManager pm = getServer().getPluginManager();
    24. pm.registerEvents(new ChatHelp(), this);
    25. pm.registerEvents(new AntiSpam(), this);
    26. pm.registerEvents(new AntiCurse(), this);
    27. this.getCommand("clearchat").setExecutor(new ChatControl(this));
    28. this.getCommand("help").setExecutor(new ServerInfo(this));
    29. this.getCommand("protect").setExecutor(new protectHelp(this));
    30.  
    31. }
    32. }
     
  7. Offline

    Zwander

    No... That ah... no.

    I meant in the class that already extends JavaPlugin

    EDIT: My bad, yes that is what i meant.
     
  8. Zwander That is in his main class.

    TheHolySheep_NL Please learn Java first. Otherwise, you'll keep having issues like this and won't know how to do them.
     
  9. Offline

    Zwander

    AdamQpzm
    Ah, so it is, awks. I saw the extends Listener and made assumptions.

    In that case, yes, that is what i meant.
     
  10. Zwander It's not what you meant, have you seen where he put the getter method? :p
     
  11. Offline

    Zwander

    Yea, I know... Was about to point that out. Its actually in the right place, he/she has just cut off the rest of their onEnable by the looks of it...

    As Adam here said, learn java first, bukkit second.
     
    AdamQpzm likes this.
  12. Offline

    RawCode

    read carefully line 28 of very first code paste...

    there is no hope and no way to help someone who just dont know java.

    TheHolySheep_NL
    google + java + inheritance then try again.
     
  13. Offline

    TheHolySheep_NL

    Ok, Thx for the reply's

    - Sheep
     
Thread Status:
Not open for further replies.

Share This Page