OnPlayerRemove class
Пакет: com.hypixel.hytale.builtin.mounts
Файл: com/hypixel/hytale/builtin/mounts/NPCMountSystems.java
extends: RefSystem<EntityStore>
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final ComponentType<EntityStore, Player> |
playerComponentType |
|
Player |
var5 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public void |
onEntityAddedpublic void onEntityAdded(@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4) |
|
public void |
onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.mounts;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
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.protocol.packets.interaction.MountNPC;
class="kw">import com.hypixel.hytale.server.core.asset.type.gamemode.GameModeType;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Interactable;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Spectating;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entity.gamemode.GameModeTypeState;
class="kw">import com.hypixel.hytale.server.core.modules.entity.gamemode.GameModeTypes;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.NetworkId;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.systems.RoleChangeSystem;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class NPCMountSystems {
class="kw">public NPCMountSystems() {
}
class="kw">public class="kw">static class DismountOnMountDeath class="kw">extends DeathSystems.OnDeathSystem {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, NPCMountComponent> npcMountComponentType;
class="kw">public DismountOnMountDeath(@Nonnull ComponentType<EntityStore, NPCMountComponent> var1) {
this.npcMountComponentType = var1;
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.npcMountComponentType;
}
class="kw">public void onComponentAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
NPCMountComponent var5 = var3.getComponent(var1, this.npcMountComponentType);
assert var5 != null;
PlayerRef var6 = var5.getOwnerPlayerRef();
if (var6 != null) {
Ref var7 = var6.getReference();
if (var7 != null && var7.isValid()) {
MountPlugin.resetOriginalPlayerMovementSettings(var7, var3);
}
}
}
}
class="kw">public class="kw">static class DismountOnPlayerDeath class="kw">extends DeathSystems.OnDeathSystem {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType;
class="kw">public DismountOnPlayerDeath(@Nonnull ComponentType<EntityStore, Player> var1) {
this.playerComponentType = var1;
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.playerComponentType;
}
class="kw">public void onComponentAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
Player var5 = var3.getComponent(var1, this.playerComponentType);
assert var5 != null;
MountPlugin.checkDismountNpc(var4, var1, var5);
}
}
class="kw">public class="kw">static class DismountOnPlayerSpectating class="kw">extends RefChangeSystem<EntityStore, Spectating> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType;
class="kw">public DismountOnPlayerSpectating(@Nonnull ComponentType<EntityStore, Player> var1) {
this.playerComponentType = var1;
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.playerComponentType;
}
@Nonnull
@Override
class="kw">public ComponentType<EntityStore, Spectating> componentType() {
class="kw">return Spectating.getComponentType();
}
class="kw">public void onComponentAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull Spectating var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
Player var5 = var3.getComponent(var1, this.playerComponentType);
assert var5 != null;
if (var5.getMountEntityId() != 0) {
MountPlugin.checkDismountNpc(var4, var1, var5);
GameModeType var6 = GameModeTypes.getCurrentType(var1, var4);
if (var6 != null) {
GameModeTypeState.applyMovement(var1, var6, var5, var4);
}
}
}
class="kw">public void onComponentSet(
@Nonnull Ref<EntityStore> var1,
@Nullable Spectating var2,
@Nonnull Spectating var3,
@Nonnull Store<EntityStore> var4,
@Nonnull CommandBuffer<EntityStore> var5
) {
}
class="kw">public void onComponentRemoved(
@Nonnull Ref<EntityStore> var1, @Nonnull Spectating var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
}
}
class="kw">public class="kw">static class OnAdd class="kw">extends RefSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, NPCMountComponent> mountComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, NPCEntity> npcEntityComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, NetworkId> networkIdComponentType;
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query;
class="kw">public OnAdd(
@Nonnull ComponentType<EntityStore, NPCMountComponent> var1,
@Nonnull ComponentType<EntityStore, NPCEntity> var2,
@Nonnull ComponentType<EntityStore, NetworkId> var3
) {
this.mountComponentType = var1;
this.npcEntityComponentType = var2;
this.networkIdComponentType = var3;
this.query = Query.and(var1, var2, var3);
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.query;
}
@Override
class="kw">public void onEntityAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
NPCMountComponent var5 = var3.getComponent(var1, this.mountComponentType);
assert var5 != null;
PlayerRef var6 = var5.getOwnerPlayerRef();
if (var6 == null) {
this.resetOriginalRoleMount(var1, var3, var4, var5);
} else {
NPCEntity var7 = var3.getComponent(var1, this.npcEntityComponentType);
assert var7 != null;
NetworkId var8 = var3.getComponent(var1, this.networkIdComponentType);
assert var8 != null;
int var9 = var8.getId();
MountNPC var10 = new MountNPC(var5.getAnchorX(), var5.getAnchorY(), var5.getAnchorZ(), var9);
Player var11 = var6.getComponent(Player.getComponentType());
if (var11 != null) {
var11.setMountEntityId(var9);
var6.getPacketHandler().write(var10);
var4.removeComponent(var1, Interactable.getComponentType());
}
}
}
class="kw">private void resetOriginalRoleMount(
@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull CommandBuffer<EntityStore> var3, @Nonnull NPCMountComponent var4
) {
NPCEntity var5 = var2.getComponent(var1, this.npcEntityComponentType);
assert var5 != null;
RoleChangeSystem.requestRoleChange(var1, var5.getRole(), var4.getOriginalRoleIndex(), false, "Idle", null, var2);
var3.removeComponent(var1, this.mountComponentType);
var3.ensureComponent(var1, Interactable.getComponentType());
}
@Override
class="kw">public void onEntityRemove(
@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
NPCEntity var5 = var3.getComponent(var1, this.npcEntityComponentType);
assert var5 != null;
if (!var5.getRole().isRoleChangeRequested()) {
NPCMountComponent var6 = var3.getComponent(var1, this.mountComponentType);
assert var6 != null;
PlayerRef var7 = var6.getOwnerPlayerRef();
if (var7 != null) {
Ref var8 = var7.getReference();
if (var8 != null && var8.isValid()) {
MountPlugin.resetOriginalPlayerMovementSettings(var8, var3);
}
}
}
}
}
class="kw">public class="kw">static class OnPlayerRemove class="kw">extends RefSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType;
class="kw">public OnPlayerRemove(@Nonnull ComponentType<EntityStore, Player> var1) {
this.playerComponentType = var1;
}
@Override
class="kw">public void onEntityAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
}
@Override
class="kw">public void onEntityRemove(
@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
Player var5 = var4.getComponent(var1, this.playerComponentType);
assert var5 != null;
MountPlugin.checkDismountNpc(var4, var1, var5);
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.playerComponentType;
}
}
}