Skip to content

PVip是PCsvip的全新续作,作为前置插件的它拥有PCsvip全部功能,且提供多种兼容接口方便第三方插件调用。

前置组件

必选

LL2

LL3

可选

LL2上使用PAPI的所需组件

LL3上使用PAPI的所需组件

安装

LL2

  • 首次安装,将文件PVip.jsPVip.llse.js解压到此路径下:BDS/plugins/
  • 更新直接替换原来的文件,若旧插件的名称与新插件的名称不一致,请删除旧插件再解压

LL3

  • LL3 将文件夹PVip解压到此路径下:BDS/plugins/
  • 更新插件请将原来的文件夹删除

注册指令说明

/vip - 会员中心 /myvip - 我的会员 游戏内执行
/vipshop - 会员商城 游戏内执行
/vipset - 会员管理 游戏内执行
/vipmod - VIP模块中心 游戏内执行
/vip add (玩家ID/QQ号) [天数] - 控制台添加VIP 控制台操作,"[]"内为选填
/vip del (玩家ID/QQ号) 控制台删除VIP 控制台操作,当玩家是VIP时输入会关掉VIP,当玩家不是VIP时会删除VIP数据 /vip addint (玩家ID/QQ号) (经验) 控制台增加玩家会员积分,所有参数为必填
/vip reduceint (玩家ID/QQ号) (经验) 控制台减少玩家会员积分,所有参数为必填
/vip addtime (玩家ID/QQ号) (时长) 控制台增加玩家时长 控制台操作,所有参数为必填
/vip reducetime (玩家ID/QQ号) (时长) 控制台减少玩家时长 控制台操作,所有参数为必填,当减少时长大于剩余时长会自动取消玩家的VIP
/vip query (玩家ID/QQ号) [输出类型] 控制台查询玩家VIP数据 控制台操作,所有参数为必填

指令示范

指令模板模板说明指令模板模板说明
vip add 114514将114514绑定的玩家添加为会员,时间为默认vip add Steve 6将Steve玩家添加为会员,时间为6天
vip del 114514移除114514绑定的玩家的会员vip del Steve移除Steve玩家的会员
vip addint 114514 100给114514绑定的玩家增加100会员积分vip addint Steve 100给Steve玩家增加100会员积分
vip reduceint 114514 100减少114514绑定的玩家100会员积分vip reduceint Steve 100减少Steve玩家100会员积分
vip addtime 114514 10给114514绑定的玩家增加10天会员时间vip addtime Steve 100给Steve玩家增加10天会员时间
vip reducetime 114514 100减少114514绑定的玩家10天会员时间vip reducetime Steve 100减少Steve玩家10天会员时间
vip query 114514查询114514绑定的玩家的会员信息(默认为英文输出格式)vip query Steve chn查询Steve玩家的会员信息(输出格式为中文)

配置文件说明

更改配置文件请注意 JSON 文件格式,不推荐使用记事本修改配置文件

config文件

  • 插件基础配置文件
  • 路径: BDS/plugins/Planet/PVip/config.json

最新版本不能使用旧版本的配置文件、PVip正确安装会自动更正不正确的配置项,无需手动修改

js
{
  "version": "v3.0.0", //插件版本
  "money": 0, //经济模式(0为计分板,1为LLMoney)
  "score": "money",
  "buy_switch": 1, //购买/续费VIP开关(0为关闭,1为开启)
  "title": [ //注册PAPI的变量返回值
    "至尊VIP", //玩家是VIP时的返回文本
    "非VIP" //玩家不是VIP时的返回完本
  ],
  "default_time": 7, //VIP默认时长(管理员手动添加的时长(单位:天))
  "default_lizi": "minecraft:arrow_spell_emitter", //vip默认粒子(根据MC原版的type来填写,可在PLib的lizi配置文件中复制type的配置项粘贴到这里)
  "level": { // VIP等级
    "up": 10, // 每日首次登陆服务器所获得的当日经验
    "down": 20, //当玩家失去VIP后起,每日首次登陆服务器将会扣除所积累的经验
    // 每级经验与等级数量 数组内的数量表示了VIP最高等级,例如下面有5给数值表示了VIP等级最高为5级
    // 每个数值表示升级所需的经验,例如从1级升到2级需要300经验、2级升3级需要600经验以此类推
    // 1级必须为0,否则会报错
    "exp": [
      0,
      100,
      300,
      600,
      1000
    ]
  },
  "daily_points": 10, //每日会员玩家进入服务器增长的积分
  "custom_title_buff": [//会员玩家自定义称号允许使用的BUFF(后续可在会员配置中修改)
        "absorption",
        "conduit_power",
        "haste"
    ]
}

storedata文件

  • 会员商店
  • 路径: BDS/plugins/Planet/PVip/data/storedata.json
js
{
  "vip": [ // VIP商品
    {
      "name": "1天", // 商品名称
      "money": 195, // 商品价格
      "time": 1 // VIP时长
    }
  ],
  "lizi": [ // 粒子商品
    {
      "type": "minecraft:heart_particle", // 粒子type参数
      "money": 195 // 粒子价格
      "time": 7 // 粒子时长
    }
  ]
}

vip文件

  • 会员玩家数据
  • 路径: BDS/plugins/Planet/PVip/data/vip.json
js
{
  "SUNSServer": { // 玩家名称
    "vip": false, // 玩家的VIP身份
    "lizi_switch": false, //玩家粒子开关
    "lizi_type": "minecraft:heart_particle", // 当前使用的粒子type参数
    "level": 2, // 玩家VIP等级
    "exp": "29/300", // 玩家VIP等级经验(当前/下次升级所需)
    "integral": 1800, // VIP积分(目前是购买VIP获取)
    "title": "至尊VIP", // VIP称号
    "time": null, // VIP总时长(null为玩家不是VIP,0为永久,大于0为实际天数)
    "get_time": "---", // 玩家获取VIP的最初时间("---"为玩家不是VIP或永久)
    "join_time": "2023-3-21", // 玩家上次加入的日期(以每日0点为重置点,用于增加VIP等级经验)
    "black_list": false // 是否存在VIP黑名单中
  }
  //注:玩家VIP倒计时计算方式是("当前时间与玩家上次获取VIP时间的时间差"-"玩家VIP拥有的总时长")
}

lizi文件

  • 会员玩家购买的粒子
  • 路径: BDS/plugins/Planet/PVip/data/lizi.json
js
{
"SUNSServer": [
        {
            "type": "minecraft:heart_particle", // 粒子的标准名
            "time": 172, // 粒子有效时间
            "get_time": "2023-05-08 23:43:04"  // 首次获取粒子的时间
        },
        {
            "type": "minecraft:arrow_spell_emitter",
            "time": 18,
            "get_time": "2023-07-05 20:59:23"
        }
    ]
}

模块化

PVip模块化,是直接将PVip的模块插件放置在指定文件夹中,插件加载时会自动导入并加载模块中main函数的所有逻辑并,通过自动运行和被动运行的方式达到模块设计的目的,目前可支持在PVip的多个主要表单中注册用于启用或打开某个模块的按钮,具体请下载示例模块查看

  • 注意:模块是JavaScript语言,可使用LiteLoaderBDS-LLSELeviLaminaLegacyScriptEngine所有的API,理论上它也可以是一个插件加载器(但不建议在PVip的模块中安装LiteLoaderBDS-LLSELegacyScriptEngine的插件,会导致部分功能无法使用,例如PAPI变量和接口)

  • 路径: BDS/plugins/Planet/PVip/module/ 下载非表单示例模块
    下载表单示例模块

  • 模块类型说明

    类型含义备注
    auxiliary自动运行(辅助模块)可以在插件加载时自动运行的模块,在此类型后面加上特殊类型参数(如:auxiliary_jl即可变更进服与离开服务器的文本)
    main_form注册主表单按钮在插件的指令vip的表单中注册一个用于打开模块的按钮,可通过该指令的表单进入模块的表单或调用模块的逻辑
    vip_form注册我的VIP表单按钮在插件的指令myvip的表单中注册一个用于打开模块的按钮,可通过该指令的表单进入模块的表单或调用模块的逻辑
    store_form注册VIP商城按钮在插件的指令vipshop的表单中注册一个用于打开模块的按钮,可通过该指令的表单进入模块的表单或调用模块的逻辑
    set_form注册我的VIP表单按钮在插件的指令vipset的表单中注册一个用于打开模块的按钮,可通过该指令的表单进入模块的表单或调用模块的逻辑

API

PVip提供了11个接口,PCsvip旧接口请查PCsvip文档
若使用的是PCsvip接口推荐安装PVip_old

获取PVip插件版本

ll.import("PVip", "version")() 1

  • 返回值: PVip插件版本
  • 返回值类型: String
  • 该接口仅在PVip发布后开放,若使用之前的旧版本请使用ll.hasExported("PVip","version")检查函数是否被导出,否则会报错

获取指定玩家VIP数据

ll.import("PVip", "get_vip")(.[player])

  • 参数

    • player: PlayerStringnull (可选参数)玩家对象 或 玩家名称
  • 返回值: 玩家VIP数据 或 VIP所有数据

  • 返回值类型: Array<VIP,VIP,...>Object

  • 若获取指定玩家的VIP返回Null则表示没有数据

  • VIP数据对象属性

    属性含义类型示范
    vipVIP身份Booleantrue
    lizi_switch随身粒子开关Booleantrue
    lizi_type当前使用的粒子type参数String"minecraft:heart_particle"
    levelVIP等级Number2
    expVIP经验String"29/300"
    integralVIP积分Number1800
    titleVIP称号String"至尊VIP"
    timeVIP时长Numbernull1null
    get_time获取VIP时间String"2024-05-18 15:53:08"或"---"
    join_time进服日期String"2024-3-17"
    black_list是否存在于
    VIP黑名单中
    Booleanfalse

获取指定玩家VIP身份

ll.import("PVip", "get_status")(player)

  • 参数
    • player: PlayerString 玩家对象 或 玩家名称
  • 返回值: 玩家VIP身份 或 VIP所有数据
  • 返回值类型: Boolean

获取VIP玩家剩余时长

ll.import("PVip", "vip_time_left")(player)

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • 返回值: 剩余时长(单位: 天)
  • 返回值类型: Number
  • 返回值为0时表示无数据、时长为永久、不是会员

添加一个VIP

ll.import("PVip", "add_vip")(player, .[time, integral])

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • time: Number (可选参数)VIP时长
  • integral: Number (可选参数)VIP积分
  • 返回值: 是否添加成功
  • 返回值类型: Boolean

删除一个VIP

ll.import("PVip", "del_vip")(player)

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • 返回值: 是否删除成功
  • 返回值类型: Boolean
  • 执行的玩家是VIP会关闭VIP
  • 执行的玩家不是VIP会删除VIP数据

添加指定玩家VIP时长

ll.import("PVip", "add_time")(player, time)

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • time: Number VIP时长
  • 返回值: 是否添加成功
  • 返回值类型: Boolean
  • 被执行时长的玩家必须是获得过VIP的玩家
  • 执行后玩家当前不是VIP身份会自动开通VIP身份,类似ll.import("PVip", "add_vip")(player)API

减少指定玩家VIP时长

ll.import("PVip", "reduce_time")(player, time)

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • time: Number VIP时长
  • 返回值: 是否减少成功
  • 返回值类型: Boolean
  • 被执行的玩家必须是获得过VIP的玩家
  • 执行后玩家当前剩余时长小于被减少的时长会自动关闭VIP,类似执行一次ll.import("PVip", "del_vip")(player)

增加指定玩家增加VIP经验

ll.import("PVip", "add_exp")(player, exp)

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • exp: Number VIP经验
  • 返回值: 是否添加成功
  • 返回值类型: Boolean
  • 被执行的玩家必须是获得过VIP的玩家

减少指定玩家VIP经验

ll.import("PVip", "reduce_exp")(player, exp)

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • exp: Number VIP经验
  • 返回值: 是否减少成功
  • 返回值类型: Boolean
  • 被执行的玩家必须是获得过VIP的玩家

增加指定玩家VIP积分

ll.import("PVip", "add_integral")(player, integral)

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • integral: Number VIP积分
  • 返回值: 是否添加成功
  • 返回值类型: Boolean
  • 被执行的玩家必须是获得过VIP的玩家

减少指定玩家VIP积分

ll.import("PVip", "reduce_integral")(player, integral)

  • 参数
  • player: PlayerString 玩家对象 或 玩家名称
  • integral: Number VIP积分
  • 返回值: 是否减少成功
  • 返回值类型: Boolean
  • 被执行的玩家必须是获得过VIP的玩家

Planet工作室