JetsAntiAFKPro | Player Time + AFK Reward/Detection | Actions | Bungee | Macros | GUI | [1.8 - 1.16 3.2.2

An advanced AFK detection plugin with configurable actions! Also configure actions for playtime!

  1. Kate
    Trulli [​IMG]
    AntiAFKPro provides an incredibly efficient, yet powerful and advanced anti-afk and player-time plugin. Configure actions that are executed when players are AFK or reach play-time milestones!

    This plugin allows you to configure 'actions' that are executed when a player is AFK or has played for a certain amount of time.

    [​IMG]
    Come and join our official Discord Server!

    [​IMG]
    • Detects AFK players effectively and very efficiently
    • Will detect AutoClicking and other macros that simply move the player character
    • Counts Player Time
    • Send players to other servers when they reach playtime / are afk
    • Configurable actions (Including the ability to execute Commands, Sounds, Titles and Messages or based of player permission) when a player is AFK or has played for a set amount of time
    • Repeat actions when users play for set amounts of time (I.E give them a reward every 10 minutes of playtime!)
    • Cannot be bypassed using Vanilla Minecraft mechanics
    • Create a completely configurable GUI to show player time (see pictures below)
    • Store Player Time data via MySQL (Allowing you to sync player-time data across a Bungeecord) or SQLite
    • Plugin offloads tasks to other threads and does not listen on CPU heavy events (It will run like a feather on your machine)
    • Placeholder support
    [​IMG]

    [​IMG]
    [​IMG]

    [​IMG]

    [​IMG]

    General Permissions:
    /antiafkpro (alias /playtime) -
    Shows player time (as a menu or in chat) -
    antiafkpro.menu
    /antiafkpro about
    - Shows information about the plugin

    Admin Permissions:
    /antiafkpro reload -
    Reloads the Action Nodes and Messages - antiafkpro.admin.reload
    /antiafkpro playtime <user> - Shows that players playtime - antiafkpro.admin.playtime


    If you want actions to only be executed for certain players with a permission, then you can do this! Simply use the Permission action in conjunction with others that you want to use!

    [​IMG]
    Drop into your /plugins/ directory and configure!

    MVdWPlaceholders (Can be used in other plugins)

    Code (Text):

    Valid Placeholders:
    %antiafkpro_timeplayed_days% //Returns days the player has played
    %antiafkpro_timeplayed_hours% //Returns the hours the player has played, minus days
    %antiafkpro_timeplayed_minutes% //Returns minutes the player has played, minus hours/days
    %antiafkpro_timeplayed_seconds% //retruns seconds the player has played, minus minutes/hours/days
    %antiafkpro_afk_seconds% //Returns the time the player has been AFK for


    [​IMG]

    Code (Text):
    #############################################
    # #
    # AntiAFKPro #
    # Created by Jet315 #
    # #
    #############################################

    #The prefix that is shown before the plugin
    plugins_prefix: "&eAFK &7» "


    # -- Plugin Settings --

    #The check delay in seconds - These calculations are done ASync so I wouldn't suggest changing this (It's not going to effect performance)
    #If you do change it, the actions below must be divisible by this number (I wouldn't suggest changing it, but you have the option too)
    check_delay: 1

    #These actions are executed if the players time (in seconds) is equal to the number below
    #Action format:
    # ACTION|Value
    #Possible Actions@
    # COMMAND Example: COMMAND|kick %PLAYER% don't afk... *Executes a command and replaces %PLAYER% with the players name
    # TITLE Example: TITLE|Title Text;SubTitle Text *Shows a title to the player and replaces %PLAYER% with the players name and ; to split title;subtitle
    # SOUND Example: SOUND|BLOCK_LADDER_HIT *NOTE YOU WILL NEED TO USE THE CORRECT SOUND NAME FOR YOUR MC VERSION
    # MESSAGE Example: MESSAGE|Hey, %PLAYER%, wake up! *Sends the message to a player, replace %PLAYER% with the players name
    # SERVER Example: SERVER|lobby *Players will be sent to a server called 'lobby'
    # PERMISSION Example: PERMISSION|antiafkpro.default *Players will need the required permission, else the action will not continue
    #

    actions:
    #
    #Actions that are executed when the player is AFK
    #
    afk:
    120: #120 seconds = 2 minutes
    - "MESSAGE|&eAFK &7» &cYou have been AFK for two minutes, you will be kicked soon!"
    - "TITLE|&6You have been ; &6AFK for two minutes"
    295:
    - "TITLE|&6You will be kicked in ; &c5"
    296:
    - "TITLE|&6You will be kicked in ; &c4"
    297:
    - "TITLE|&6You will be kicked in ; &c3"
    298:
    - "TITLE|&6You will be kicked in ; &c2"
    299:
    - "TITLE|&6You will be kicked in ; &c1"
    300: #300 seconds = 5 minutes
    - "COMMAND|kick %PLAYER% You have been kicked as you have been AFK for 5 minutes"
    #
    ## Actions that are executed when the player plays for a certain time (store_player_time needs to be enabled for this)
    #
    playtime:
    300: #300 seconds = 5 minutes
    - "MESSAGE|&eAFK &7» &cYou have played for 5 Minutes! &6You have been rewarded with $100!"
    - "COMMAND|eco give %PLAYER% 100"
    3600: #3600 seconds = 1 hour
    - "MESSAGE|&eAFK &7» &cYou have played for 1 hour! &6You have been rewarded with $1000!"
    - "COMMAND|eco give %PLAYER% 1000"
    86400: #86400 seconds = 1 day
    - "MESSAGE|&eAFK &7» &cYou have played for 1 day - Wow, you really like this server! &6You have been rewarded with $10000!"
    - "COMMAND|eco give %PLAYER% 10000"


    store_player_time: true #Will store players time
    enable_player_time_gui: true #If this is false, doing /afk (or alias) will tell the player his/her time in chat


    # -- Database storage --

    #Either you may use SQLite or MySQL (Can use MySQL to enable a single cross-server database to store players time in)
    #If you do not understand these settings, it's probably best not to change
    #There is currently no way to transfer data from one storage solution to another (I.E changing storage types after setting up the plugin will cause player data to start over)
    database:
    sqlite:
    use: true
    db: "data"
    mysql:
    use: false
    host: "localhost"
    user: "root"
    password: "pa55sw0rd"
    port: "3306"
    db: "antiafkpro"
    ssl: false

    Code (Text):
    #Items can be easily added!:
    #Example:
    # item_name: - Can be called anything
    # type: STAINED_GLASS_PANE - Any Material, MUST be valid for your Minecraft Version
    # data: 15 #Not used for Minecraft version 1.13 +
    # name: " " - Can be called anything (and can contain placeholders)
    # slot: 2 - Can be in any slot
    # command_to_perform: "" - Can perform any command when clicked (%CLOSE% to close the menu) - forces user to execute the command
    # lore: - Can have any lore
    #
    # Possible plugin placeholders:
    # %TIME_PLAYED_DAYS% - Returns the number of days played by the player (integer)
    # %TIME_PLAYED_HOURS% - Returns the number of hours played by the player (integer 0-24)
    # %TIME_PLAYED_MINUTES% - Returns the number of minutes played by the player (integer 0-60)
    # %TIME_PLAYED_SECONDS% - Returns the number of seconds played by the player (integer 0-60)
    # %TIME_PLAYED_SECONDS_UNFORMATTED% - Returns the number of total seconds played by the user (integer)
    #
    #
    #This is the GUI shown when a user does not have a house
    playtime_gui:
    slots: 9 #Must be a multiple of 9
    gui_name: "&bTime Played Menu"
    items:
    close_item:
    type: NETHER_STAR
    data: 0
    name: '&c&lCLOSE'
    slot: 0 #Slot start at 0
    command_to_perform: "%CLOSE%" #%CLOSE% = close menu
    lore:
    - ' '
    - '&7Click to close'
    - '&7this GUI'
    - ' '
    - '&d&m-------------------'
    time_item:
    type: COMPASS
    data: 0
    name: '&a&lTime Played'
    slot: 8
    command_to_perform: "%CLOSE%"
    lore:
    - '&6You Have Played For:'
    - ' '
    - '&eDays: &b%TIME_PLAYED_DAYS%'
    - '&eHours: &b%TIME_PLAYED_HOURS%'
    - '&eMinutes: &b%TIME_PLAYED_MINUTES%'
    - '&eSeconds: &b%TIME_PLAYED_SECONDS%'
    - ' '
    - '&d&m-------------------'

    Code (Text):
    #Messages configuration value

    no_permission: "&cYou do not have permission to this command!"

    failed_to_load_stats: "&cAn issue has occured! Please try again later..."

    #If you've disabled the GUI, then this message will be send went a player does /playtime (or alias)
    # Possible plugin placeholders:
    # %TIME_PLAYED_DAYS% - Returns the number of days played by the player (integer)
    # %TIME_PLAYED_HOURS% - Returns the number of hours played by the player (integer 0-24)
    # %TIME_PLAYED_MINUTES% - Returns the number of minutes played by the player (integer 0-60)
    # %TIME_PLAYED_SECONDS% - Returns the number of seconds played by the player (integer 0-60)
    # %TIME_PLAYED_SECONDS_UNFORMATTED% - Returns the number of total seconds played by the user (integer)
    playtime_message: "&aYou have played for &e%TIME_PLAYED_DAYS% &aDays, &e%TIME_PLAYED_HOURS% &aHours, &e%TIME_PLAYED_MINUTES% &aMinutes and &e%TIME_PLAYED_SECONDS%&a seconds"
    [​IMG]
    I have implemented a basic API so you are able to get playertime / afk time if you wish. Code to implement:
    Code (Text):

    //I would suggest saving this to a field variable, so you don't have to keep keep calling the Bukkit API
    ((AntiAFKProAPI) Bukkit.getPluginManager().getPlugin("AntiAFKPro")).getAntiAFKProAPI();
    (Just PM me if you want me to add something)
    https://pastebin.com/Fmwm41BP



    [​IMG]
    Any problems, questions or suggestions send me a PM here, on Spigot - I'm pretty active :)

    [​IMG]
    By buying this plugin you agree to the following terms:
    • You will not chargeback - If you have a legit issue that I cannot fix then I’ll happily refund you
    • I cannot guarantee support indefinitely.
    • You may not redistribute or resell this plugin (You are welcome to modify it for your servers needs though)
    • I may refuse to give you support with or without any specific reason
    • If you have an issue with this plugin, please contact me before leaving a 1 or low star rating
    • I can update this terms of use at any time, without notification

Recent Updates

  1. 3.2.2
  2. 3.2.1
  3. 3.2.0

Recent Reviews

  1. testminator3
    testminator3
    5/5,
    Version: 2.0.4 + LEGACY (1.6.1)
    Update to latest version?
  2. iLoveSex
    iLoveSex
    5/5,
    Version: 1.6.1
    Can u update?