This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
Gestus/src/main/java/com/thebrokenrail/gestus/Gestus.java

40 lines
1.8 KiB
Java

package com.thebrokenrail.gestus;
import com.thebrokenrail.gestus.command.EmoteCommand;
import com.thebrokenrail.gestus.entity.FakePlayerEntity;
import com.thebrokenrail.gestus.util.ServerPlayerEntityExtension;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder;
import net.minecraft.entity.EntityDimensions;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.SpawnGroup;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
public class Gestus implements ModInitializer {
public static final String NAMESPACE = "gestus";
public static final EntityType<FakePlayerEntity> FAKE_PLAYER_ENTITY_TYPE = FabricEntityTypeBuilder.create(SpawnGroup.MISC, (EntityType.EntityFactory<FakePlayerEntity>) FakePlayerEntity::new).disableSaving().disableSummon().dimensions(EntityDimensions.fixed(0f, 0f)).fireImmune().build();
@Override
public void onInitialize() {
Registry.register(Registry.ENTITY_TYPE, new Identifier(NAMESPACE, "fake_player"), FAKE_PLAYER_ENTITY_TYPE);
FabricDefaultAttributeRegistry.register(FAKE_PLAYER_ENTITY_TYPE, LivingEntity.createLivingAttributes());
CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> EmoteCommand.register(dispatcher));
}
/**
* Play Custom Emote
* @param player Player
* @param emote Emote ID
*/
public static void playCustomEmote(ServerPlayerEntity player, Identifier emote) {
((ServerPlayerEntityExtension) player).getShadow().playCustomEmote(emote);
}
}