Timeline

Developer API

时间线在 org.z2six.rpgtimeline.api.RPGTimelineApi 下公开公共 API 帮助程序。

TLDR

使用 API 可以:

  • 读取/格式化当前日历日期
  • 添加服务器/个人注释
  • 记录本机进步
  • 记录外部类似进步的事件

约会助手

Java
import org.z2six.rpgtimeline.api.RPGTimelineApi;

long gameTime = serverLevel.getDayTime();
String dateText = RPGTimelineApi.buildDateStringFromGameTime(gameTime);
long dayIndex = RPGTimelineApi.getDayIndexForGameTime(gameTime);

有用的方法:

  • getCalendarDefinition()
  • getCalendarDayOffsetDays()
  • fromGameTime(long gameTime)
  • formatDate(long gameTime)
  • buildDateMessage(long dayIndex)

以编程方式添加注释

Java
import org.z2six.rpgtimeline.api.RPGTimelineApi;

RPGTimelineApi.addServerNote(player, "Server Arc Begins", "The kingdom enters a new age.");
RPGTimelineApi.addPersonalNote(player, "My Journal", "Reached the obsidian gate.");

// Explicit day index version
RPGTimelineApi.addServerNote(player, "Coronation", "The crown was claimed.", 512L);

记录进步

本机进度对象

Java
RPGTimelineApi.recordAdvancement(player, advancementHolder);

类似外部晋升的活动

Java
import net.minecraft.network.chat.Component;

RPGTimelineApi.recordExternalAdvancement(
    player,
    "mymod:slay_lich",
    Component.literal("Lich Vanquisher"),
    Component.literal("Defeated the Lich beneath the catacombs."),
    "minecraft:nether_star"
);
深入研究:世界第一的身份

sourceId 是用于世界第一跟踪的身份。保持每个成就概念的稳定和独特。

错误模型

API 调用是防御性的:

  • 尽可能安全地忽略空输入
  • 记录并吞掉内部故障以避免调用者模块崩溃
服务器端使用

应该从服务器端上下文(ServerPlayer)调用编年史编写助手。

支持这个项目

喜欢这个 Wiki 和这些模组吗?

你的每一份支持都能帮助我持续开发新功能、完善文档并发布更新。

返回顶部