|
JetsAntiAFKPro | Player Time + AFK Reward/Detection | Actions | Bungee | Macros | GUI | [1.8 - 1.16 3.5.0
JetsAntiAFKPro | 玩家时间 + AFK 奖励/检测 | 行动 | 蹦极 | 宏 | 图形用户界面 | [1.8 - 1.16 3.5.0
◦•●❤♡ ᴄᴏɴᴛᴀᴄᴛ ꜱʜɪᴍᴍᴇʀᴇɴᴄᴇ#5219 ꜰᴏʀ ꜱᴜᴘᴘᴏʀᴛ ♡❤●•◦
Native Minecraft Version: Legacy (< 1.13) Tested Minecraft Versions: 1.8 / 1.9 / 1.10 / 1.11 / 1.12 / 1.13 / 1.14 / 1.15 / 1.16 / 1.17 / 1.18
![](https://i.imgur.com/3X0BJNO.png)
AntiAFKPro 提供了一个令人难以置信的高效、强大和先进的反 afk和播放器插件。配置在玩家 AFK 或达到游戏时间里程碑时执行的操作!
此插件允许您配置在玩家 AFK 或已经玩了一定时间时执行的“动作”。 快来加入我们的官方 Discord 服务器吧!
![](https://i.imgur.com/d61Bsmq.png)
![](https://i.imgur.com/qCu7Mvw.png)
- 有效且高效地检测所有 AFK 玩家
- 无法 使用 Minecraft 机制绕过(如果您找到方法,则退款)
![](https://www.spigotmc.org/styles/default/xenforo/clear.png)
) - 将检测自动点击和其他简单地移动玩家角色、水池、任何带有 TNT 的东西等的宏
- 节省和奖励玩家时间
- 当他们到达游戏时间/被取消时将玩家发送到其他服务器
- 可配置的操作(包括执行命令、声音、标题和消息或基于玩家权限的能力)当玩家处于 AFK 状态或已玩了一定时间时
- 当用户玩设定的时间时重复动作(IE 每玩 10 分钟就给他们一个奖励!)
- 当玩家从 AFK 中返回时执行动作
- 创建一个完全可配置的 GUI 来显示玩家时间(见下图)
- 通过 MySQL 存储玩家时间数据(允许您跨 Bungeecord 同步玩家时间数据)或 SQLite
- 插件将任务卸载到其他线程并且不监听 CPU 繁重的事件(它会像你机器上的羽毛一样运行)
- 占位符支持
- 极其轻量级,它异步工作,不监听任何 CPU 重事件!
![](https://i.imgur.com/MZDAGfW.png)
![](https://i.gyazo.com/c7a405a789b499919a987e9a836b38bb.gif)
![](https://i.gyazo.com/d902210b3adb92792bc48d362dbd3287.gif)
![](https://i.imgur.com/5aIxaun.png)
![](https://i.imgur.com/mXXhL99.png)
一般权限:
/antiafkpro(别名/playtime)-显示玩家时间(作为菜单或聊天) -antiafkpro.menu /antiafkpro about-
显示
有关插件的信息
管理员权限:
/antiafkpro reload-重新加载动作节点和消息-antiafkpro .admin.reload
/antiafkpro playtime <user> - 显示玩家的游戏时间 - antiafkpro.admin.playtime
如果您希望仅对具有权限的某些玩家执行操作,那么您可以这样做!只需将 Permission 操作与您要使用的其他操作一起使用!
![](https://i.imgur.com/oNdnvPE.png)
放入您的 /plugins/ 目录并进行配置!
需要 PlaceholderAPI,以及使用 Title 消息的 1.8 服务器的 TitleAPI
剧透:占位符代码:
Valid Placeholders:%jetsantiafkpro_isafk_total% //Returns total AFK on the server%jetsantiafkpro_timeplayed_years% //Returns years the player has played%jetsantiafkpro_timeplayed_months% //Returns months the player has played%jetsantiafkpro_timeplayed_days% //Returns days the player has played%jetsantiafkpro_timeplayed_hours% //Returns the hours the player has played, minus days%jetsantiafkpro_timeplayed_minutes% //Returns minutes the player has played, minus hours/days%jetsantiafkpro_timeplayed_seconds% //returns seconds the player has played, minus minutes/hours/days%jetsantiafkpro_session_timeplayed_days% //Returns session days the player has played%jetsantiafkpro_session_timeplayed_hours% //Returns the session hours the player has played, minus days%jetsantiafkpro_session_timeplayed_minutes% //Returns session minutes the player has played, minus hours/days%jetsantiafkpro_session_timeplayed_seconds% //returns session seconds the player has played, minus minutes/hours/days%jetsantiafkpro_timeplayed_seconds_unformatted% //returns total seconds played%jetsantiafkpro_timeplayed_minutes_unformatted% //returns total minutes played%jetsantiafkpro_timeplayed_hours_unformatted% //returns total hours played%jetsantiafkpro_afk_seconds% //Returns the time the player has been AFK for%jetsantiafkpro_isafk% //Returns a placeholder configured in config.yml if the user is afkYou can also do %jetsantiafkpro_top_<number>_<restoftheplaceholderhere>% to get top playersand%jetsantiafkpro_top_<number>_player_name% to get the player name of that position
![](https://i.imgur.com/2BTyYdL.png)
剧透:config.yml代码:
############################################## ## JetsAntiAFKPro ## Created by Jet315 ## ###############################################The prefix that is shown before the pluginplugins_prefix: "&eAFK &7» "# -- Plugin Settings --#The check delay in seconds of checking when someone is AFK - 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#Do you want to stop the player getting playtime, if the player is AFK? if so, how long should the player be AFK for before it stops counting playtime?#set to -1 to disableafk_stop_counting_playtime: -1#If a player types/speaks, would you like this to reset the players AFK time to 0 (So speaking means players are not considered AFK)should_player_be_afk_if_speaks: false #false = If a player speaks, they will still be considered AFK if they do not move#Would you like to give players god mode, so they cannot take damage, if a player goes afk (Default is 120 seconds, unless 'afk_stop_counting_playtime' is specified)enable_afk_god_mode: false#Any world names listed here, if a player is in it, the AFK actions wont be executed againstafk_exempt_worlds: - example_world#Any world names listed here, if a player is in it, the playtime actions wont be executed againstplaytime_exempt_worlds: - example_world#Would you like to enable the /afk command? This will override essentials - Requires server restart to take effect if you change this valueenable_afk_command: true#The papi placeholder %jetsantiafkpro_isafk% will return the following text if they are considered afk (by default, 2 minutes, or when the variable afk_stop_counting_playtime above is hit), or the non_afk_placeholder if they are not afk#This is good for Tab Lists pluginsafk_placeholder: "&4[&cAFK&4]"non_afk_placeholder: ""#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 - 1.8 MC Required TitleAPI# 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 - Other placeholders using PlaceholderAPI supported# 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# BYPASSPERMISSION Example: BYPASSPERMISSION|antiafkpro.default *Players with this permission will not be effected by the action# SLOTCOUNTGREATERTHAN Example: SLOTCOUNTGREATERTHAN|30 *The action will only be executed if there is > 30 players on# SLOTCOUNTERLESSTHAN Example: SLOTCOUNTERLESSTHAN|30 *The action will only be executed if there is < 30 players on# PLAYTIMEGREATERTHAN Example: PLAYTIMEGREATERTHAN|500 *The action will only be executed if the player has played for more than 500 seconds# PLAYTIMELESSTHAN Example: PLAYTIMELESSTHAN|500 *The action will only be executed if the player has played for less than 500 seconds# INWORLD Example: INWORLD|pvpworld *The action will only be executed if they are in the pvpworld# BROADCAST Example: BROADCAST|Hello all! *Broadcast a message to everyone on the server## If you want to repeat an action, say every 10 minutes reward a player, simply add a % after the number (see playtime as an example#MVdWPlaceholders Supported #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|&6Anti AFK ; &bYou will be kicked in &c5 &bseconds" 296: - "TITLE|&6Anti AFK ; &bYou will be kicked in &c4 &bseconds" 297: - "TITLE|&6Anti AFK ; &bYou will be kicked in &c3 &bseconds" 298: - "TITLE|&6Anti AFK ; &bYou will be kicked in &c2 &bseconds" 299: - "TITLE|&6Anti AFK ; &bYou will be kicked in &c1 &bsecond" 300: #300 seconds = 5 minutes - "BYPASSPERMISSION|antiafkpro.admin" #If they have this permission, the action will not execute - "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|&ePlayTime &7» &cYou have played for 5 Minutes! &6You have been rewarded with $100!" - "COMMAND|eco give %PLAYER% 100" 3600: #3600 seconds = 1 hour - "MESSAGE|&ePlayTime &7» &cYou have played for 1 hour! &6You have been rewarded with $1000!" - "COMMAND|eco give %PLAYER% 1000" 86400: #86400 seconds = 1 day - "MESSAGE|&ePlayTime &7» &cYou have played for 1 day - Wow, you really like this server! &6You have been rewarded with $10000!" - "COMMAND|eco give %PLAYER% 10000" 600%: # -- PUTTING A % AFTER A NUMBER MEANS IT WILL BE REPEATED EVERY X SECONDS - "MESSAGE|&eAFK &7» &cYou have been rewarded with $100 for playing! " - "COMMAND|eco give %PLAYER% 100"### Actions that are executed when a player has returned from being AFK after X time# return_from_afk: 120: #120 seconds = 2 minutes - If a player has been AFK for more than 120 seconds, this action will be executed when the player gets back - "MESSAGE|&eAFK &7» &cWelcome Back!" - "TITLE|&6You have returned ; &6from being AFK"store_player_time: true #Will store players timeenable_player_time_gui: true #If this is false, doing /afk (or alias) will tell the player his/her time in chatafk_ignore_opped_players: true #afk actions will not effect opped players# -- Database properties --#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 properties solution to another (I.E changing properties 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#Auto-save interval - Would you like to save data to the database periodically to prevent loss of data if the server crashes?#By default, data is saved when a player logs out or when the server is stopped#Number of seconds you would like to save data to the database, -1 to disable (suggested 300 if you want to enable this)auto_save_seconds: -1
剧透:playertimegui.yml代码:
#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 houseplaytime_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-------------------'
剧透:消息代码:
#Messages configuration valueno_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"
![](https://i.imgur.com/v1dcf3k.png)
我已经实现了一个基本的 API,所以如果你愿意,你可以得到 playertime / afk time。要实现的代码:
代码(文本):
//我建议将其保存到字段变量中,这样您就不必一直调用 Bukkit API
((AntiAFKProAPI) Bukkit.getPluginManager().getPlugin("AntiAFKPro") ).getAntiAFKProAPI();
(如果你想让我添加一些东西,请 PM 我)
https://pastebin.com/Fmwm41BP
|
![](plugin.php?id=weijie_qr&data=http%3A%2F%2Fwww.mcbourse.cn%2Fthread-1434-1-1.html&code=c4c382e1) 手机扫码浏览
|