BeaconSupport.java
package com.hypixel.hytale.server.npc.components.messaging;
import com.hypixel.hytale.component.Component;
import com.hypixel.hytale.component.ComponentType;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.server.npc.NPCPlugin;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class BeaconSupport extends MessageSupport implements Component<EntityStore> {
private NPCMessage[] messageSlots;
private Object2IntMap<String> messageIndices;
private Int2ObjectMap<String> indicesToMessages;
public BeaconSupport() {
}
public static ComponentType<EntityStore, BeaconSupport> getComponentType() {
return NPCPlugin.get().getBeaconSupportComponentType();
}
public void postMessage(String message, Ref<EntityStore> target, double age) {
(.messageSlots != ) {
(!(age < ) || age == -) {
.messageIndices.getInt(message);
(slot != - && .messageSlots[slot].isEnabled()) {
.messageSlots[slot].activate(target, age);
}
}
}
}
Ref<EntityStore> {
.messageSlots[messageIndex];
beacon.deactivate();
beacon.getTarget();
}
Ref<EntityStore> {
.messageSlots[messageIndex].getTarget();
}
{
.messageIndices = messageIndices;
.indicesToMessages = <String>();
messageIndices.forEach((key, value) -> .indicesToMessages.put((Integer)value, key));
NPCMessage[] messages = [messageIndices.size()];
( ; i < messages.length; ++i) {
messages[i] = ();
}
.messageSlots = messages;
}
String {
(String).indicesToMessages.get(messageIndex);
}
NPCMessage[] getMessageSlots() {
.messageSlots;
}
Component<EntityStore> {
();
beaconSupport.messageSlots = [.messageSlots.length];
( ; i < beaconSupport.messageSlots.length; ++i) {
beaconSupport.messageSlots[i] = .messageSlots[i].clone();
}
beaconSupport.messageIndices = .messageIndices;
beaconSupport;
}
}