GameModeType class
Пакет: com.hypixel.hytale.server.core.asset.type.gamemode
Файл: com/hypixel/hytale/server/core/asset/type/gamemode/GameModeType.java
implements: JsonAssetWithMap<String, DefaultAssetMap<String, GameModeType>>
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
ASSET_STORE |
|
GameModeType |
var1 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
DefaultAssetMap<String, GameModeType> |
getAssetMapDefaultAssetMap<String, GameModeType> getAssetMap() |
public |
String |
getIdString getId() |
|
|
if if(ASSET_STORE == null) |
public |
boolean |
isSpectatorboolean isSpectator() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.gamemode;
class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.AssetKeyValidator;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.AssetStore;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.EnumMapCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.ClientCameraView;
class="kw">import com.hypixel.hytale.protocol.GameMode;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.HudComponent;
class="kw">import com.hypixel.hytale.server.core.asset.type.entityeffect.config.EntityEffect;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.movement.MovementConfig;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.RootInteraction;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class GameModeType class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, GameModeType>> {
@Nonnull
class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, GameModeType> CODEC = AssetBuilderCodec.builder(
GameModeType.class,
GameModeType::new,
Codec.STRING,
(var0, var1) -> var0.id = var1,
var0 -> var0.id,
(var0, var1) -> var0.data = var1,
var0 -> var0.data
)
.appendInherited(
new KeyedCodec<>("InteractionsOnEnter", RootInteraction.CHILD_ASSET_CODEC),
(var0, var1) -> var0.interactionsOnEnter = var1,
var0 -> var0.interactionsOnEnter,
(var0, var1) -> var0.interactionsOnEnter = var1.interactionsOnEnter
)
.addValidatorLate(() -> RootInteraction.VALIDATOR_CACHE.getValidator().late())
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("Spectator", Codec.BOOLEAN),
(var0, var1) -> var0.spectator = var1,
var0 -> var0.spectator,
(var0, var1) -> var0.spectator = var1.spectator
)
.documentation(
"Whether players in this gamemode type are spectators: hidden from non-spectators, ignored by NPCs, unable to pick up items, and able to attach their camera to other players."
)
.add()
.<String>appendInherited(
new KeyedCodec<>("MovementConfigId", Codec.STRING),
(var0, var1) -> var0.movementConfigId = var1,
var0 -> var0.movementConfigId,
(var0, var1) -> var0.movementConfigId = var1.movementConfigId
)
.documentation(
"When set, the named MovementConfig is applied as the player's movement settings on enter, including its Fly. On exit the player's class="kw">default movement settings are restored. When unset the player's movement settings are left unchanged."
)
.addValidatorLate(() -> MovementConfig.VALIDATOR_CACHE.getValidator().late())
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("Flying", Codec.BOOLEAN), (var0, var1) -> var0.flying = var1, var0 -> var0.flying, (var0, var1) -> var0.flying = var1.flying
)
.documentation("When set, forces the player into (or out of) the flying state on enter. When unset the player's flying state is left unchanged.")
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("NoClip", Codec.BOOLEAN), (var0, var1) -> var0.noClip = var1, var0 -> var0.noClip, (var0, var1) -> var0.noClip = var1.noClip
)
.documentation("When set, enables or disables no-clip on enter. When unset the player's no-clip state is left unchanged.")
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("Invulnerable", Codec.BOOLEAN),
(var0, var1) -> var0.invulnerable = var1,
var0 -> var0.invulnerable,
(var0, var1) -> var0.invulnerable = var1.invulnerable
)
.documentation("When set, adds or removes the Invulnerable component on enter. When unset the player's invulnerability is left unchanged.")
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("Intangible", Codec.BOOLEAN),
(var0, var1) -> var0.intangible = var1,
var0 -> var0.intangible,
(var0, var1) -> var0.intangible = var1.intangible
)
.documentation("When set, adds or removes the Intangible component on enter. When unset the player's tangibility is left unchanged.")
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("ItemDrops", Codec.BOOLEAN),
(var0, var1) -> var0.itemDrops = var1,
var0 -> var0.itemDrops,
(var0, var1) -> var0.itemDrops = var1.itemDrops
)
.documentation(
"When set, allows or blocks the player dropping items while this gamemode type is active. When unset the underlying game mode's behavior applies."
)
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("PreventInventoryAccess", Codec.BOOLEAN),
(var0, var1) -> var0.preventInventoryAccess = var1,
var0 -> var0.preventInventoryAccess,
(var0, var1) -> var0.preventInventoryAccess = var1.preventInventoryAccess
)
.documentation(
"When set, blocks or allows the player opening and manipulating their inventory on enter. When unset the player's inventory access is left unchanged."
)
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("PreventEmotes", Codec.BOOLEAN),
(var0, var1) -> var0.preventEmotes = var1,
var0 -> var0.preventEmotes,
(var0, var1) -> var0.preventEmotes = var1.preventEmotes
)
.documentation(
"When set, blocks or allows the player playing emotes on enter, and entering with it set to true stops an emote in progress. When unset the player's emote access is left unchanged."
)
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("TriggerBlocks", Codec.BOOLEAN),
(var0, var1) -> var0.triggerBlocks = var1,
var0 -> var0.triggerBlocks,
(var0, var1) -> var0.triggerBlocks = var1.triggerBlocks
)
.documentation(
"When set, enables or disables the player firing trigger blocks and taking block contact damage on enter. When unset the player's trigger block processing is left unchanged."
)
.add()
.<String>appendInherited(
new KeyedCodec<>("VoiceChannel", Codec.STRING),
(var0, var1) -> var0.voiceChannel = var1,
var0 -> var0.voiceChannel,
(var0, var1) -> var0.voiceChannel = var1.voiceChannel
)
.documentation(
"When set, assigns the player to the named voice channel on enter: their speech is heard only by members of that channel. When unset the player's voice channel is left unchanged."
)
.add()
.<HudComponent[]>appendInherited(
new KeyedCodec<>("HudComponents", new ArrayCodec<>(new EnumCodec<>(HudComponent.class), HudComponent[]::new)),
(var0, var1) -> var0.hudComponents = var1,
var0 -> var0.hudComponents,
(var0, var1) -> var0.hudComponents = var1.hudComponents
)
.documentation("When set, replaces the player's visible HUD components on enter. When unset the player's HUD is left unchanged.")
.add()
.<ClientCameraView>appendInherited(
new KeyedCodec<>("LockedCameraView", new EnumCodec<>(ClientCameraView.class)),
(var0, var1) -> var0.lockedCameraView = var1,
var0 -> var0.lockedCameraView,
(var0, var1) -> var0.lockedCameraView = var1.lockedCameraView
)
.documentation(
"When set to FirstPerson or ThirdPerson, locks the player's camera to that view on enter, disabling the camera view toggle, and resets it on exit. When unset the camera is left unchanged."
)
.addValidator(Validators.notEqual(ClientCameraView.Custom))
.add()
.<String>appendInherited(
new KeyedCodec<>("EntityEffectId", Codec.STRING),
(var0, var1) -> var0.entityEffectId = var1,
var0 -> var0.entityEffectId,
(var0, var1) -> var0.entityEffectId = var1.entityEffectId
)
.documentation(
"When set, an entity effect applied to the player on enter and removed on exit, for example a ghostly spectator look. When unset no effect is applied."
)
.addValidatorLate(() -> EntityEffect.VALIDATOR_CACHE.getValidator().late())
.add()
.<String>appendInherited(
new KeyedCodec<>("DeathScreenMessage", Codec.STRING),
(var0, var1) -> var0.deathScreenMessage = var1,
var0 -> var0.deathScreenMessage,
(var0, var1) -> var0.deathScreenMessage = var1.deathScreenMessage
)
.documentation(
"When set, the death screen shown on dying into this gamemode type displays this localization key as a note, for example a permadeath notice, with a button that dismisses into the type. The screen appears only for deaths that show a death menu. When unset the type is entered silently."
)
.add()
.<Map<InteractionType, String>>appendInherited(
new KeyedCodec<>("InteractionOverrides", new EnumMapCodec<>(InteractionType.class, RootInteraction.CHILD_ASSET_CODEC, false)),
(var0, var1) -> var0.interactionOverrides = var1,
var0 -> var0.interactionOverrides,
(var0, var1) -> var0.interactionOverrides = var1.interactionOverrides
)
.documentation(
"When set, inline root interactions mapped by interaction type, installed into the player's interaction overrides on enter and removed on exit. Lets a gamemode type rebind clicks, for example spectator camera controls, and gate the rest against the held item. When unset the player's interaction overrides are left unchanged."
)
.add()
.<Boolean>appendInherited(
new KeyedCodec<>("OverrideAllInteractions", Codec.BOOLEAN),
(var0, var1) -> var0.overrideAllInteractions = var1,
var0 -> var0.overrideAllInteractions,
(var0, var1) -> var0.overrideAllInteractions = var1.overrideAllInteractions
)
.documentation(
"When true, interaction types the InteractionOverrides map does not bind resolve to no interaction rather than falling through to the held item, so a click can only run an interaction the map declares. When unset the unmapped types fall through as normal."
)
.add()
.build();
class="kw">private class="kw">static AssetStore<String, GameModeType, DefaultAssetMap<String, GameModeType>> ASSET_STORE;
@Nonnull
class="kw">public class="kw">static class="kw">final ValidatorCache<String> VALIDATOR_CACHE = new ValidatorCache<>(new AssetKeyValidator<>(GameModeType::getAssetStore));
class="kw">protected AssetExtraInfo.Data data;
class="kw">protected String id;
class="kw">private String interactionsOnEnter;
class="kw">private boolean spectator;
@Nullable
class="kw">private String movementConfigId;
@Nullable
class="kw">private Boolean flying;
@Nullable
class="kw">private Boolean noClip;
@Nullable
class="kw">private Boolean invulnerable;
@Nullable
class="kw">private Boolean intangible;
@Nullable
class="kw">private Boolean itemDrops;
@Nullable
class="kw">private Boolean preventInventoryAccess;
@Nullable
class="kw">private Boolean preventEmotes;
@Nullable
class="kw">private Boolean triggerBlocks;
@Nullable
class="kw">private String voiceChannel;
@Nullable
class="kw">private HudComponent[] hudComponents;
@Nullable
class="kw">private ClientCameraView lockedCameraView;
@Nullable
class="kw">private String entityEffectId;
@Nullable
class="kw">private String deathScreenMessage;
@Nullable
class="kw">private Map<InteractionType, String> interactionOverrides;
@Nullable
class="kw">private Boolean overrideAllInteractions;
@Nonnull
class="kw">public class="kw">static AssetStore<String, GameModeType, DefaultAssetMap<String, GameModeType>> getAssetStore() {
if (ASSET_STORE == null) {
ASSET_STORE = AssetRegistry.getAssetStore(GameModeType.class);
}
class="kw">return ASSET_STORE;
}
class="kw">public class="kw">static DefaultAssetMap<String, GameModeType> getAssetMap() {
class="kw">return (DefaultAssetMap<String, GameModeType>)getAssetStore().getAssetMap();
}
@Nonnull
class="kw">public class="kw">static GameModeType fromGameMode(@Nonnull GameMode var0) {
GameModeType var1 = (GameModeType)((DefaultAssetMap)getAssetStore().getAssetMap()).getAsset(var0.name());
class="kw">return var1 == null ? new GameModeType() : var1;
}
class="kw">protected GameModeType() {
}
@Nullable
class="kw">public String getInteractionsOnEnter() {
class="kw">return this.interactionsOnEnter;
}
class="kw">public boolean isSpectator() {
class="kw">return this.spectator;
}
@Nullable
class="kw">public String getMovementConfigId() {
class="kw">return this.movementConfigId;
}
@Nullable
class="kw">public Boolean getFlying() {
class="kw">return this.flying;
}
@Nullable
class="kw">public Boolean getNoClip() {
class="kw">return this.noClip;
}
@Nullable
class="kw">public Boolean getInvulnerable() {
class="kw">return this.invulnerable;
}
@Nullable
class="kw">public Boolean getIntangible() {
class="kw">return this.intangible;
}
@Nullable
class="kw">public Boolean getItemDrops() {
class="kw">return this.itemDrops;
}
@Nullable
class="kw">public Boolean getPreventInventoryAccess() {
class="kw">return this.preventInventoryAccess;
}
@Nullable
class="kw">public Boolean getPreventEmotes() {
class="kw">return this.preventEmotes;
}
@Nullable
class="kw">public Boolean getTriggerBlocks() {
class="kw">return this.triggerBlocks;
}
@Nullable
class="kw">public String getVoiceChannel() {
class="kw">return this.voiceChannel;
}
@Nullable
class="kw">public HudComponent[] getHudComponents() {
class="kw">return this.hudComponents;
}
@Nullable
class="kw">public ClientCameraView getLockedCameraView() {
class="kw">return this.lockedCameraView;
}
@Nullable
class="kw">public String getEntityEffectId() {
class="kw">return this.entityEffectId;
}
@Nullable
class="kw">public String getDeathScreenMessage() {
class="kw">return this.deathScreenMessage;
}
@Nullable
class="kw">public Map<InteractionType, String> getInteractionOverrides() {
class="kw">return this.interactionOverrides;
}
@Nullable
class="kw">public Boolean getOverrideAllInteractions() {
class="kw">return this.overrideAllInteractions;
}
class="kw">public String getId() {
class="kw">return this.id;
}
}