- 积分
- 3495
- 帖子
- 主题
- 精华
贡献- 份
爱心- 心
- 钻石
- 颗
- 人气
- 点
- 下界之星
- 枚
- 最后登录
- 1970-1-1
- 注册时间
- 2015-4-3
来自:河南 | 服务端插件英文名称: | EasyVar |
---|
中文名称: | 简单变量 |
---|
插件来源: | 原创 |
---|
适用服务端: | Spigot |
---|
插件类型: | 信息 |
---|
语言支持: | 简体中文 |
---|
适用版本: | 1.17.X 1.16.X 1.15.X 1.14.X 1.13.X 1.12 1.11 1.10 1.9 1.8 1.7.10 |
---|
前置Mod|插件: | PlaceholderAPI(可选) |
---|
下载地址: | https://pan.baidu.com/s/17HwHImiNs407QOmgPQCYiA |
---|
原帖地址: | - |
---|
插件Logo: | - |
---|
插件简介: | 高度自定义且简单的变量插件,5行命令实现在线奖励 |
---|
本帖最后由 MC_juxie 于 2022-3-12 20:39 编辑
EasyVar基本介绍
简单设置变量并根据变量的值执行命令,高度自定义且简单的变量插件(5行命令实现在线奖励发放) 开源
- https://github.com/abmcar/EasyVar
复制代码
前言 曾经在开服务器的时候需要一个插件来记录玩家的自定义变量,然而当时的我翻遍了bbs也没有找到一个能用的插件。多年之后的一天,打完多校头昏眼花的我偶然想到了这件事情,恰逢暑假集训刷题无聊,产生了自己写一个插件的的想法,最终经过两天的愉快摸鱼,终于完成了该插件的最初版本。 由于第一次写插件且之前没有开发经验,此插件源码急需dalao纠正且不建议任何初学者学习。
功能
- 自定义全局/玩家变量
- 增加修改记录变量
- 根据变量的值以OP/普通权限执行命令
- 每隔一定时间自动执行脚本
PAPI 感谢呆瓜小黑的pr让EasyVar支持papi %ev_自定义变量% 即是Ev变量
我能拿它做什么?
- 设置一个一次性脚本对初始化玩家的进服权限和物品
- 设置一个全局变量来统计全服玩家的行为次数
- 设置一个针对玩家变量的脚本给予玩家某个行为的累计奖励
- 设置一个脚本发放玩家的登陆累计奖励
- 设置一个玩家变量记录玩家的某个贡献
- 设置一个脚本对某些变量进行更改
- 记录玩家的在线时长并发放奖励
- 等等......
举个栗子 config.yml
- runTask: true
- runTaskTime: 0.5
- runPlayerScriptName: basePlayerScript
复制代码 basePlayerScript.yml
- varType: global
- varName: baseVar
- requireValue: 0
- isOp: false
- commands:
- - evdisplay script run onlineReward
- - evdisplay add player <player> onlineTime 1
复制代码 onlineReward.yml
- varType: <player>
- varName: onlineTime
- requireValue: 3600
- isOp: true
- commands:
- - evdisplay reduce player <player> onlineTime 3600
- - give <player> minecraft:diamond 1
复制代码 简单实现了在线半个小时奖励玩家一颗钻石的功能 命令如下:- ev script set onlineReward <player> onlineTime 3600 true
- ev script add onlineReward give_<player>_minecraft:diamond_1
- ev script add onlineReward evdisplay_reduce_player_<player>_onlineTime_3600
- ev script add basePlayerScript evdisplay_script_run_onlineReward
- ev script add basePlayerScript evdisplay_add_player_<player>_onlineTime_1
复制代码
|
关于开发使用: 直接调用EasyVar.getVarManager()
主要方法如下:
- Integer getPlayerValue(String playerName, String varName);
- Integer getGlobalValue(String varName);
- void setGlobalValue(String varName, Integer value);
- void setPlayerValue(String playerName, String varName, Integer value);
复制代码
例子:
- Integer tempInteger = EasyVar.getVarManager().getPlayerValue("abmcar","test");
复制代码
|
权限
- ev.var.show //查看变量
- ev.var.set //修改变量
- ev.script.show //查看脚本命令
- ev.script.set //修改脚本命令
复制代码
命令- 使用/ev show player <playerName>查看该玩家拥有变量,playerName为玩家名字
- 使用/ev global来查看全局变量
- 使用/ev set player <playerName> <varName> <varValue>修改玩家变量
- 使用/ev set global <varName> <varValue>修改全局变量
- 使用/ev add player <playerName> <varName> <varValue>增加玩家变量
- 使用/ev add global <varName> <varValue>增加全局变量
- 使用/ev reduce player <playerName> <varName> <varValue>减少玩家变量
- 使用/ev reduce global <varName> <varValue>减少全局变量
- 使用/ev script set <scriptName> <varType> <varName> <varValue> <isOp> 创建或设置脚本
- 例如/ev script set script1 global test 10 true 创建script1当全局变量test大于等于10时以OP执行命令
- 例如/ev script set script2 Abmcar test1 10 false 创建script2当玩家Abmcar的变量test1大于等于10时以自身权限执行命令
- 使用/ev script add <scriptName> <command>添加脚本执行命令
- 使用/ev script delete <scriptName> <command>删除脚本执行命令
- 命令中的空格请用_代替,例如/ev script delete testScript ev_show_global
- 使用/ev script show <scriptName> 查看脚本执行命令
- 使用/ev script run <scriptName> 执行脚本
复制代码
下载地址
- 链接:https://pan.baidu.com/s/17HwHImiNs407QOmgPQCYiA
- 提取码:nqtm
复制代码
图片展示
      
(运行于1.7.10thermos,api为spigot1.17)
|
更新日志
更新日志
- 1.1
- 更新配置文件
- 添加玩家自动执行脚本
- 更新自带空脚本
- 添加无提示信息的ev命令
- 添加占位符
- 修复变量储存可能重复出现的bug(也不一定)
- 2021.8.7 23点55分
- 1.2
- 修复玩家变量修改可能无效的bug
- 在更多位置增加了<player>占位符生效的位置
- 支持定义<player>类型的玩家变量,表示玩家名字
- 支持添加诸如give <player> minecraft:diamond的命令
- 2021.8.8 10点13分
- 1.2.1
- 修复玩家变量可能无法正常读入的bug
- 默认脚本执行时间更新为1s
- 2021.8.10 19点56分
- 1.2.2
- 指令输入支持PlaceholderApi
- 2021.8.20 15点55分
- 1.2.3 Fix1
- 修复读取文件是部分变量未正常清空的bug
- 2021.8.24 15点09分
复制代码
|
未来更新计划
- 支持Placeholder (并不 发现没这个需求)
- 支持AttributePlus (可能会另写一个小插件)
- 使用TaboolLib重写(不一定
本插件所用所有代码均为原创,不存在借用/抄袭等行为
|
评分查看全部评分
|