I don't see why this isn't working...

Discussion in 'Plugin Development' started by Sehq, Jul 17, 2016.

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

    Sehq

    Hey guys, I'm coding an Autoclicker banner using the ClickPerSecond developer API.

    I've went over multiple versions of the code and nothing is working.
    The function I want is,
    if player gets over 35 clicks in a second, add a vl level/number to them
    if player has 5 vl/levels, autoban them

    This is currently my code:
    Code:
    package me.sehq.autocpsban;
    
    import java.util.HashMap;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import me.BlazingBroGamer.CPS.ClickWarningEvent;
    
    public class CPSBan extends JavaPlugin implements Listener {
        HashMap<String, Integer> vl = new HashMap<String, Integer>();
        @EventHandler
        public void onCPSWarn(ClickWarningEvent e) {
            Player p = e.getPlayer();
            int clicks = e.getClickAmount();
            if (clicks > 35) {
                int vlBefore = vl.get(p.getName());
                vl.put(p.getName(), vlBefore++);              
                }
            int vlBefore = vl.get(p.getName());
            if (vlBefore == 5) {
                Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "helpop " + p.getName() + " hit 5 vl!");
                Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "ipban " + p.getName() + " You have been banned for cheating - Autoclicking");
            }
        }   
        public void onEnable() {
            Bukkit.getPluginManager().registerEvents(this, this);
        }
            }
    
    Any help would be great, thanks
     
  2. Offline

    Firestar311

    Put some debug statements (either the logger or chat based) to see where your code gets. and to see if it is calling the event properly. You might want to use a Bukkit based event for clicking.
     
  3. Offline

    Sehq

    @Firestar311

    I created a test server to see if there were any errors, warns, and info, and it came up with this:
    Code:
    [20:30:01 INFO]: [AutoCPSBan] Loading AutoCPSBan v1.0
    [20:30:01 INFO]: [ClicksPerSecond] Loading ClicksPerSecond v1.2.6
    [20:30:01 INFO]: Preparing level "world"
    [20:30:01 WARN]: Exception in thread "Thread-7"
    [20:30:01 WARN]: org.bukkit.craftbukkit.libs.com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 7
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:180)
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.Gson.fromJson(Gson.java:755)
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.Gson.fromJson(Gson.java:694)
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.v1_7_R3.updater.BukkitDLUpdaterService.fetchArtifact(BukkitDLUpdaterService.java:53)
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.v1_7_R3.updater.BukkitDLUpdaterService.getArtifact(BukkitDLUpdaterService.java:30)
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.v1_7_R3.updater.AutoUpdater$1.run(AutoUpdater.java:77)
    [20:30:01 WARN]: Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 7
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonReader.expect(JsonReader.java:339)
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonReader.beginObject(JsonReader.java:322)
    [20:30:01 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:168)
    [20:30:01 WARN]:        ... 5 more
    [20:30:01 INFO]: Preparing start region for level 0 (Seed: -334642043207110773)
    [20:30:02 INFO]: Preparing start region for level 1 (Seed: -334642043207110773)
    [20:30:02 INFO]: Preparing start region for level 2 (Seed: -334642043207110773)
    [20:30:02 INFO]: [AutoCPSBan] Enabling AutoCPSBan v1.0
    [20:30:02 INFO]: [ClicksPerSecond] Enabling ClicksPerSecond v1.2.6
    [20:30:02 INFO]: [CPS] Enabling data sending to Metrics
    [20:30:02 INFO]: Server permissions file permissions.yml is empty, ignoring it
    [20:30:03 INFO]: Done (1.396s)! For help, type "help" or "?"
    [20:30:03 WARN]: Exception in thread "pool-3-thread-1"
    [20:30:03 WARN]: org.apache.commons.lang.UnhandledException: Plugin ClicksPerSecond v1.2.6 generated an exception while executing task 4
            at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
            at me.BlazingBroGamer.CPS.Metrics.postPlugin(Metrics.java:335)
            at me.BlazingBroGamer.CPS.Metrics.access$4(Metrics.java:328)
            at me.BlazingBroGamer.CPS.Metrics$1.run(Metrics.java:223)
            at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftTask.run(CraftTask.java:53)
            at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
            ... 3 more
    
    @Firestar311

    I then looked a bit deeper and decided I may have to import the entire BlazingBroGamer package, which I then did:
    Code:
    [20:33:16 INFO]: [AutoCPSBan] Loading AutoCPSBan v1.0
    [20:33:16 INFO]: [ClicksPerSecond] Loading ClicksPerSecond v1.2.6
    [20:33:16 INFO]: Preparing level "world"
    [20:33:16 INFO]: Preparing start region for level 0 (Seed: -334642043207110773)
    [20:33:16 WARN]: Exception in thread "Thread-7"
    [20:33:16 WARN]: org.bukkit.craftbukkit.libs.com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 7
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:180)
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.Gson.fromJson(Gson.java:755)
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.Gson.fromJson(Gson.java:694)
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.v1_7_R3.updater.BukkitDLUpdaterService.fetchArtifact(BukkitDLUpdaterService.java:53)
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.v1_7_R3.updater.BukkitDLUpdaterService.getArtifact(BukkitDLUpdaterService.java:30)
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.v1_7_R3.updater.AutoUpdater$1.run(AutoUpdater.java:77)
    [20:33:16 WARN]: Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 7
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonReader.expect(JsonReader.java:339)
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonReader.beginObject(JsonReader.java:322)
    [20:33:16 WARN]:        at org.bukkit.craftbukkit.libs.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:168)
    [20:33:16 WARN]:        ... 5 more
    [20:33:17 INFO]: Preparing start region for level 1 (Seed: -334642043207110773)
    [20:33:17 INFO]: Preparing start region for level 2 (Seed: -334642043207110773)
    [20:33:17 INFO]: [AutoCPSBan] Enabling AutoCPSBan v1.0
    [20:33:17 INFO]: [ClicksPerSecond] Enabling ClicksPerSecond v1.2.6
    [20:33:17 INFO]: [CPS] Enabling data sending to Metrics
    [20:33:17 INFO]: Server permissions file permissions.yml is empty, ignoring it
    [20:33:17 INFO]: Done (1.320s)! For help, type "help" or "?"
    [20:33:18 WARN]: Exception in thread "pool-3-thread-1"
    [20:33:18 WARN]: org.apache.commons.lang.UnhandledException: Plugin ClicksPerSecond v1.2.6 generated an exception while executing task 4
            at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
            at me.BlazingBroGamer.CPS.Metrics.postPlugin(Metrics.java:335)
            at me.BlazingBroGamer.CPS.Metrics.access$4(Metrics.java:328)
            at me.BlazingBroGamer.CPS.Metrics$1.run(Metrics.java:223)
            at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftTask.run(CraftTask.java:53)
            at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
            ... 3 more
    
    It might be because I don't have my other plugins I usually use, so ill restart my main server and see what comes up.

    NEVERMIND, don't read those statements. I didn't read the "either the logger or chat based" part of your statement correctly.

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

    Firestar311

    That and the errors are due to JSON related things.
     
  5. Offline

    Sehq

    @Firestar311

    Alright, so I finally got on and tested it, and I came up with this result:
    [​IMG]


    This is my code:

    Code:
    package me.sehq.autocpsban;
    
    import java.util.HashMap;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import me.BlazingBroGamer.CPS.ClickWarningEvent;
    import me.BlazingBroGamer.CPS.*;
    
    @SuppressWarnings("unused")
    public class CPSBan extends JavaPlugin implements Listener {
        HashMap<String, Integer> vl = new HashMap<String, Integer>();
        @EventHandler
        public void onWarning(ClickWarningEvent e) {
            Player p = e.getPlayer();
            int clicks = e.getClickAmount();
            Bukkit.getServer().broadcastMessage("int clicks is fine");
            if (clicks > 35) {
                Bukkit.getServer().broadcastMessage("if clicks is over 35 is fine");
                int vlBefore = vl.get(p.getName());
                Bukkit.getServer().broadcastMessage("vl before is fine");
                vl.put(p.getName(), vlBefore++);      
                Bukkit.getServer().broadcastMessage("putting vl before is fine");
                }
            int vlBefore = vl.get(p.getName());
            Bukkit.getServer().broadcastMessage("creating the vl before int is fine");
            if (vlBefore == 5) {
                Bukkit.getServer().broadcastMessage("if vlbefore equals 5 is fine");
                Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "helpop " + p.getName() + " hit 5 vl!");
                Bukkit.getServer().broadcastMessage("helpop hit 5 vl is fine");
                Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "ipban " + p.getName() + " You have been banned for cheating - Autoclicking");
                Bukkit.getServer().broadcastMessage("autobanning is fine");
            }
        }   
        public void onEnable() {
            Bukkit.getPluginManager().registerEvents(this, this);
            Bukkit.getServer().broadcastMessage("registering is fine");
        }
            }
    
    Then I also have this error log:
    [​IMG][​IMG]

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

    ipodtouch0218

    The error is that "int vlBefore = vl.get(p.getName());" is null. Do an IF statement and check if the "vl.get(p.getName())" is not null. If it is, set "vlBefore = 0"

    You'll have to initiate the variable before though.
     
  7. Offline

    Firestar311

    I notice that you are using Bukkit 1.7.4. I also notice that you have another plugin requirement. Are you using the 1.7.4 version of that plugin?
     
Thread Status:
Not open for further replies.

Share This Page