TeleporterPlugin class
Пакет: com.hypixel.hytale.builtin.adventure.teleporter
Файл: com/hypixel/hytale/builtin/adventure/teleporter/TeleporterPlugin.java
extends: JavaPlugin
Поля (25)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final ComponentType<ChunkStore, BlockModule.BlockStateInfo> |
blockStateComponentType |
|
private final ComponentType<ChunkStore, BlockModule.BlockStateInfo> |
blockStateComponentType |
static |
TeleporterPlugin |
instance |
|
|
instance |
|
private final Query<ChunkStore> |
query |
|
private final ComponentType<ChunkStore, Teleporter> |
teleporterComponentType |
|
private final ComponentType<ChunkStore, Teleporter> |
teleporterComponentType |
|
ComponentRegistryProxy |
var1 |
|
Warp |
var1 |
|
ComponentRegistryProxy |
var2 |
|
ComponentType |
var3 |
|
ComponentType |
var4 |
|
ComponentType |
var5 |
|
String |
var5 |
|
Teleporter |
var5 |
|
Teleporter |
var5 |
|
ComponentType |
var6 |
|
String |
var6 |
|
BlockModule.BlockStateInfo |
var6 |
|
BlockModule.BlockStateInfo |
var6 |
|
BlockModule.BlockStateInfo |
var6 |
|
ComponentType |
var7 |
|
BlockModule.BlockStateInfo |
var7 |
|
ComponentType |
var8 |
|
ComponentType |
var9 |
Методы (20)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
TeleporterOwnedWarpRefChangeSystempublic TeleporterOwnedWarpRefChangeSystem(@Nonnull ComponentType<ChunkStore, Teleporter> var1, @Nonnull ComponentType<ChunkStore, BlockModule.BlockStateInfo> var2) |
|
public |
TeleporterOwnedWarpRefSystempublic TeleporterOwnedWarpRefSystem(@Nonnull ComponentType<ChunkStore, Teleporter> var1, @Nonnull ComponentType<ChunkStore, BlockModule.BlockStateInfo> var2) |
|
public ComponentType<ChunkStore, Teleporter> |
componentTypepublic ComponentType<ChunkStore, Teleporter> componentType() |
static |
TeleporterPlugin |
getTeleporterPlugin get() |
|
public Query<ChunkStore> |
getQuerypublic Query<ChunkStore> getQuery() |
|
public Query<ChunkStore> |
getQuerypublic Query<ChunkStore> getQuery() |
public |
ComponentType<ChunkStore, Teleporter> |
getTeleporterComponentTypeComponentType<ChunkStore, Teleporter> getTeleporterComponentType() |
public |
ComponentType<EntityStore, UsedTeleporter> |
getUsedTeleporterComponentTypeComponentType<EntityStore, UsedTeleporter> getUsedTeleporterComponentType() |
static |
void |
handleModifyWarpEventvoid handleModifyWarpEvent(ModifyWarpEvent var0) |
|
|
if if(var2 != null) |
|
|
if if(var2 == AddReason.LOAD) |
|
|
if if(var6 != null) |
|
|
if if(var2 == RemoveReason.REMOVE) |
|
|
if if(var6 != null) |
|
public void |
onComponentAddedpublic void onComponentAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull Teleporter var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
|
public void |
onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<ChunkStore> var1, @Nonnull Teleporter var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
|
public void |
onComponentSetpublic void onComponentSet(@Nonnull Ref<ChunkStore> var1,
@Nullable Teleporter var2,
@Nonnull Teleporter var3,
@Nonnull Store<ChunkStore> var4,
@Nonnull CommandBuffer<ChunkStore> var5) |
|
public void |
onEntityAddedpublic void onEntityAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
|
public void |
onEntityRemovepublic void onEntityRemove(@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.teleporter;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.component.Teleporter;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.interaction.server.TeleporterInteraction;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.interaction.server.UsedTeleporter;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.page.TeleporterSettingsPageSupplier;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.system.ClearUsedTeleporterSystem;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.system.CreateWarpWhenTeleporterPlacedSystem;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.system.TurnOffTeleportersSystem;
class="kw">import com.hypixel.hytale.builtin.teleport.TeleportPlugin;
class="kw">import com.hypixel.hytale.builtin.teleport.Warp;
class="kw">import com.hypixel.hytale.builtin.teleport.commands.event.ModifyWarpEvent;
class="kw">import com.hypixel.hytale.builtin.teleport.commands.event.RemoveWarpEvent;
class="kw">import com.hypixel.hytale.builtin.teleport.commands.event.ReplaceWarpEvent;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentRegistryProxy;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.RefChangeSystem;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.PendingTeleport;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.TeleportRecord;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.components.PlacedByInteractionComponent;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.OpenCustomUIInteraction;
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.universe.PlayerRef;
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 javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class TeleporterPlugin class="kw">extends JavaPlugin {
class="kw">private class="kw">static TeleporterPlugin instance;
class="kw">private class="kw">static class="kw">final Message MESSAGE_TELEPORTER_PROTECTION_REASON = Message.translation("server.commands.teleporter.warp.class="kw">protected");
class="kw">private ComponentType<ChunkStore, Teleporter> teleporterComponentType;
class="kw">private ComponentType<EntityStore, UsedTeleporter> usedTeleporterComponentType;
class="kw">public class="kw">static TeleporterPlugin get() {
class="kw">return instance;
}
class="kw">public TeleporterPlugin(@Nonnull JavaPluginInit var1) {
super(var1);
instance = this;
}
@Override
class="kw">protected void setup() {
ComponentRegistryProxy var1 = this.getChunkStoreRegistry();
ComponentRegistryProxy var2 = this.getEntityStoreRegistry();
this.teleporterComponentType = var1.registerComponent(Teleporter.class, "Teleporter", Teleporter.CODEC);
ComponentType var3 = PlacedByInteractionComponent.getComponentType();
ComponentType var4 = BlockModule.BlockStateInfo.getComponentType();
ComponentType var5 = PlayerRef.getComponentType();
ComponentType var6 = TransformComponent.getComponentType();
ComponentType var7 = TeleportRecord.getComponentType();
ComponentType var8 = Teleport.getComponentType();
ComponentType var9 = PendingTeleport.getComponentType();
var1.registerSystem(new TeleporterPlugin.TeleporterOwnedWarpRefChangeSystem(this.teleporterComponentType, var4));
var1.registerSystem(new TeleporterPlugin.TeleporterOwnedWarpRefSystem(this.teleporterComponentType, var4));
var1.registerSystem(new TurnOffTeleportersSystem());
this.getChunkStoreRegistry().registerSystem(new CreateWarpWhenTeleporterPlacedSystem(var3, this.teleporterComponentType, var4, var5));
this.usedTeleporterComponentType = var2.registerComponent(UsedTeleporter.class, UsedTeleporter::new);
var2.registerSystem(new ClearUsedTeleporterSystem(this.usedTeleporterComponentType, var6, var7, var8, var9));
this.getCodecRegistry(Interaction.CODEC).register("Teleporter", TeleporterInteraction.class, TeleporterInteraction.CODEC);
this.getCodecRegistry(OpenCustomUIInteraction.PAGE_CODEC)
.register("Teleporter", TeleporterSettingsPageSupplier.class, TeleporterSettingsPageSupplier.CODEC);
this.getEventRegistry().registerGlobal(RemoveWarpEvent.class, TeleporterPlugin::handleModifyWarpEvent);
this.getEventRegistry().registerGlobal(ReplaceWarpEvent.class, TeleporterPlugin::handleModifyWarpEvent);
}
class="kw">public ComponentType<ChunkStore, Teleporter> getTeleporterComponentType() {
class="kw">return this.teleporterComponentType;
}
class="kw">public ComponentType<EntityStore, UsedTeleporter> getUsedTeleporterComponentType() {
class="kw">return this.usedTeleporterComponentType;
}
class="kw">private class="kw">static void handleModifyWarpEvent(ModifyWarpEvent var0) {
Warp var1 = var0.getWarp();
if (var1.getCreator().equals("*Teleporter")) {
var0.cancel(MESSAGE_TELEPORTER_PROTECTION_REASON.param("name", var1.getId()));
}
}
class="kw">private class="kw">static class TeleporterOwnedWarpRefChangeSystem class="kw">extends RefChangeSystem<ChunkStore, Teleporter> {
@Nonnull
class="kw">private class="kw">final ComponentType<ChunkStore, Teleporter> teleporterComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateComponentType;
class="kw">public TeleporterOwnedWarpRefChangeSystem(
@Nonnull ComponentType<ChunkStore, Teleporter> var1, @Nonnull ComponentType<ChunkStore, BlockModule.BlockStateInfo> var2
) {
this.teleporterComponentType = var1;
this.blockStateComponentType = var2;
}
@Nonnull
@Override
class="kw">public ComponentType<ChunkStore, Teleporter> componentType() {
class="kw">return this.teleporterComponentType;
}
class="kw">public void onComponentAdded(
@Nonnull Ref<ChunkStore> var1, @Nonnull Teleporter var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
}
class="kw">public void onComponentSet(
@Nonnull Ref<ChunkStore> var1,
@Nullable Teleporter var2,
@Nonnull Teleporter var3,
@Nonnull Store<ChunkStore> var4,
@Nonnull CommandBuffer<ChunkStore> var5
) {
if (var2 != null) {
String var6 = var2.getOwnedWarp();
if (var6 != null && !var6.isEmpty() && !var6.equals(var3.getOwnedWarp())) {
BlockModule.BlockStateInfo var7 = var5.getComponent(var1, this.blockStateComponentType);
if (var7 != null && Teleporter.validateWarp(var4, var2, var7) == Teleporter.ValidationResult.VALID) {
TeleportPlugin.get().removeWarp(var6);
}
var2.setOwnedWarp(null);
}
}
}
class="kw">public void onComponentRemoved(
@Nonnull Ref<ChunkStore> var1, @Nonnull Teleporter var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
String var5 = var2.getOwnedWarp();
if (var5 != null && !var5.isEmpty()) {
BlockModule.BlockStateInfo var6 = var4.getComponent(var1, this.blockStateComponentType);
if (var6 != null && Teleporter.validateWarp(var3, var2, var6) == Teleporter.ValidationResult.VALID) {
TeleportPlugin.get().removeWarp(var5);
}
var2.setOwnedWarp(null);
}
}
@Nonnull
@Override
class="kw">public Query<ChunkStore> getQuery() {
class="kw">return Query.any();
}
}
class="kw">private class="kw">static class TeleporterOwnedWarpRefSystem class="kw">extends RefSystem<ChunkStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<ChunkStore, Teleporter> teleporterComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateComponentType;
@Nonnull
class="kw">private class="kw">final Query<ChunkStore> query;
class="kw">public TeleporterOwnedWarpRefSystem(
@Nonnull ComponentType<ChunkStore, Teleporter> var1, @Nonnull ComponentType<ChunkStore, BlockModule.BlockStateInfo> var2
) {
this.teleporterComponentType = var1;
this.blockStateComponentType = var2;
this.query = Query.and(var1, var2);
}
@Override
class="kw">public void onEntityAdded(
@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
if (var2 == AddReason.LOAD) {
Teleporter var5 = var4.getComponent(var1, this.teleporterComponentType);
if (var5 != null && var5.getOwnedWarp() != null) {
BlockModule.BlockStateInfo var6 = var4.getComponent(var1, this.blockStateComponentType);
if (var6 != null) {
if (Teleporter.validateWarp(var3, var5, var6) != Teleporter.ValidationResult.VALID) {
((HytaleLogger.Api)TeleporterPlugin.get().getLogger().atInfo())
.log("Owned warp '%s' is no longer valid for teleporter", var5.getOwnedWarp());
var5.setOwnedWarp(null);
}
}
}
}
}
@Override
class="kw">public void onEntityRemove(
@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
if (var2 == RemoveReason.REMOVE) {
Teleporter var5 = var4.getComponent(var1, this.teleporterComponentType);
if (var5 != null && var5.getOwnedWarp() != null) {
BlockModule.BlockStateInfo var6 = var4.getComponent(var1, this.blockStateComponentType);
if (var6 != null) {
if (Teleporter.validateWarp(var3, var5, var6) == Teleporter.ValidationResult.VALID) {
TeleportPlugin.get().removeWarp(var5.getOwnedWarp());
}
var5.setOwnedWarp(null);
}
}
}
}
@Nonnull
@Override
class="kw">public Query<ChunkStore> getQuery() {
class="kw">return this.query;
}
}
}