McLists一周年快乐
服务器已经添加了详细介绍信息板块
服主可以在管理后台来提交自己服务器介绍信息。
服务器介绍信息提交后,管理人员会进行审核
审核通过后会在服务器详细页面进行显示
提交服务器介绍信息会让新玩家更好的了解你的服务器哦~
添加图片信息,也会让百度等搜索引擎更好的收录您的服务器哦~
管理平台地址:传送门
CraftPresence

CraftPresence - CraftPresence 状态展示

完全自定义你在 Discord 中玩游戏时让别人看到的样子!
fabric / forge / modloader / neoforge 作者 CDAGaming 支持版本 a1.0.17_04 - 26.1
下载量
9,186,573
关注数
845
数据来源
Modrinth
模组详细介绍

CraftPresence

通过 Discord 的 Rich Presence API 和 DiscordIPC API,完全自定义其他人看到你游玩 Minecraft 的方式

作者:jagrosh

License: MIT
Crowdin
Codacy Badge
Pipeline Status
CurseForge-Downloads
CurseForge-Availability
Modrinth-Downloads
Modrinth-Availability

一般说明

  • 从 v2.5.0 开始,UniLib 现在是必需依赖
  • UniLib 是我创建的一个新库模组,用于将常见 API 功能抽象出来,以便更通用的使用场景以及未来项目使用
  • 该模组可在这里下载
  • 如果未找到 UniLib 或使用了不兼容版本,此模组将会崩溃
  • 此模组被标识为仅客户端模组
  • 这意味着它不会在服务器端运行
  • Fabric 和 Quilt 模组加载器会直接忽略该

模组,而其他模组加载器则可能会崩溃。

  • 针对 Minecraft 1.14.x 及以上版本的某些模组版本需要

Fabric API

Fabric 模组加载器

  • 针对 Minecraft 1.13.x 的某些模组版本需要

Rift API

Rift 模组加载器

  • 针对 Minecraft 1.1.0 及以下版本的某些模组版本

需要 Risugami's ModLoader

功能特性

除了能够将你的 discord 状态从“Playing Minecraft”进行修改之外,

这个模组还提供了大量自定义选项,用于完整指定其他人如何看到你在玩游戏。

从显示你当前所在的生物群系、所处维度,到你所在的服务器等等。

自定义的可能性几乎是无限的,真正的限制只有你对显示内容的创意程度。

启动器与整合包集成支持

CraftPresence 会检测你的启动目录中是否包含:

  • 一个 ATLauncher 实例(instance.json)
  • 一个有效的 Twitch/Overwolf/Curse/GDLauncher 清单(manifest.json, minecraftinstance.json)
  • 一个 MCUpdater 实例(instance.json)
  • 一个 Modrinth 实例(profile.json)
  • 一个 MultiMC 实例(instance.cfg)
  • 一个 Technic installedPacks 文件(installedPacks)

如果使用这些启动器中的任意一种,请注意以下内容:

  • 在 v1.6.0 之前,它会将整合包名称放入你的显示内容中,并显示其图标(当不在

服务器中时)

  • 从 v1.6.0 到 v2.0.0,它会改为将整合包名称解析到 &PACK& 占位符中,你可以配置该占位符

以便

在 RPC 中使用

  • 在 v2.0 中,整合包信息改为解析到 pack.namepack.icon 占位符中,你可以配置它们

以便

在 RPC 中使用

例如,模组会这样将整合包名称转换为 iconKey:

示例:All the Mods 7 会被解析为 allthemods7

注意:MultiMC 原生具有一个 Icon Key 属性,会优先使用它,而不是从整合包显示名称进行转换

命令

CraftPresence 当前提供以下命令:

请注意以下事项:

  • 命令必须以前缀 /craftpresence/cp 开头
  • 在 v1.5.0 及以上版本中,这些命令只能通过配置界面中的 Commands Gui 使用

  • /cp compile "[expr]" - 通过 Starscript 测试一个占位符表达式的输出
  • /cp search (type:typeName, [searchTerm], all) - 搜索可用于 Rich Presence 的有效占位符
  • /cp reload - 重新加载模组数据
  • /cp request - 查看加入请求信息
  • /cp export - 查看模组数据的导出命令
  • /cp view - 帮助命令,用于显示可用于查看和控制多种显示数据的命令
  • /cp view placeholders - 显示所有可用于 RPC 的占位符
  • /cp view currentData - 以文本形式显示你当前的 RPC 数据
  • /cp view assets (custom | all) - 显示所有可供你使用的资源图标键
  • /cp view dimensions - 显示所有可用的维度名称,需要启用 Show Current Dimension
  • /cp view biomes - 显示所有可用的生物群系名称,需要启用 Show Current Biome
  • /cp view servers - 显示所有可用的服务器地址,需要启用 Show Game State
  • /cp view screens - 如果启用了 Per-Gui,则显示所有 Gui 名称
  • /cp view items - 如果启用了 Per-Item,则显示所有物品名称
  • /cp view entities - 如果启用了 Per-Entity,则显示所有实体名称
  • /cp reboot - 重启 RPC
  • /cp shutdown - 关闭 RPC(可通过 /cp reboot 再次开启)
  • /cp (help | ?) - 帮助命令,显示上述命令及其说明

按键绑定

CraftPresence 当前包含以下按键绑定:

说明:

  • 在 v1.5.5 到 v1.8.0 期间,按键绑定现在需要在 Config Gui 的辅助功能设置中自定义,而不是在

常规控制菜单中

  • 在 v1.8.0 及以上版本中,按键绑定现在既可以在 Config Gui 中的专用菜单中自定义,也可以在适用版本的

常规控制菜单中自定义


  • Open Config Gui - 用于打开 CraftPresence 配置界面的按键绑定(默认:GRAVE/TILDE 键)

关于占位符与函数

在某些配置区域中,CraftPresence 提供了一些占位符和函数来让操作更轻松:

请注意以下事项:

  • 在 v2.0.0 中,占位符已被重写,以兼容

Starscript

  • 本节较旧的列表可以在

这里)查看

  • 所有占位符、函数和代码表达式都必须使用花括号包围(示例:{foo.bar}
  • 如果你需要在函数参数中将占位符与其他数据结合使用,请使用 getResult

函数

  • 其他函数和标准变量可在

StandardLib中找到


占位符列表

以下占位符可在 CraftPresence 的任意位置使用:

  • 通用占位符:
  • general.brand - Minecraft 品牌标签
  • general.icon - 默认显示图标
  • general.mods - 你当前 mods 文件夹中的模组数量
  • general.title - Minecraft 标题标签
  • general.version - Minecraft 版本标签
  • general.protocol - Minecraft 版本协议标签
  • 菜单事件占位符(加载界面和主菜单):
  • menu.message - 主菜单显示数据(适用时)
  • menu.icon - 主菜单显示图标(适用时)
  • 整合包占位符:
  • pack.name - 当前检测到的整合包名称
  • pack.icon - 当前检测到的整合包图标
  • pack.type - 当前检测到的整合包类型
  • 玩家占位符:
  • player.name - 你的用户名
  • player.uuid.short - 你的 UUID(简短格式)
  • player.uuid.full - 你的 UUID(完整格式,如果是有效 UUID)
  • player.icon - 你的玩家头像图标(适用时)
  • player.position.x - 你当前游戏内的 X 坐标
  • player.position.y - 你当前游戏内的 Y 坐标
  • player.position.z - 你当前游戏内的 Z 坐标
  • player.health.current - 你当前游戏内的生命值
  • player.health.max - 你当前游戏内的最大生命值
  • player.mode - 你当前的游戏模式
  • Gui 占位符:
  • screen.message - 当前 Gui 界面的显示数据(适用时)
  • screen.name - 当前 Gui 界面名称
  • screen.icon - 当前 Gui 界面图标
  • screen.default.icon - 默认 Gui 界面图标
  • 生物群系占位符:
  • biome.message - 当前生物群系的显示数据(在游戏内时)
  • biome.name - 当前生物群系名称
  • biome.identifier - 当前生物群系标识符
  • biome.icon - 当前生物群系图标
  • biome.default.icon - 默认生物群系图标
  • 维度占位符:
  • dimension.message - 当前维度的显示数据(在游戏内时)
  • dimension.name - 当前维度名称
  • dimension.identifier - 当前维度标识符
  • dimension.icon - 当前维度图标
  • dimension.default.icon - 默认维度图标
  • 实体占位符:
  • entity.default.icon - 默认实体图标
  • entity.target.message - 当前所瞄准实体的显示数据(适用时)
  • entity.target.name - 当前所瞄准实体的名称
  • entity.target.icon - 当前所瞄准实体的图标
  • entity.riding.message - 当前所骑乘实体的显示数据(适用时)
  • entity.riding.name - 当前所骑乘实体的名称
  • entity.riding.icon - 当前所骑乘实体的图标
  • 世界占位符:
  • world.difficulty - 当前世界难度
  • world.weather.name - 当前世界天气名称
  • world.name - 当前世界名称
  • world.type - 当前世界类型
  • world.time.format_24 - 当前世界的游戏内时间(24 小时制)
  • world.time.format_12 - 当前世界的游戏内时间(12 小时制)
  • world.time.day - 当前世界的游戏内天数
  • 服务器占位符:
  • server.message - 当前服务器的显示数据(在游戏内时)
  • server.icon - 当前服务器图标
  • server.default.icon - 默认服务器图标
  • server.players.current - 服务器当前玩家数量
  • server.players.max - 服务器最大玩家数量
  • server.address.full - (MP) 当前服务器原始地址
  • server.address.short - (MP) 当前服务器格式化地址
  • server.name - (MP) 当前服务器名称
  • server.motd.raw - (MP) 当前服务器原始 motd
  • server.minigame - (Realm) 当前领域小游戏名称
  • server.type - (Realm) 当前领域世界类型
  • 物品占位符:
  • item.message.default - 默认物品显示数据(适用时)
  • item.message.holding - 手持物品显示数据(适用时)
  • item.message.equipped - 已装备物品显示数据(适用时)
  • item.[slotId].name - 当前 slotId 物品名称
  • item.[slotId].message - 当前 slotId 物品消息
  • 集成 - Replay Mod:
  • replaymod.time.current - 在 Video Renderer 中时,获取 renderTimeTaken 字段
  • replaymod.time.remaining - 在 Video Renderer 中时,获取 renderTimeLeft 字段
  • 额外占位符(高级用法):
  • _general.instance - Minecraft 实例
  • _general.player - Minecraft 玩家实例
  • _general.world - Minecraft 世界实例
  • _config.instance - 模组配置实例
  • _[moduleName].instance - CraftPresence 某个模块的实例
  • 模块顺序:biome, dimension, entity, item, screen, server,
  • data.biome.instance - 玩家当前生物群系的实例
  • data.biome.class - 玩家当前生物群系的类对象
  • data.dimension.instance - 玩家当前维度的实例
  • data.dimension.class - 玩家当前维度的类对象
  • data.entity.target.instance - 当前所瞄准实体的实例
  • data.entity.target.class - 当前所瞄准实体的类对象
  • data.entity.riding.instance - 当前所骑乘实体的实例
  • data.entity.riding.class - 当前所骑乘实体的类对象
  • data.item.[slotId].instance - 当前 slotId 的实例
  • data.item.[slotId].class - 当前 slotId 的类对象
  • data.screen.instance - 当前 Gui 界面的实例
  • data.server.motd.line_[number] - 获取 server.motd.raw 的某一特定行
  • data.[moduleName].time - 某模块主状态发生变化时的时间戳
  • 当前 RPC 的启动时间戳请使用 data.general.time

函数列表

以下函数可在 CraftPresence 的任意位置使用:

  • asIcon(input, whitespaceIndex ?: '') - 将字符串转换为有效且可接受的图标格式
  • asIdentifier(target, formatToId ?: false, avoid ?: false) - 将标识符转换为格式正确且可解释的名称
  • asProperWord(input, avoid ?: false, skipSymbolReplacement ?: false, caseCheckTimes ?: -1) - 将输入转换为可正常阅读的字符串
  • capitalizeWords(input, timesToCheck ?: -1) - 将指定字符串中的单词首字母大写
  • clampDouble(num, min, max) - 将指定数字限制在最小值和最大值之间
  • clampFloat(num, min, max) - 将指定数字限制在最小值和最大值之间
  • clampInt(num, min, max) - 将指定数字限制在最小值和最大值之间
  • clampLong(num, min, max) - 将指定数字限制在最小值和最大值之间
  • convertTime(input, originalPattern, newPattern) - 如果可行,将指定字符串转换为指定日期格式
  • convertTimeFormat(dateString, fromFormat, toFormat) - 将日期字符串从一种格式转换为另一种格式
  • convertTimeZone(dateString, fromFormat, fromTimeZone, toTimeZone) - 将日期字符串从一个时区转换到另一个时区
  • dateToEpochMilli(dateString, format, timeZone ?: null) - 将日期字符串转换为毫秒级 Epoch 时间戳
  • dateToEpochSecond(dateString, format, timeZone ?: null) - 将日期字符串转换为秒级 Epoch 时间戳
  • epochMilliToDate(epochMilli, format, timeZone ?: null) - 将 Epoch 时间戳转换为指定格式和

时区的日期字符串

  • epochSecondToDate(epochSecond, format, timeZone ?: null) - 将 Epoch 时间戳转换为指定

格式和

时区的日期字符串

  • `executeMethod(classToAccess=Object|String|Class, instance=Object, methodName=String,

...)` -

通过反射调用目标类中的指定方法

  • format(input=String, args=Object...) - 使用指定格式字符串和参数返回一个格式化字符串
  • formatAddress(input, returnPort ?: false) - 根据输入格式化一个 IP 地址
  • getArrayElement(content=Array, index) - 从指定内容中获取数组元素,无法获取时返回 null
  • getAsset(input) - 如果存在,从图标键中获取指定的 DiscordAsset 数据
  • getAssetId(input) - 如果存在,从指定键中获取解析后的图标 ID
  • getAssetKey(input) - 如果存在,从指定键中获取解析后的图标键
  • getAssetType(input) - 如果存在,从指定键中获取解析后的图片类型
  • getAssetUrl(input) - 如果存在,从指定键中获取解析后的图片 URL
  • getClass(reference=Object|String) - 尝试通过字符串路径或对象引用获取类对象
  • getComponent(data=DataComponentHolder, path=String) - (MC 1.20.5+) 尝试获取指定路径的组件数据
  • getCurrentTime() - 获取当前时间,作为一个 Instant
  • getElapsedMillis() - 获取已过去的时间(毫秒)
  • getElapsedNanos() - 获取已过去的时间(纳秒)
  • getElapsedSeconds() - 获取已过去的时间(秒)
  • getField(classToAccess=Object|String|Class, instance=Object, fieldName=String...) - 通过反射获取

指定字段

  • getFields(classObj=Object|String|Class) - 获取某个类对象可用的字段名称
  • getFirst(args) - 从指定参数中获取第一个非 null 字符串,若无则返回 null
  • getJsonElement(url|jsonString, path=Object...) - 从指定内容中获取 json 元素,无法获取时返回 null
  • getMethods(classObj=Object|String|Class) - 获取某个类对象可用的方法名称
  • getNamespace(input) - 获取标识符风格对象中的命名空间部分
  • getNbt(data=Entity|ItemStack, path=String...) - 尝试获取指定路径的 NBT 标签
  • getOrDefault(target, alternative ?: '') - 如果主值非空则返回主值;否则使用次要值
  • getPath(input) - 获取标识符风格对象中的路径部分
  • getResult(input) - 对指定输入执行递归转换
  • hasField(classObj=Object|String|Class, fieldName) - 获取指定类是否包含指定字段名
  • isColor(input) - 判断输入字符串是否为有效颜色代码
  • isCustomAsset(input) - 判断指定图标键是否存在于自定义资源列表中
  • isUuid(input) - 通过正则判断指定字符串是否为有效 Uuid
  • isValidAsset(input) - 判断指定图标键是否存在于当前 Client ID 下
  • isValidId(input) - 判断指定 Client ID 是否有效
  • isWithinValue(value, min, max, containsmin ?: false, containsmax ?: false, check_sanity ?: true) - 判断

指定值是否位于给定范围内

  • length(input) - 返回指定字符串的长度
  • lerpDouble(num, min, max) - 在指定值之间进行线性插值
  • lerpFloat(num, min, max) - 在指定值之间进行线性插值
  • mcTranslate(input=String, args=Object...) - 根据当前语言下获取到的游戏翻译,

翻译一个未本地化字符串

  • minify(input, length) - 将字符串长度缩减到指定长度
  • nullOrEmpty(input, allowWhitespace ?: false) - 判断一个字符串是否为 NULL 或 EMPTY
  • randomAsset() - 尝试从可用资源中获取一个随机图标键
  • randomString(args) - 从指定参数中随机获取一个元素并作为字符串返回
  • removeRepeatWords(input) - 移除输入字符串中的重复单词
  • roundDouble(num, places ?: 0) - 如果可行,将 Double 四舍五入到定义的小数位
  • snapToStep(num, valueStep) - 按步进值将指定值四舍五入到最接近的值
  • split(input, regex, limit ?: 0) - 按给定正则表达式匹配拆分该字符串
  • stripAllFormatting(input) - 去除输入字符串中的颜色和格式代码
  • stripColors(input) - 去除输入字符串中的颜色代码
  • stripFormatting(input) - 去除输入字符串中的格式代码
  • timeFromEpochMilli(epochMilli) - 从指定 epoch 时间获取一个时间 Instant
  • timeFromEpochSecond(epochSecond) - 从指定 epoch 时间获取一个时间 Instant
  • timeFromString(dateString, fromFormat, fromTimeZone ?: null) - 将某时区和格式的日期字符串

转换为有效的 Instant 实例

  • timeToEpochMilli(data) - 从指定参数派生并获取自 Java Epoch 起的毫秒数
  • timeToEpochSecond(data) - 从指定参数派生并获取自 Java Epoch 起的秒数
  • timeToString(date, toFormat, toTimeZone ?: null) - 使用指定时区和格式格式化日期字符串。
  • toCamelCase(input) - 将字符串转换为有效且可接受的驼峰格式
  • translate(input=String, args=Object...) - 根据当前语言下获取到的模组翻译,

翻译一个未本地化字符串

免责声明与附加信息

Minecraft 问题 + 额外构建信息

尽管已经尽最大努力,但由于 Minecraft 代码库本身的状态,仍然可能出现问题。

这些问题除了会妨碍后端的某些部分外,也可能导致模组的某些功能无法正常工作。

基于这一点,请注意以下内容:

  • Minecraft 1.16 及以上
  • 随着游戏越来越多部分变为数据驱动,一些模组化数据在未先进入世界之前将无法自动获取。
  • 目前,Biome 和 Dimension 模块会受到这一变化影响,只会显示默认数据,额外数据

需要先被发现。

  • Minecraft 1.15 及以下
  • MC-112292:当与 RenderUtils#drawItemStack 方法交互时(v2 物品渲染器所使用),某些使用特定渲染器的方块

可能无法正确显示。

  • 此外,仅在 1.15.x 上,使用该方法的界面还可能出现 z-level 问题
  • Minecraft a1.1.2_01 及以下
  • 在这些版本中,Biome 和 Dimension 模块会使用默认数据进行占位实现,因为这些

方法所需的逻辑尚不存在(最初是在 Alpha 1.2.6 中实现的)

  • 杂项问题
  • 由于早期 Minecraft 版本中的混淆问题,在使用模组某些部分时可能会出现错误数据。
  • 在这种情况下,Biome 和 Dimension 模块可能无法自动检测某些必要信息
  • 作为补救措施,模组还被设计为在首次发现相关生物群系/维度时添加可选模块数据。
  • 某些模块列表中的 “Add New” 选项也可用于绕过此问题。

此外,某些设置或 API 调用在不同 MC 版本下的表现可能有所不同。

图标请求

没有看到你喜欢的图标,或者想为默认 Client ID 中新增/修改某个图标提出建议吗?

如果是这样,你可以在我的 Issue Tracker 上提出请求,并满足

以下要求:

  • 如果要添加来自某个维度的图标,请提供该维度来源模组的链接
  • 这是因为必须使用特定的图标 ID,而这些 ID 可以从模组中获得,或者在进入该维度后查看你的日志/聊天信息,

因为 CraftPresence 会告诉你所期望的 ID

  • 请提供尺寸在 512x5121024x1024 之间的图标(这是最低或推荐尺寸,以获得最佳质量)
  • 这些尺寸之间的图标可以使用,但最终质量可能不够理想
  • 如果请求修改或移除默认 Client ID 中的某个图标,请说明原因
  • 主要是为了记录变更原因,以供将来参考

此外,你也可以通过

参考本指南

来创建你自己的图标集

支持

需要我某个模组的帮助,或者想提供反馈吗?

你可以通过以下方式联系我:

此外,此模组的代码库文档可在

这里查看,更多指南可在

wiki 上找到

许可

此模组采用 MIT License 以及 Apache 2.0 License

本项目当前在内部使用以下依赖:

作者:MeteorDevelopment

Discord 服务条款

与其他 RPC 模组一样,此模组会使用你的游戏内数据将显示信息发送到第三方服务(在本例中为

Discord)。

与为图标创建 Discord ID 相关的服务条款可在

这里找到

使用 Discord 作为服务的服务条款也可在

这里查看

基本信息
模组名称CraftPresence
作者CDAGaming
下载量9,186,573
关注数845
支持版本a1.0.17_04 - 26.1
加载器fabric / forge / modloader / neoforge
客户端required
服务端unsupported

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人数:150,331  |  历史访问人次:246,420

今日访问人数:10,620  |  今日访问人次:11,506

昨日访问人数:25,313  |  昨日访问人次:28,419

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6