Developer API
Timeline expose les assistants API publics sous org.z2six.rpgtimeline.api.RPGTimelineApi.
TLDR
Utilisez l'API pour :
- lire/formater les dates actuelles du calendrier
- ajouter des notes de serveur/personnelles
- enregistrer les progrès natifs
- enregistrer des événements externes de type avancement
Aides aux rendez-vous
import org.z2six.rpgtimeline.api.RPGTimelineApi;
long gameTime = serverLevel.getDayTime();
String dateText = RPGTimelineApi.buildDateStringFromGameTime(gameTime);
long dayIndex = RPGTimelineApi.getDayIndexForGameTime(gameTime);Méthodes utiles :
getCalendarDefinition()getCalendarDayOffsetDays()fromGameTime(long gameTime)formatDate(long gameTime)buildDateMessage(long dayIndex)
Ajouter des notes par programme
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);Avances d'enregistrement
Objet d'avancement natif
RPGTimelineApi.recordAdvancement(player, advancementHolder);Événement externe de type avancement
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"
);DEEP DIVE : une première identité mondiale
sourceId est l'identité utilisée pour le suivi en première mondiale. Gardez-le stable et unique par concept de réussite.
Modèle d'erreur
Les appels d'API sont défensifs :
- les entrées nulles sont ignorées en toute sécurité lorsque cela est possible
- les échecs internes sont enregistrés et avalés pour éviter de planter les mods appelants
Les assistants à la rédaction de chroniques doivent être appelés à partir de contextes côté serveur (ServerPlayer).
Soutenir ce projet
Vous aimez ce wiki et ces mods ?
Chaque soutien m'aide a continuer a creer des fonctionnalites, ecrire la documentation et publier des mises a jour.