午夜_Midnight
午夜_Midnight
Published on 2024-11-10 / 36 Visits
1
0

如何在MCJava插件端检测并显示MC客户端类型

此教程主要面向互通服的客户端类型检测,包括检测Java版客户端及各种设备上的基岩版,如Android,Windows10/11,iOS版等。

前置需求

  • 你有过开插件端并调试过插件的经验

  • 一个Java插件端(最好是Paper或Paper的分支,不推荐使用Spigot)

  • 安装插件:Geyser,Floodgate,PlaceholderAPI

  • 可选插件(大概率需要):Viaversion,Viabackwards

  • 能够显示PHAPI变量的插件,如TAB,PowerBoard等

步骤

  1. 装好以上插件,启动一次服务器,然后关闭服务器。

  2. 前往下方网站下载papi的floodgate扩展:

    https://api.extendedclip.com/expansions/floodgate/
  3. 下载完成后转到你服务器的 /plugins/PlaceholderAPI/expansions/ 文件夹,将下载到的jar文件放进此文件夹

  4. 启动服务器

  5. (可选)编辑papi的config.yml文件,以更改显示的效果

  6. 编辑你的显示papi变量的插件,此处以TAB插件的计分板为例:

显示效果如下图所示:

PAPI变量及配置文件

PAPI变量

%floodgate_device%              #玩家的客户端设备类型,参照下方的配置显示
%floodgate_locale%              #玩家的客户端语言,使用小写英文显示,如zh_cn(若客户端为Java版则显示为N/A)
%floodgate_locale_upper%        #玩家的客户端语言,使用大写英文显示,如ZH_CN(若客户端为Java版则显示为N/A)
%floodgate_version%             #玩家的基岩版客户端版本(若客户端为Java版则显示为N/A)
%floodgate_username%            #玩家的基岩版用户名(若客户端为Java版则显示为N/A)
%floodgate_xuid%                #玩家的Xuid(仅当客户端为基岩版时生效。否则显示N/A)
%floodgate_isbedrock%           #玩家是否为基岩版

papi的config.yml配置

#上方内容省略
expansions: #扩展配置
  floodgate: #floodgate扩展
    device:  #设备类型的显示名
      osx: '&fOS&bX'  
      ps4: '&3PS4/PS5'
      uwp: '&bWin10&f/&911'  #例如,使用Windows版MCBE客户端在最终输出显示为Win10/11
      ios: '&di&fOS'
      win32: '&9Win&732'
      unknown: '&4Unknown'
      gearvr: '&7Gear&fVR'
      nx: '&cSwitch'
      google: '&aAndroid'
      dedicated: '&5DED'
      generic: '&7Bedrock'
      java: '&6Java'
      amazon: '&eAmazon'
      xbox: '&2Xbox'
      hololens: '&7Holo&fLens'
    is-bedrock:    #客户端是否为基岩版
      none: 'false'
      found: 'true'
    xbox-xuid:     #玩家的xuid
      none: '&6N/A'
      found: '&6%xuid%'
    xbox-username: #玩家的基岩版用户名
      found: '&6%username%'
      none: '&6N/A'
    locale:       #玩家语言
      none: '&6N/A'
      found: '&6%locale%'
    version:      #玩家客户端版本
      none: '&6N/A'
      found: '&6%version%'


Comment