1package com.osroyale.util.parser.impl;
3import com.google.gson.JsonObject;
4import com.osroyale.game.world.entity.mob.npc.Npc;
5import com.osroyale.game.world.position.Position;
6import com.osroyale.util.Utility;
7import com.osroyale.util.parser.GsonParser;
8import org.jire.tarnishps.OldToNew;
10import java.util.HashMap;
62 public static final Map<Position, ForcedMessage>
FORCED_MESSAGES =
new HashMap<>();
68 super(
"def/npc/npc_force_chat",
false);
72 protected void parse(JsonObject data) {
73 int id = data.get(
"id").getAsInt();
74 int newId = OldToNew.get(
id);
80 final int interval = data.get(
"interval").getAsInt();
84 String[] messages =
new String[]{};
86 if (data.has(
"messages")) {
87 messages =
builder.fromJson(data.get(
"messages"), String[].class);
100 private final int id;
105 private final int interval;
110 private final String[] messages;
120 private int next = 0;
132 this.interval = interval;
133 this.messages = messages;
137 public int getId() {
return id; }
139 public int getInterval() {
143 public String[] getMessages() {
147 public MessageType getType() {
151 public String nextMessage() {
154 if (next >= messages.length) {
157 return messages[next++];
159 return messages[Utility.random(messages.length)];
161 throw new IllegalArgumentException(
"Unhandled type: " + type +
".");
ForcedMessage(int id, int interval, String[] messages, MessageType type)
void parse(JsonObject data)
static final Map< Position, ForcedMessage > FORCED_MESSAGES