CitizenMessage
Represents a single message that a citizen can send to a player, with a trigger type and optional delay.
package com.electro.hycitizens.models;
Constructors
CitizenMessage()
CitizenMessage(@Nonnull String message)
CitizenMessage(@Nonnull String message, @Nullable String interactionTrigger, float delaySeconds)
getMessage / setMessage
@Nonnull String getMessage()
void setMessage(@Nonnull String message)
The message text. Supports color tags ({RED}, {#hex}) and placeholders ({PlayerName}, {CitizenName}).
getInteractionTrigger / setInteractionTrigger
@Nullable String getInteractionTrigger()
void setInteractionTrigger(@Nullable String trigger)
Which interaction triggers this message. Values: "F_KEY", "LEFT_CLICK", "BOTH" (default).
getDelaySeconds / setDelaySeconds
float getDelaySeconds()
void setDelaySeconds(float delaySeconds)
Seconds to wait before sending this message. Used in ALL mode to stagger messages. Default: 0.0.
isTriggeredBy
boolean isTriggeredBy(@Nonnull String interactionSource)
Returns true if this message should fire for the given interaction source. A message with trigger "BOTH" or null always returns true.
CitizenMessage msg = new CitizenMessage(
"{GOLD}Hello, {PlayerName}!",
CitizenInteraction.SOURCE_F_KEY,
0.5f
);
// Only fires on F key
msg.isTriggeredBy(CitizenInteraction.SOURCE_F_KEY); // true
msg.isTriggeredBy(CitizenInteraction.SOURCE_LEFT_CLICK); // false