MountPlugin class
Пакет: com.hypixel.hytale.builtin.mounts
Файл: com/hypixel/hytale/builtin/mounts/MountPlugin.java
extends: JavaPlugin
Поля (21)
| Модификаторы | Тип | Имя |
|---|---|---|
static |
MountPlugin |
instance |
|
|
instance |
|
ComponentRegistryProxy |
var1 |
|
ComponentType |
var10 |
|
ComponentType |
var11 |
|
ComponentType |
var12 |
|
ResourceType |
var13 |
|
ComponentType |
var2 |
|
ComponentType |
var3 |
|
int |
var3 |
|
Ref |
var3 |
|
NPCEntity |
var3 |
|
PlayerRef |
var3 |
|
ComponentType |
var4 |
|
NPCMountComponent |
var4 |
|
MovementManager |
var4 |
|
ComponentType |
var5 |
|
ComponentType |
var6 |
|
ComponentType |
var7 |
|
ComponentType |
var8 |
|
ComponentType |
var9 |
Методы (20)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
UnsupportedOperationExceptionthrow new UnsupportedOperationException("Mounted component cannot be default constructed") |
static |
void |
checkDismountNpcvoid checkDismountNpc(@Nonnull ComponentAccessor<EntityStore> var0, @Nonnull Ref<EntityStore> var1, @Nonnull Player var2) |
static |
void |
dismountNpcvoid dismountNpc(@Nonnull ComponentAccessor<EntityStore> var0, @Nonnull Ref<EntityStore> var1, int var2) |
abstract |
|
dismountNpc dismountNpc(var0, var1, var3) |
public |
ComponentType<ChunkStore, BlockMountComponent> |
getBlockMountComponentTypeComponentType<ChunkStore, BlockMountComponent> getBlockMountComponentType() |
static |
MountPlugin |
getInstanceMountPlugin getInstance() |
public |
ComponentType<EntityStore, MinecartComponent> |
getMinecartComponentTypeComponentType<EntityStore, MinecartComponent> getMinecartComponentType() |
public |
ComponentType<EntityStore, NPCMountComponent> |
getMountComponentTypeComponentType<EntityStore, NPCMountComponent> getMountComponentType() |
public |
ComponentType<EntityStore, MountedByComponent> |
getMountedByComponentTypeComponentType<EntityStore, MountedByComponent> getMountedByComponentType() |
public |
ComponentType<EntityStore, MountedComponent> |
getMountedComponentTypeComponentType<EntityStore, MountedComponent> getMountedComponentType() |
|
|
if if(var3 != 0) |
|
|
if if(var3 != null) |
static |
void |
resetOriginalMountRolevoid resetOriginalMountRole(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull NPCMountComponent var2) |
abstract |
|
resetOriginalMountRole resetOriginalMountRole(var3, var0, var4) |
static |
void |
resetOriginalPlayerMovementSettingsvoid resetOriginalPlayerMovementSettings(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) |
static |
void |
resetOriginalPlayerMovementSettingsvoid resetOriginalPlayerMovementSettings(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, int var2) |
abstract |
|
resetOriginalPlayerMovementSettings resetOriginalPlayerMovementSettings(var1, var0, var2) |
abstract |
|
resetOriginalPlayerMovementSettings resetOriginalPlayerMovementSettings(var1, var0, -1) |
abstract |
|
resetOriginalPlayerMovementSettings resetOriginalPlayerMovementSettings(var0, var1, -1) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.mounts;
class="kw">import com.hypixel.hytale.builtin.mounts.commands.MountCommand;
class="kw">import com.hypixel.hytale.builtin.mounts.interactions.MountInteraction;
class="kw">import com.hypixel.hytale.builtin.mounts.interactions.SeatingInteraction;
class="kw">import com.hypixel.hytale.builtin.mounts.interactions.SpawnMinecartInteraction;
class="kw">import com.hypixel.hytale.builtin.mounts.minecart.MinecartComponent;
class="kw">import com.hypixel.hytale.builtin.mounts.npc.builders.BuilderActionMount;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
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.ResourceType;
class="kw">import com.hypixel.hytale.protocol.packets.interaction.DismountNPC;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.movement.MovementManager;
class="kw">import com.hypixel.hytale.server.core.entity.movement.MovementStatesComponent;
class="kw">import com.hypixel.hytale.server.core.io.ServerManager;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Interactable;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.player.PlayerInput;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.EntityTrackerSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.NetworkId;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
class="kw">import com.hypixel.hytale.server.core.modules.time.TimeResource;
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.prefab.PrefabCopyableComponent;
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 com.hypixel.hytale.server.npc.NPCPlugin;
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">public class MountPlugin class="kw">extends JavaPlugin {
class="kw">private class="kw">static MountPlugin instance;
class="kw">private ComponentType<ChunkStore, BlockMountComponent> blockMountComponentType;
class="kw">private ComponentType<EntityStore, NPCMountComponent> mountComponentType;
class="kw">private ComponentType<EntityStore, MountedComponent> mountedComponentType;
class="kw">private ComponentType<EntityStore, MountedByComponent> mountedByComponentType;
class="kw">private ComponentType<EntityStore, MinecartComponent> minecartComponentType;
class="kw">public class="kw">static MountPlugin getInstance() {
class="kw">return instance;
}
class="kw">public MountPlugin(@Nonnull JavaPluginInit var1) {
super(var1);
}
class="kw">public ComponentType<EntityStore, NPCMountComponent> getMountComponentType() {
class="kw">return this.mountComponentType;
}
class="kw">public ComponentType<EntityStore, MountedComponent> getMountedComponentType() {
class="kw">return this.mountedComponentType;
}
class="kw">public ComponentType<EntityStore, MountedByComponent> getMountedByComponentType() {
class="kw">return this.mountedByComponentType;
}
class="kw">public ComponentType<EntityStore, MinecartComponent> getMinecartComponentType() {
class="kw">return this.minecartComponentType;
}
@Override
class="kw">protected void setup() {
ComponentRegistryProxy var1 = this.getEntityStoreRegistry();
instance = this;
this.blockMountComponentType = this.getChunkStoreRegistry().registerComponent(BlockMountComponent.class, BlockMountComponent::new);
NPCPlugin.get().registerCoreComponentType("Mount", BuilderActionMount::new);
this.mountComponentType = var1.registerComponent(NPCMountComponent.class, "Mount", NPCMountComponent.CODEC);
this.mountedComponentType = var1.registerComponent(MountedComponent.class, () -> {
throw new UnsupportedOperationException("Mounted component cannot be class="kw">default constructed");
});
this.mountedByComponentType = var1.registerComponent(MountedByComponent.class, MountedByComponent::new);
this.minecartComponentType = var1.registerComponent(MinecartComponent.class, "Minecart", MinecartComponent.CODEC);
ComponentType var2 = NPCEntity.getComponentType();
ComponentType var3 = NetworkId.getComponentType();
ComponentType var4 = Player.getComponentType();
ComponentType var5 = EntityTrackerSystems.Visible.getComponentType();
ComponentType var6 = PlayerInput.getComponentType();
ComponentType var7 = MovementStatesComponent.getComponentType();
ComponentType var8 = TransformComponent.getComponentType();
ComponentType var9 = Teleport.getComponentType();
ComponentType var10 = DeathComponent.getComponentType();
ComponentType var11 = Interactable.getComponentType();
ComponentType var12 = PrefabCopyableComponent.getComponentType();
ResourceType var13 = TimeResource.getResourceType();
var1.registerSystem(new NPCMountSystems.OnAdd(this.mountComponentType, var2, var3));
var1.registerSystem(new NPCMountSystems.DismountOnPlayerDeath(var4));
var1.registerSystem(new NPCMountSystems.DismountOnPlayerSpectating(var4));
var1.registerSystem(new NPCMountSystems.DismountOnMountDeath(this.mountComponentType));
var1.registerSystem(new NPCMountSystems.OnPlayerRemove(var4));
var1.registerSystem(new MountSystems.TrackerUpdate(var5, this.mountedComponentType));
var1.registerSystem(new MountSystems.TrackerRemove(this.mountedComponentType, var5));
var1.registerSystem(new MountSystems.RemoveMountedBy(this.mountedByComponentType, this.mountedComponentType));
var1.registerSystem(new MountSystems.RemoveMounted(this.mountedComponentType));
var1.registerSystem(new MountSystems.RemoveMountedHolder(this.mountedComponentType));
var1.registerSystem(new MountSystems.TeleportMountedEntity(this.mountedComponentType, var9));
var1.registerSystem(new MountSystems.MountedEntityDeath(this.mountedComponentType, var10));
var1.registerSystem(new MountSystems.MountedEntitySpectating(this.mountedComponentType));
var1.registerSystem(new MountSystems.PlayerMount(this.mountedComponentType, var6, var3));
var1.registerSystem(new MountSystems.HandleMountInput(this.mountedComponentType, var6, var7, var8));
var1.registerSystem(new MountSystems.TrackedMounted(this.mountedComponentType, this.mountedByComponentType));
var1.registerSystem(new MountSystems.EnsureMinecartComponents(this.minecartComponentType, var11, var3, var12));
var1.registerSystem(new MountSystems.OnMinecartHit(this.minecartComponentType, var8, var4, var13));
this.getChunkStoreRegistry().registerSystem(new MountSystems.RemoveBlockSeat(this.blockMountComponentType, this.mountedComponentType));
ServerManager.get().registerSubPacketHandlers(MountGamePacketHandler::new);
this.getCommandRegistry().registerCommand(new MountCommand());
Interaction.CODEC.register("SpawnMinecart", SpawnMinecartInteraction.class, SpawnMinecartInteraction.CODEC);
Interaction.CODEC.register("Mount", MountInteraction.class, MountInteraction.CODEC);
Interaction.CODEC.register("Seating", SeatingInteraction.class, SeatingInteraction.CODEC);
}
class="kw">public ComponentType<ChunkStore, BlockMountComponent> getBlockMountComponentType() {
class="kw">return this.blockMountComponentType;
}
class="kw">public class="kw">static void checkDismountNpc(@Nonnull ComponentAccessor<EntityStore> var0, @Nonnull Ref<EntityStore> var1, @Nonnull Player var2) {
int var3 = var2.getMountEntityId();
if (var3 != 0) {
var2.setMountEntityId(0);
dismountNpc(var0, var1, var3);
}
}
class="kw">private class="kw">static void dismountNpc(@Nonnull ComponentAccessor<EntityStore> var0, @Nonnull Ref<EntityStore> var1, int var2) {
Ref var3 = var0.getExternalData().getRefFromNetworkId(var2);
if (var3 != null && var3.isValid()) {
NPCMountComponent var4 = var0.getComponent(var3, NPCMountComponent.getComponentType());
assert var4 != null;
resetOriginalMountRole(var3, var0, var4);
resetOriginalPlayerMovementSettings(var1, var0, var2);
} else {
resetOriginalPlayerMovementSettings(var1, var0, -1);
}
}
class="kw">private class="kw">static void resetOriginalMountRole(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull NPCMountComponent var2) {
NPCEntity var3 = var1.getComponent(var0, NPCEntity.getComponentType());
assert var3 != null;
RoleChangeSystem.requestRoleChange(var0, var3.getRole(), var2.getOriginalRoleIndex(), false, "Idle", null, var1);
var1.removeComponent(var0, NPCMountComponent.getComponentType());
}
class="kw">public class="kw">static void resetOriginalPlayerMovementSettings(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
resetOriginalPlayerMovementSettings(var0, var1, -1);
}
class="kw">public class="kw">static void resetOriginalPlayerMovementSettings(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, int var2) {
PlayerRef var3 = var1.getComponent(var0, PlayerRef.getComponentType());
if (var3 != null) {
var3.getPacketHandler().write(new DismountNPC(var2));
MovementManager var4 = var1.getComponent(var0, MovementManager.getComponentType());
assert var4 != null;
var4.resetDefaultsAndUpdate(var0, var1);
}
}
}