WorldEventsPlugin class
Пакет: com.hypixel.hytale.builtin.adventure.worldevents
Файл: com/hypixel/hytale/builtin/adventure/worldevents/WorldEventsPlugin.java
extends: JavaPlugin
Поля (9)
| Модификаторы | Тип | Имя |
|---|---|---|
static |
WorldEventsPlugin |
instance |
|
|
instance |
|
ComponentRegistryProxy |
var1 |
|
WorldEventsPlugin |
var1 |
|
WorldEventsPlugin |
var1 |
|
WorldEventsConfig |
var1 |
|
ComponentRegistryProxy |
var2 |
|
Store |
var2 |
|
WorldEventsPlugin |
var3 |
Методы (26)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(WorldEventRecord var6 : var1.events) |
public |
ResourceType<EntityStore, ConditionManager> |
getConditionManagerResourceTypeResourceType<EntityStore, ConditionManager> getConditionManagerResourceType() |
public |
ComponentType<ChunkStore, TrackedBlockComponent> |
getTrackedBlockComponentTypeComponentType<ChunkStore, TrackedBlockComponent> getTrackedBlockComponentType() |
public |
ComponentType<EntityStore, TrackedEntityComponent> |
getTrackedEntityComponentTypeComponentType<EntityStore, TrackedEntityComponent> getTrackedEntityComponentType() |
public |
ComponentType<EntityStore, WorldEvent> |
getWorldEventComponentTypeComponentType<EntityStore, WorldEvent> getWorldEventComponentType() |
public |
ResourceType<EntityStore, WorldEventManager> |
getWorldEventManagerResourceTypeResourceType<EntityStore, WorldEventManager> getWorldEventManagerResourceType() |
public |
ResourceType<EntityStore, WorldEventStorage> |
getWorldEventStorageResourceTypeResourceType<EntityStore, WorldEventStorage> getWorldEventStorageResourceType() |
|
|
if if(var2 != null) |
|
|
if if(var3 != var0) |
|
|
if if(var1 != null && var1.events.length != 0) |
static |
void |
loadGameplayWorldEventsvoid loadGameplayWorldEvents(@Nonnull World var0) |
static |
void |
registerChunkStoreEventConditionvoid registerChunkStoreEventCondition(@Nonnull PluginBase var0,
@Nonnull EventCondition.Type var1,
@Nonnull BuilderCodec<? extends EventCondition> var2,
@Nonnull BuilderCodec<? extends EventCondition.Config> var3,
@Nonnull ConditionEventHandler<ChunkStore, ?> var4) |
static |
void |
registerChunkStoreEventHandlervoid registerChunkStoreEventHandler(@Nonnull ConditionEventHandler<ChunkStore, ?> var0) |
abstract |
|
registerChunkStoreEventHandler registerChunkStoreEventHandler(var4) |
static |
void |
registerConditionvoid registerCondition(@Nonnull PluginBase var0,
@Nonnull EventCondition.Type var1,
@Nonnull BuilderCodec<? extends EventCondition> var2,
@Nonnull BuilderCodec<? extends EventCondition.Config> var3) |
abstract |
|
registerCondition registerCondition(this, NoCondition.TYPE, NoCondition.CODEC, NoCondition.Config.CODEC) |
abstract |
|
registerCondition registerCondition(this, IntervalCondition.TYPE, IntervalCondition.CODEC, IntervalCondition.Config.CODEC) |
abstract |
|
registerCondition registerCondition(this, LocationCondition.TYPE, LocationCondition.CODEC, LocationCondition.Config.CODEC) |
abstract |
|
registerCondition registerCondition(this, ProximityCondition.TYPE, ProximityCondition.CODEC, ProximityCondition.Config.CODEC) |
abstract |
|
registerCondition registerCondition(this, WorldClosedCondition.TYPE, WorldClosedCondition.CODEC, WorldClosedCondition.Config.CODEC) |
abstract |
|
registerCondition registerCondition(var0, var1, var2, var3) |
static |
void |
registerConditionTypevoid registerConditionType(@Nonnull PluginBase var0, @Nonnull EventCondition.Type var1, @Nonnull Class<? extends EventCondition> var2) |
static |
void |
registerEntityStoreEventConditionvoid registerEntityStoreEventCondition(@Nonnull PluginBase var0,
@Nonnull EventCondition.Type var1,
@Nonnull BuilderCodec<? extends EventCondition> var2,
@Nonnull BuilderCodec<? extends EventCondition.Config> var3,
@Nonnull ConditionEventHandler<EntityStore, ?> var4) |
static |
void |
registerEntityStoreEventHandlervoid registerEntityStoreEventHandler(@Nonnull ConditionEventHandler<EntityStore, ?> var0) |
abstract |
|
registerEntityStoreEventHandler registerEntityStoreEventHandler(var4) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.worldevents;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.EffectsAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.EventAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.EventStartAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.EventStopAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.GlobalEventStartAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.GlobalEventStopAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.MapMarkerOverrideAddAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.MapMarkerOverrideRemoveAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.MessageAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.NoAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.PrefabPasteAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.PrefabRemoveAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.effect.shape.Point;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.effect.shape.Ring;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.effect.shape.Shape;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.command.WorldEventCommand;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.component.TrackedBlockComponent;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.component.TrackedEntityComponent;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.EventCondition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.EventEndCondition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.IntervalCondition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.LocationCondition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.NoCondition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.ProximityCondition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.SignalCondition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.WorldClosedCondition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.location.EventLocation;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.location.NoLocation;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.manager.ConditionManager;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.spawner.NoSpawner;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.spawner.PrefabSpawner;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.spawner.Spawner;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.context.Context;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.context.EventContext;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.context.IntervalContext;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.context.LocationContext;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.context.MapMarkerOverrideContext;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.context.PrefabPasteContext;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.context.PrefabRemoveContext;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.context.WorldContext;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.StageAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.WorldEvent;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.WorldEventAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.interaction.EventStartInteraction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.interaction.EventStopInteraction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.interaction.GlobalEventStartInteraction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.interaction.GlobalEventStopInteraction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.interaction.ModifyIntervalConditionInteraction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.system.ConditionEventHandler;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.system.EventConditionSystem;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.system.WorldEventInitSystem;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.system.WorldEventStorageSystem;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.system.WorldEventTickSystem;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.lookup.Priority;
class="kw">import com.hypixel.hytale.component.ComponentRegistryProxy;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.system.EcsEvent;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.logger.sentry.SkipSentryException;
class="kw">import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.GameplayConfig;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import com.hypixel.hytale.server.core.plugin.PluginBase;
class="kw">import com.hypixel.hytale.server.core.task.TaskRegistration;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.List;
class="kw">import java.util.Set;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class WorldEventsPlugin class="kw">extends JavaPlugin {
class="kw">protected class="kw">static WorldEventsPlugin instance;
class="kw">protected class="kw">static class="kw">final TaskRegistration NOOP_TASK = new TaskRegistration(CompletableFuture.completedFuture(null));
class="kw">protected ComponentType<ChunkStore, TrackedBlockComponent> trackedBlockComponentType;
class="kw">protected ComponentType<EntityStore, TrackedEntityComponent> trackedEntityComponentType;
class="kw">protected ComponentType<EntityStore, WorldEvent> worldEventComponentType;
class="kw">protected ResourceType<EntityStore, WorldEventManager> worldEventManagerResourceType;
class="kw">protected ResourceType<EntityStore, WorldEventStorage> worldEventStorageResourceType;
class="kw">protected ResourceType<EntityStore, ConditionManager> conditionManagerResourceType;
class="kw">protected class="kw">final Set<Class<? class="kw">extends EcsEvent>> eventTypes = ConcurrentHashMap.newKeySet();
class="kw">protected class="kw">final ConcurrentHashMap<Class<?>, EventCondition.Type> conditionTypes = new ConcurrentHashMap<>();
class="kw">public WorldEventsPlugin(@Nonnull JavaPluginInit var1) {
super(var1);
instance = this;
}
@Override
class="kw">protected void setup() {
ComponentRegistryProxy var1 = this.getChunkStoreRegistry();
ComponentRegistryProxy var2 = this.getEntityStoreRegistry();
this.trackedBlockComponentType = var1.registerComponent(TrackedBlockComponent.class, "EventTrackedBlock", TrackedBlockComponent.CODEC);
this.trackedEntityComponentType = var2.registerComponent(TrackedEntityComponent.class, "EventTrackedEntity", TrackedEntityComponent.CODEC);
this.worldEventComponentType = var2.registerComponent(WorldEvent.class, "WorldEvent", WorldEvent.CODEC);
this.worldEventManagerResourceType = var2.registerResource(WorldEventManager.class, WorldEventManager::new);
this.worldEventStorageResourceType = var2.registerResource(WorldEventStorage.class, "WorldEventStorage", WorldEventStorage.CODEC);
this.conditionManagerResourceType = var2.registerResource(ConditionManager.class, ConditionManager::new);
var2.registerSystem(new WorldEventTickSystem(this.worldEventComponentType, this.worldEventStorageResourceType, this.conditionManagerResourceType));
var2.registerSystem(
new WorldEventInitSystem(
this.worldEventComponentType, this.worldEventManagerResourceType, this.worldEventStorageResourceType, this.conditionManagerResourceType
)
);
var2.registerSystem(new WorldEventStorageSystem(this.worldEventManagerResourceType, this.worldEventStorageResourceType, this.worldEventComponentType));
var2.registerSystem(new EventConditionSystem(this.conditionManagerResourceType));
this.getCodecRegistry(Shape.TYPE_CODEC).register(Priority.DEFAULT, "Point", Point.class, Point.CODEC).register("Ring", Ring.class, Ring.CODEC);
this.getCodecRegistry(Spawner.Config.TYPE_CODEC)
.register(Priority.DEFAULT, "NoSpawner", NoSpawner.Config.class, NoSpawner.Config.CODEC)
.register("PrefabSpawner", PrefabSpawner.Config.class, PrefabSpawner.Config.CODEC);
this.getCodecRegistry(Context.TYPE_CODEC)
.register("IntervalContext", IntervalContext.class, IntervalContext.CODEC)
.register("LocationContext", LocationContext.class, LocationContext.CODEC)
.register("EventContext", EventContext.class, EventContext.CODEC)
.register("MapMarkerOverrideContext", MapMarkerOverrideContext.class, MapMarkerOverrideContext.CODEC)
.register("PrefabPasteContext", PrefabPasteContext.class, PrefabPasteContext.CODEC)
.register("PrefabRemoveContext", PrefabRemoveContext.class, PrefabRemoveContext.CODEC)
.register("WorldContext", WorldContext.class, WorldContext.CODEC);
this.getCodecRegistry(EventAction.TYPE_CODEC)
.register(Priority.DEFAULT, "None", NoAction.class, NoAction.CODEC)
.register("EffectsAction", EffectsAction.class, EffectsAction.CODEC)
.register("EventStartAction", EventStartAction.class, EventStartAction.CODEC)
.register("EventStopAction", EventStopAction.class, EventStopAction.CODEC)
.register("GlobalEventStartAction", GlobalEventStartAction.class, GlobalEventStartAction.CODEC)
.register("GlobalEventStopAction", GlobalEventStopAction.class, GlobalEventStopAction.CODEC)
.register("MapMarkerOverrideAddAction", MapMarkerOverrideAddAction.class, MapMarkerOverrideAddAction.CODEC)
.register("MapMarkerOverrideRemoveAction", MapMarkerOverrideRemoveAction.class, MapMarkerOverrideRemoveAction.CODEC)
.register("MessageAction", MessageAction.class, MessageAction.CODEC)
.register("PrefabPasteAction", PrefabPasteAction.class, PrefabPasteAction.CODEC)
.register("PrefabRemoveAction", PrefabRemoveAction.class, PrefabRemoveAction.CODEC);
this.getCodecRegistry(EventLocation.Config.TYPE_CODEC).register(Priority.DEFAULT, "None", NoLocation.Config.class, NoLocation.Config.CODEC);
registerCondition(this, NoCondition.TYPE, NoCondition.CODEC, NoCondition.Config.CODEC);
registerCondition(this, IntervalCondition.TYPE, IntervalCondition.CODEC, IntervalCondition.Config.CODEC);
registerCondition(this, LocationCondition.TYPE, LocationCondition.CODEC, LocationCondition.Config.CODEC);
registerCondition(this, ProximityCondition.TYPE, ProximityCondition.CODEC, ProximityCondition.Config.CODEC);
registerCondition(this, WorldClosedCondition.TYPE, WorldClosedCondition.CODEC, WorldClosedCondition.Config.CODEC);
registerEntityStoreEventCondition(this, EventEndCondition.TYPE, EventEndCondition.CODEC, EventEndCondition.Config.CODEC, new EventEndCondition.Handler());
registerEntityStoreEventCondition(this, SignalCondition.TYPE, SignalCondition.CODEC, SignalCondition.Config.CODEC, new SignalCondition.Handler());
this.getAssetRegistry()
.register(
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
StageAsset.class, StageAsset.ASSET_MAP
)
.setPath("WorldEvent/Stage"))
.setCodec(StageAsset.CODEC))
.setKeyFunction(StageAsset::getId))
.setReplaceOnRemove(var0 -> StageAsset.UNKNOWN))
.preLoadAssets(List.of(StageAsset.UNKNOWN)))
.build()
);
this.getAssetRegistry()
.register(
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
WorldEventAsset.class, WorldEventAsset.ASSET_MAP
)
.setPath("WorldEvent/Event"))
.setCodec(WorldEventAsset.CODEC))
.setKeyFunction(WorldEventAsset::getId))
.setReplaceOnRemove(var0 -> WorldEventAsset.UNKNOWN))
.preLoadAssets(List.of(WorldEventAsset.UNKNOWN)))
.build()
);
this.getCodecRegistry(GameplayConfig.PLUGIN_CODEC).register(WorldEventsConfig.class, "WorldEvents", WorldEventsConfig.CODEC);
this.getCodecRegistry(Interaction.CODEC)
.register("EventStartInteraction", EventStartInteraction.class, EventStartInteraction.CODEC)
.register("EventStopInteraction", EventStopInteraction.class, EventStopInteraction.CODEC)
.register("GlobalEventStartInteraction", GlobalEventStartInteraction.class, GlobalEventStartInteraction.CODEC)
.register("GlobalEventStopInteraction", GlobalEventStopInteraction.class, GlobalEventStopInteraction.CODEC)
.register("ModifyIntervalConditionInteraction", ModifyIntervalConditionInteraction.class, ModifyIntervalConditionInteraction.CODEC);
this.getCommandRegistry().registerCommand(new WorldEventCommand());
}
@Override
class="kw">protected void start() {
GlobalWorldEventManager.INSTANCE
.loadAsync()
.whenCompleteAsync(
(var1, var2) -> {
if (var2 != null) {
((HytaleLogger.Api)((HytaleLogger.Api)this.getLogger().atSevere()).withCause(new SkipSentryException(var2)))
.log("Failed to load %s", "events.json");
} else {
var1.startup();
}
}
);
}
@Override
class="kw">protected void shutdown() {
super.shutdown();
GlobalWorldEventManager.INSTANCE.saveAsync();
GlobalWorldEventManager.INSTANCE.shutdown();
}
class="kw">public ComponentType<ChunkStore, TrackedBlockComponent> getTrackedBlockComponentType() {
class="kw">return this.trackedBlockComponentType;
}
class="kw">public ComponentType<EntityStore, TrackedEntityComponent> getTrackedEntityComponentType() {
class="kw">return this.trackedEntityComponentType;
}
class="kw">public ComponentType<EntityStore, WorldEvent> getWorldEventComponentType() {
class="kw">return this.worldEventComponentType;
}
class="kw">public ResourceType<EntityStore, WorldEventManager> getWorldEventManagerResourceType() {
class="kw">return this.worldEventManagerResourceType;
}
class="kw">public ResourceType<EntityStore, WorldEventStorage> getWorldEventStorageResourceType() {
class="kw">return this.worldEventStorageResourceType;
}
class="kw">public ResourceType<EntityStore, ConditionManager> getConditionManagerResourceType() {
class="kw">return this.conditionManagerResourceType;
}
@Nullable
class="kw">public EventCondition.Type getConditionType(@Nonnull Class<? class="kw">extends EventCondition> var1) {
class="kw">return this.conditionTypes.get(var1);
}
@Nonnull
class="kw">public class="kw">static WorldEventsPlugin get() {
assert instance != null : "WorldEventsPlugin not initialized";
class="kw">return instance;
}
class="kw">public class="kw">static void registerConditionType(@Nonnull PluginBase var0, @Nonnull EventCondition.Type var1, @Nonnull Class<? class="kw">extends EventCondition> var2) {
WorldEventsPlugin var3 = get();
var3.conditionTypes.put(var2, var1);
if (var3 != var0) {
var0.getTaskRegistry().register(new TaskRegistration(NOOP_TASK, () -> true, () -> get().conditionTypes.remove(var2)));
}
}
class="kw">public class="kw">static void registerChunkStoreEventHandler(@Nonnull ConditionEventHandler<ChunkStore, ?> var0) {
WorldEventsPlugin var1 = get();
if (var1.eventTypes.add((Class<? class="kw">extends EcsEvent>)var0.getEventType())) {
var1.getChunkStoreRegistry().registerSystem(var0);
}
}
class="kw">public class="kw">static void registerEntityStoreEventHandler(@Nonnull ConditionEventHandler<EntityStore, ?> var0) {
WorldEventsPlugin var1 = get();
if (var1.eventTypes.add((Class<? class="kw">extends EcsEvent>)var0.getEventType())) {
var1.getEntityStoreRegistry().registerSystem(var0);
}
}
class="kw">public class="kw">static void registerCondition(
@Nonnull PluginBase var0,
@Nonnull EventCondition.Type var1,
@Nonnull BuilderCodec<? class="kw">extends EventCondition> var2,
@Nonnull BuilderCodec<? class="kw">extends EventCondition.Config> var3
) {
registerConditionType(var0, var1, var2.getInnerClass());
var0.getCodecRegistry(EventCondition.TYPE_CODEC).register(var1.id(), var2.getInnerClass(), var2);
var0.getCodecRegistry(EventCondition.Config.TYPE_CODEC).register(var1.id(), var3.getInnerClass(), var3);
}
class="kw">public class="kw">static void registerChunkStoreEventCondition(
@Nonnull PluginBase var0,
@Nonnull EventCondition.Type var1,
@Nonnull BuilderCodec<? class="kw">extends EventCondition> var2,
@Nonnull BuilderCodec<? class="kw">extends EventCondition.Config> var3,
@Nonnull ConditionEventHandler<ChunkStore, ?> var4
) {
registerCondition(var0, var1, var2, var3);
registerChunkStoreEventHandler(var4);
}
class="kw">public class="kw">static void registerEntityStoreEventCondition(
@Nonnull PluginBase var0,
@Nonnull EventCondition.Type var1,
@Nonnull BuilderCodec<? class="kw">extends EventCondition> var2,
@Nonnull BuilderCodec<? class="kw">extends EventCondition.Config> var3,
@Nonnull ConditionEventHandler<EntityStore, ?> var4
) {
registerCondition(var0, var1, var2, var3);
registerEntityStoreEventHandler(var4);
}
class="kw">public class="kw">static void loadGameplayWorldEvents(@Nonnull World var0) {
WorldEventsConfig var1 = var0.getGameplayConfig().getPluginConfig().get(WorldEventsConfig.class);
if (var1 != null && var1.events.length != 0) {
Store var2 = var0.getEntityStore().getStore();
var2.assertThread();
for (WorldEventRecord var6 : var1.events) {
EventStartAction.startEvent(var2, var6);
}
GlobalWorldEventManager.INSTANCE.start(var2, var1.globalEvents);
}
}
}