• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
[PlayerTopList] 基于统计数据的排行榜插件

原创 开源 [PlayerTopList] 基于统计数据的排行榜插件 v1.2.7

完成注册/登录后下载
版权类型
原创
插件中文名称
统计排行榜
插件英文名称
PlayerTopList
原帖地址
#
支持的核心(服务端)
  1. Paper
  2. Folia
  3. Purpur
语言支持
中文(简体)
适配版本(Java)
  1. 1.21
  2. 1.20

[PTL] 基于mc统计信息的排行榜插件



1744290827164.webp

1746581421105.webp

1746581455358.webp


服务端需求​




  • 支持paper,folia,purpur等paper系列的服务端
  • 理论支持版本为1.20.1及以上,如果遇到兼容性问题欢迎提出



插件特点​



  • 使用mc内置的统计信息,无需使用额外的数据存储​
  • 可以使用miniMessage自定义排行榜文字UI​
  • 可以使用数学公式来对最终呈现的数字结果进行修改​
  • 可以对显示结果进行格式化​
  • 可以在材料或者实体列表中使用mc的标签,快速选定材料​
  • 可以使用place holder作为排行榜变量​
  • 内置4个place holder变量,方便扩展​
  • 支持升序/降序排列,应对多种情况​
  • 支持黑名单和玩家名称过滤,方便控制上榜玩家​
  • 不联网不储存数据,不用担心sql后门()


插件命令​



  • /ptl reload 重载配置
  • /ptl show <排行榜名称> 显示指定的排行榜


插件权限​



  • playertoplist.admin 玩家能否执行插件的重载,默认为op
  • playertoplist.view 玩家能否查看排行榜,默认为true


PlaceHolder​



  • %ptl_player_rank_<排行榜名称>% 玩家在指定排行榜的排名
  • %ptl_player_count_<排行榜名称>% 玩家在指定排行榜的数值
  • %ptl_player_rank_sum_<排行榜名称1>_<排行榜名称2>_...% 玩家在所有指定的排行榜排名之和
  • %ptl_player_count_sum_<排行榜名称1>_<排行榜名称2>_...% 玩家在所有指定的排行榜数值之和


默认配置​


YAML:
# 每一页上应该有多少玩家
page-size: 10

# 排行榜更新间隔(单位为秒)(不小于30)
update-interval: 60

# 黑名单玩家
blacklist:
  - "whhhh"

# 排除玩家名正则表达式
exclude-regex: "-"

# 更新不在线玩家的概率
# 取值: 0-1 (0禁止不在线玩家更新, 1始终更新所有玩家)
# 值越高则不在线玩家更新概率越大, 占用更高
# 值越小则不在线玩家更新概率越小, 占用更小
update-offline-chance: 0.5

# 开启正版/离线UUID过滤
# 开启后正版服将不会显示离线登陆的玩家
# 离线服将不会显示正版登录的玩家
# 如果你的服务器遇到排行榜玩家重复的问题(开关过正版验证, 或者vc等代理配置问题)
# 开启这个选项可能修复
uuid-filter: false

# 自定义UI部分
ui:
  header: "<bold>================ <hover:show_text:'<yellow>更新时间: <#FFA500>{updateTime}</#FFA500></yellow>'>{listName} ================</bold>"
  footer: "<aqua>{prevButton}当前: (<white>{currentIndex}</white>/<white>{totalIndex}</white>){nextButton}</aqua>"
  prev-button: "<hover:show_text:'上一页'><dark_aqua> <- </dark_aqua></hover>"
  next-button: "<hover:show_text:'下一页'><dark_aqua> -> </dark_aqua></hover>"
  item: "<gray>⬡</gray> <white>{num}. <green>{playerName}</green> <grey>-</grey> <dark_green>{count}</dark_green></white>"
  current-item: "<light_purple>⬡</light_purple> <yellow>{num}. <green>{playerName}</green> <grey>-</grey> <dark_green>{count}</dark_green></yellow>"

# 排行榜部分
lists:
  #示例:
  #这个是排行榜名称
  挖掘总榜:
    # (可选) 这个是排行榜显示颜色
    color: "#FFA500"

    # (必填) 这个是统计数据类型, 可用值见附录1
    # 也可以使用place holder, 具体使用方法见下方跑图榜
    type: MINE_BLOCK

    # (选择性必填) 当类型为Statistic.Type.BLOCK或者Statistic.Type.ITEM时必填
    # 除了材料名称外可用值: all, items, blocks, solid
    # 支持使用标签, 见附录4
    # 其他可用值见附录2
    # 注意!!!该项为列表类型
    material: [solid]

    # (选择性必填) 当类型为Statistic.Type.ENTITY时必填
    # 除了实体名称外可用值: all, alive
    # 支持使用标签, 见附录4
    # 其他可用值见附录3
    # 注意!!!该项为列表类型
    entity: [all]

    # (选填) 是否隐藏
    hidden: false

    # (选填) 数值表达式:
    # 用于修正排行榜数值
    expression: "count / 64"

    # (选填) 数字格式:
    # java格式化字符串
    formatter: "%.1f 组"

    # (选填) 排序:
    # false: 从大到小
    # true: 从小到大
    reversed: false

  总榜:
    color: "#FB156B"
    type: "%ptl_player_rank_sum_挖掘总榜_放置榜_挖矿榜_跑图榜_击杀总榜_击杀玩家榜_死亡榜_钓鱼榜_附魔榜_合成榜_交易榜_在线时间%"
    reversed: true
    formatter: "%.0f 排名和"

  放置榜:
    color: "#A52A2A"
    type: USE_ITEM
    material: [ blocks ]
    expression: "count / 64"
    formatter: "%.1f 组"

  挖矿榜:
    color: "#FFD700"
    type: MINE_BLOCK
    material: [ coal_ores, copper_ores, diamond_ores, emerald_ores, gold_ores, lapis_ores, redstone_ores, NETHER_QUARTZ_ORE, ANCIENT_DEBRIS ]
    expression: "count / 64"
    formatter: "%.1f 组"

  跑图榜:
    color: "#00FF00"
    type: "%ptl_player_count_sum_走路榜_跑步榜_飞行榜%"
    expression: "count / 100 / 1000"
    formatter: "%.1f 公里"

  击杀总榜:
    color: "#FF00FF"
    type: MOB_KILLS

  击杀玩家榜:
    color: "#FF0022"
    type: PLAYER_KILLS

  死亡榜:
    color: "#8B0000"
    type: DEATHS

  钓鱼榜:
    color: "#0000FF"
    type: FISH_CAUGHT

  附魔榜:
    color: "#ADD8E6"
    type: ITEM_ENCHANTED

  合成榜:
    color: "#FFA500"
    type: CRAFT_ITEM
    material: [ all ]
    expression: "count / 64"
    formatter: "%.1f 组"

  交易榜:
    color: "#31FFB1"
    type: TRADED_WITH_VILLAGER

  在线时间:
    color: "#FF00FF"
    type: PLAY_ONE_MINUTE
    expression: "count / 20 / 60 / 60"
    formatter: "%.1f 小时"

  # 下面这些是作为跑图榜的计算来源
  走路榜:
    hidden: true
    type: WALK_ONE_CM

  跑步榜:
    hidden: true
    type: SPRINT_ONE_CM

  飞行榜:
    hidden: true
    type: AVIATE_ONE_CM

# 附录
# 1.可用统计类型见: https://bukkit.windit.net/javadoc/org/bukkit/Statistic.html
# 2.可用材料类型见: https://bukkit.windit.net/javadoc/org/bukkit/Material.html
# 3.可用实体类型见: https://bukkit.windit.net/javadoc/org/bukkit/entity/EntityType.html
# 4.可用标签及对应材料见: https://zh.minecraft.wiki/w/%E6%A0%87%E7%AD%BE?variant=zh-cn#%E6%A0%87%E7%AD%BE%E5%88%97%E8%A1%A8
作者
whhhh2023
下载
266
查看
2,111
首次发布
最后更新

评分

0.00 星 0 次评分

最新更新

  1. v1.2.7

    降低api版本,兼容1.20.1+
  2. v1.2.6

    添加正版/离线UUID过滤功能,应对排行榜重复情况
  3. v1.2.5

    添加对不在线玩家的可选优化, 提升更新速度
后退
顶部 底部