#1100: Add methods to get sounds from entities

By: Parker Hawke <hawkeboyz2@hotmail.com>
This commit is contained in:
CraftBukkit/Spigot
2022-09-11 22:24:15 +10:00
parent 803175b864
commit d41367ee6d
7 changed files with 215 additions and 76 deletions

View File

@@ -15,6 +15,7 @@ import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.server.level.PlayerChunkMap;
import net.minecraft.server.level.WorldServer;
import net.minecraft.sounds.SoundEffect;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityAreaEffectCloud;
@@ -162,10 +163,12 @@ import net.minecraft.world.phys.AxisAlignedBB;
import org.bukkit.EntityEffect;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.Sound;
import org.bukkit.World;
import org.bukkit.block.BlockFace;
import org.bukkit.block.PistonMoveReaction;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftSound;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer;
@@ -757,6 +760,21 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
}
@Override
public Sound getSwimSound() {
return CraftSound.getBukkit(getHandle().getSwimSound0());
}
@Override
public Sound getSwimSplashSound() {
return CraftSound.getBukkit(getHandle().getSwimSplashSound0());
}
@Override
public Sound getSwimHighSpeedSplashSound() {
return CraftSound.getBukkit(getHandle().getSwimHighSpeedSplashSound0());
}
public void setHandle(final Entity entity) {
this.entity = entity;
}

View File

@@ -8,6 +8,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import net.minecraft.sounds.SoundEffect;
import net.minecraft.world.EnumHand;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.effect.MobEffect;
@@ -43,10 +44,12 @@ import org.apache.commons.lang.Validate;
import org.bukkit.FluidCollisionMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftSound;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.entity.memory.CraftMemoryKey;
import org.bukkit.craftbukkit.entity.memory.CraftMemoryMapper;
@@ -697,6 +700,45 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
getHandle().getBrain().setMemory(CraftMemoryKey.fromMemoryKey(memoryKey), CraftMemoryMapper.toNms(t));
}
@Override
public Sound getHurtSound() {
SoundEffect sound = getHandle().getHurtSound0(DamageSource.GENERIC);
return (sound != null) ? CraftSound.getBukkit(sound) : null;
}
@Override
public Sound getDeathSound() {
SoundEffect sound = getHandle().getDeathSound0();
return (sound != null) ? CraftSound.getBukkit(sound) : null;
}
@Override
public Sound getFallDamageSound(int fallHeight) {
return CraftSound.getBukkit(getHandle().getFallDamageSound0(fallHeight));
}
@Override
public Sound getFallDamageSoundSmall() {
return CraftSound.getBukkit(getHandle().getFallSounds().small());
}
@Override
public Sound getFallDamageSoundBig() {
return CraftSound.getBukkit(getHandle().getFallSounds().big());
}
@Override
public Sound getDrinkingSound(ItemStack itemStack) {
Preconditions.checkArgument(itemStack != null, "itemStack must not be null");
return CraftSound.getBukkit(getHandle().getDrinkingSound0(CraftItemStack.asNMSCopy(itemStack)));
}
@Override
public Sound getEatingSound(ItemStack itemStack) {
Preconditions.checkArgument(itemStack != null, "itemStack must not be null");
return CraftSound.getBukkit(getHandle().getEatingSound0(CraftItemStack.asNMSCopy(itemStack)));
}
@Override
public boolean canBreatheUnderwater() {
return getHandle().canBreatheUnderwater();

View File

@@ -1,11 +1,13 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.resources.MinecraftKey;
import net.minecraft.sounds.SoundEffect;
import net.minecraft.world.entity.EntityInsentient;
import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey;
import org.bukkit.Sound;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftSound;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Mob;
@@ -45,6 +47,12 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
return getHandle().aware;
}
@Override
public Sound getAmbientSound() {
SoundEffect sound = getHandle().getAmbientSound0();
return (sound != null) ? CraftSound.getBukkit(sound) : null;
}
@Override
public EntityInsentient getHandle() {
return (EntityInsentient) entity;

View File

@@ -3,8 +3,10 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.core.BlockPosition;
import net.minecraft.world.entity.raid.EntityRaider;
import org.bukkit.Sound;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftSound;
import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.entity.Raider;
@@ -59,4 +61,9 @@ public abstract class CraftRaider extends CraftMonster implements Raider {
public void setCanJoinRaid(boolean join) {
getHandle().setCanJoinRaid(join);
}
@Override
public Sound getCelebrationSound() {
return CraftSound.getBukkit(getHandle().getCelebrateSound());
}
}