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