帖子

Memorial Edition

查看: 854|回复: 2

[原创插件] [原创免费|信息|娱乐] XHMVote2,一个简单的原创投票插件

[复制链接]

Lv.2 采石匠

人气
2 点
金粒
83 粒
宝石
0 颗
爱心
0 颗
钻石
7 颗
贡献
0 点
发表于 2024-8-22 13:28:23 | 显示全部楼层 |阅读模式
LOGO
XHMVote2 XHMVote2
  • 概要
  • 下载链接
  • 授权信息

适用服务端:Spigot 

插件类型: 娱乐 信息 

语言支持: 简体中文 

适用版本:

前置插件:

简介: 一个简单的投票插件(本人是代码小白,不喜勿喷)


马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

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一起打包进去),将插件放到服务端,测试效果

评分

参与人数 1人气 +2 金粒 +33 收起 理由
MRTangwin8 + 2 + 33 MCBBS有你更精彩~

查看全部评分

Lv.2 采石匠

人气
0 点
金粒
191 粒
宝石
1 颗
爱心
0 颗
钻石
17 颗
贡献
0 点

Java正版勋章Windows 10正版勋章

发表于 2024-8-25 21:34:02 | 显示全部楼层
去哪投票

点评

/vote 投票类型 参数 可以生成一个投票,投票会标注ID /vote join 投票ID可以参与投票(有tab补全)  详情 回复 发表于 2024-8-26 13:29
回复

使用道具 举报

Lv.2 采石匠

人气
2 点
金粒
83 粒
宝石
0 颗
爱心
0 颗
钻石
7 颗
贡献
0 点
 楼主| 发表于 2024-8-26 13:29:57 | 显示全部楼层

/vote 投票类型 参数 可以生成一个投票,投票会标注ID
/vote join 投票ID可以参与投票(有tab补全)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

最短的捷径就是绕远路。

Archiver|小黑屋| MCBBS纪念版 ( 新ICP备2024014954号|兵公网安备66010002000149号 )|隐私政策| 手机版

GMT+8, 2024-12-23 15:30 , Processed in 0.094676 second(s), 18 queries , Redis On.

"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

© 2010-2024 MCBBS纪念版 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载

返回顶部