马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
简介
XHMVote2(以下简称xv2)为服务器提供了一套简单的投票系统
玩家可以通过投票来进行很多事
命令
/vote <join|stop|投票类型> [参数1] [参数2] [参数3]
/vote freeze [玩家] 冻结自己/玩家
权限
权限名 |
作用 |
默认给予 |
xhmvote2.vote.* |
投票插件的所有权限 |
管理员 |
xhmvote2.vote.create |
创建投票 |
管理员 |
xhmvote2.vote.join |
参与投票 |
所有人 |
xhmvote2.vote.stop |
停止投票 |
管理员 |
xhmvote2.vote.bypass |
投票豁免 |
管理员 |
xhmvote2.freeze |
冻结玩家 |
管理员 |
配置文件
# 插件前缀(但是没有任何用)
prefix: '&8[&aXHMVote2&8]'
# 边框
side: '&9+-----------------------------+'
# 参与投票提示
help: '&a输入/vote join %uuid%参与投票'
# 投票设置
# ratio:当服务器内参与玩家到达多少比例后执行该投票
# msg:投票执行时的信息
# 可用占位符(暂不支持PlaceHolderAPI)
# %voter%:投票发起者
# %target%:目标玩家名
# %max_ratio%:当前比率
# %side%:上方配置边框
# %help%:上方配置帮助信息
# %uuid%:投票id
# %reason%:投票理由
vote-setting:
kick:
ratio: 0.6
msg:
- '&4%target% &c被群众的怒火淹没!'
kill:
ratio: 0.5
msg:
- '&4%target% &4遭受天谴!'
freeze:
ratio: 0.4
msg:
- '&4%target% &b被冰封!'
# 其他
# 投票发起时的信息,占位符通用
vote-msg:
kick:
- '%side%'
- '&a%voter% &d发起了一轮对 &c%target% &d的投票'
- '&b投票类型:%type%'
- '&d投票理由:%reason%'
- '&6裁决比例:%max_ratio%'
- '%help%'
- '%side%'
kill:
- '%side%'
- '&a%voter% &d发起了一轮对 &c%target% &d的投票'
- '&b投票类型:%type%'
- '&d投票理由:%reason%'
- '&6裁决比例:%max_ratio%'
- '%help%'
- '%side%'
freeze:
- '%side%'
- '&a%voter% &d发起了一轮对 &c%target% &d的投票'
- '&b投票类型:%type%'
- '&d投票理由:%reason%'
- '&6裁决比例:%max_ratio%'
- '%help%'
- '%side%'
# 其他
如何自定义一个投票
-
首先,在IDEA创建一个spigot插件
-
其次,打开plugin.yml,加上softdepend: [XHMVote2]
-
将本插件下载并添加到您项目的库
-
新建一个类,并继承Vote,以下为示例:
-
//别忘了这个注解,type是投票类型,随便填,会出现在/vote后面的tab补全中
@XHMVoteType(type = "tnt")
public class TNTVote extends Vote {
//默认构造器,非特殊情况不要动
public TNTVote(Player voter, Player target) {
super(voter, target);
}
//投票发起时执行
@Override
//别忘了这个注解
@VoteExecutor
//args:玩家输入的参数
public void execute(String... args) {
//设置投票最大比率
setMaxRatio(0.5);
//投票满足后发送的消息,字符串列表
setJudgeInfo(Arrays.asList("1", "2", "3"));
//投票发起时发送的消息,字符串列表
setVoteInfo(Arrays.asList("4", "5", "6"));
//设置理由,可选
setReason(String.join(",", args));
//替换所有占位符,别忘了这个
parsePlaceHolders();
//打印投票发起时的信息
XHMVote2.instance.print(getVoteInfo());
}
//当投票满足条件后执行
@Override
public void judge() {
XHMVote2.instance.print(getJudgeInfo());
getTarget().getWorld().spawnEntity(getTarget().getLocation(), EntityType.PRIMED_TNT);
stop();
}
}
-
接着,打开插件主类,在onEnable方法中添加如下代码:
-
@Override
public void onEnable() {
//获取插件示实例
XHMVote2 xhmVote2 = (XHMVote2) (getServer().getPluginManager().getPlugin("XHMVote2"));
//判断插件是否加载
if (xhmVote2 != null) {
//加载您的VoteType
getLogger().info("§bXHMVote2 found!");
xhmVote2.registerVoteType(TNTVote.class);
getLogger().info("§aLoading TNTVote successfully!");
} else {
//可选,输出插件未找到的信息
getLogger().info("§cXHMVote2 not found");
}
// Plugin startup logic
}
-
接着,将插件打包(注意不要把XHMVote2一起打包进去),将插件放到服务端,测试效果
|