use of net.minecraft.entity.monster.MonsterEntity in project minecolonies by Minecolonies.
the class CommandKillMonster method onExecute.
/**
* What happens when the command is executed
*
* @param context the context of the command execution
*/
@Override
public int onExecute(final CommandContext<CommandSource> context) {
entitiesKilled = 0;
context.getSource().getLevel().getEntities().forEach(entity -> {
if (entity instanceof MonsterEntity) {
entity.remove();
entitiesKilled++;
}
});
context.getSource().sendSuccess(new StringTextComponent(entitiesKilled + " entities killed"), true);
return 1;
}
use of net.minecraft.entity.monster.MonsterEntity in project minecolonies by Minecolonies.
the class ColonyPermissionEventHandler method on.
/**
* AttackEntityEvent handler.
* <p>
* Check, if a player tries to attack an entity.. Deny if: - If the attacking happens in the colony - Player is less than officer to the colony.
*
* @param event ItemEntityPickupEvent
*/
@SubscribeEvent
public void on(final AttackEntityEvent event) {
if (event.getTarget() instanceof MonsterEntity) {
return;
}
@NotNull final PlayerEntity player = EntityUtils.getPlayerOfFakePlayer(event.getPlayer(), event.getPlayer().getCommandSenderWorld());
if (MineColonies.getConfig().getServer().enableColonyProtection.get() && colony.isCoordInColony(player.getCommandSenderWorld(), new BlockPos(player.position()))) {
final Permissions perms = colony.getPermissions();
if (event.getTarget() instanceof EntityCitizen) {
final AbstractEntityCitizen citizen = (AbstractEntityCitizen) event.getTarget();
if (citizen.getCitizenJobHandler().getColonyJob() instanceof AbstractJobGuard && perms.hasPermission(event.getPlayer(), Action.GUARDS_ATTACK)) {
return;
}
if (perms.hasPermission(event.getPlayer(), Action.ATTACK_CITIZEN)) {
return;
}
cancelEvent(event, event.getPlayer(), colony, Action.ATTACK_CITIZEN, new BlockPos(event.getTarget().position()));
return;
}
if (!(event.getTarget() instanceof MobEntity) && !perms.hasPermission(event.getPlayer(), Action.ATTACK_ENTITY)) {
cancelEvent(event, event.getPlayer(), colony, Action.ATTACK_ENTITY, new BlockPos(event.getTarget().position()));
}
}
}
use of net.minecraft.entity.monster.MonsterEntity in project Enigmatic-Legacy by Aizistral-Studios.
the class EnigmaticEventHandler method onEntityHurt.
@SubscribeEvent
public void onEntityHurt(LivingHurtEvent event) {
if (event.getEntityLiving() instanceof PlayerEntity & !event.getEntityLiving().world.isRemote) {
PlayerEntity player = (PlayerEntity) event.getEntityLiving();
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.angelBlessing))
if (AngelBlessing.resistanceList.containsKey(event.getSource().damageType))
event.setAmount(event.getAmount() * AngelBlessing.resistanceList.get(event.getSource().damageType));
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.oceanStone)) {
Entity attacker = event.getSource().getTrueSource();
if (attacker instanceof DrownedEntity || attacker instanceof GuardianEntity || attacker instanceof ElderGuardianEntity)
event.setAmount(event.getAmount() * ConfigHandler.OCEAN_STONE_UNDERWATER_CREATURES_RESISTANCE.getValue().asModifierInverted());
}
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.eyeOfNebula))
if (EyeOfNebula.resistanceList.containsKey(event.getSource().damageType))
event.setAmount(event.getAmount() * EyeOfNebula.resistanceList.get(event.getSource().damageType).get());
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.golemHeart))
if (GolemHeart.resistanceList.containsKey(event.getSource().damageType))
event.setAmount(event.getAmount() * GolemHeart.resistanceList.get(event.getSource().damageType).get());
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.voidPearl))
if (VoidPearl.resistanceList.containsKey(event.getSource().damageType))
event.setAmount(event.getAmount() * VoidPearl.resistanceList.get(event.getSource().damageType).get());
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.magmaHeart)) {
// System.out.println("Damage type: " + event.getSource().damageType);
if (event.getSource().getTrueSource() instanceof LivingEntity && MagmaHeart.nemesisList.contains(event.getSource().damageType)) {
LivingEntity attacker = (LivingEntity) event.getSource().getTrueSource();
if (!attacker.isImmuneToFire()) {
attacker.attackEntityFrom(new EntityDamageSource(DamageSource.ON_FIRE.damageType, player), (float) ConfigHandler.BLAZING_CORE_DAMAGE_FEEDBACK.getValue());
attacker.setFire((int) ConfigHandler.BLAZING_CORE_IGNITION_FEEDBACK.getValue());
}
}
}
if (EtheriumArmor.hasShield(player)) {
if (event.getSource().getImmediateSource() instanceof LivingEntity) {
LivingEntity attacker = ((LivingEntity) event.getSource().getTrueSource());
Vector3 vec = Vector3.fromEntityCenter(player).subtract(Vector3.fromEntityCenter(event.getSource().getTrueSource())).normalize();
attacker.knockBack(player, 0.75F, vec.x, vec.y);
player.world.playSound(null, player.getPosition(), EnigmaticLegacy.SHIELD_TRIGGER, SoundCategory.PLAYERS, 1.0F, 0.9F + (float) (Math.random() * 0.1D));
player.world.playSound(null, player.getPosition(), EnigmaticLegacy.SHIELD_TRIGGER, SoundCategory.PLAYERS, 1.0F, 0.9F + (float) (Math.random() * 0.1D));
}
event.setAmount(event.getAmount() * ConfigHandler.ETHERIUM_ARMOR_SHIELD_REDUCTION.getValue().asModifierInverted());
}
} else if (event.getEntityLiving() instanceof MonsterEntity) {
MonsterEntity monster = (MonsterEntity) event.getEntityLiving();
if (event.getSource().getTrueSource() instanceof PlayerEntity) {
PlayerEntity player = (PlayerEntity) event.getSource().getTrueSource();
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.monsterCharm)) {
if (monster.isEntityUndead()) {
event.setAmount(event.getAmount() * ConfigHandler.MONSTER_CHARM_UNDEAD_DAMAGE.getValue().asModifier(true));
} else if (monster.isAggressive() || monster instanceof CreeperEntity) {
if (monster instanceof EndermanEntity || monster instanceof ZombiePigmanEntity || monster instanceof BlazeEntity || monster instanceof GuardianEntity || monster instanceof ElderGuardianEntity || !monster.isNonBoss()) {
} else {
event.setAmount(event.getAmount() * ConfigHandler.MONSTER_CHARM_AGGRESSIVE_DAMAGE.getValue().asModifier(true));
}
}
}
if (monster instanceof CreeperEntity)
monster.setLastAttackedEntity(player);
// TODO Test if required
}
}
if (event.getSource().getTrueSource() instanceof PlayerEntity) {
PlayerEntity player = (PlayerEntity) event.getSource().getTrueSource();
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.voidPearl)) {
event.getEntityLiving().addPotionEffect(new EffectInstance(Effects.WITHER, ConfigHandler.VOID_PEARL_WITHERING_EFFECT_TIME.getValue(), ConfigHandler.VOID_PEARL_WITHERING_EFFECT_LEVEL.getValue(), false, true));
}
}
}
use of net.minecraft.entity.monster.MonsterEntity in project ChocolateQuestRepoured by TeamChocoQuest.
the class TargetUtil method isEnemyCheckingLeaders.
public static boolean isEnemyCheckingLeaders(LivingEntity entity, LivingEntity target) {
LivingEntity leader = getLeaderOrOwnerRecursive(entity);
if (leader instanceof PlayerEntity) {
entity = leader;
}
LivingEntity targetLeader = getLeaderOrOwnerRecursive(target);
if (targetLeader instanceof PlayerEntity) {
target = targetLeader;
}
if (entity == target) {
return false;
}
if (entity instanceof PlayerEntity) {
if (target instanceof PlayerEntity) {
// TODO add coop/pvp mode?
return false;
} else {
LivingEntity temp = entity;
entity = target;
target = temp;
}
}
Faction faction = FactionRegistry.instance(entity).getFactionOf(entity);
if (target instanceof PlayerEntity && faction == FactionRegistry.DUMMY_FACTION) {
if (!(entity instanceof MonsterEntity)) {
return false;
}
} else {
if (!faction.isEnemy(target)) {
return false;
}
}
return true;
}
use of net.minecraft.entity.monster.MonsterEntity in project minecolonies by ldtteam.
the class ColonyPermissionEventHandler method on.
/**
* AttackEntityEvent handler.
* <p>
* Check, if a player tries to attack an entity.. Deny if: - If the attacking happens in the colony - Player is less than officer to the colony.
*
* @param event ItemEntityPickupEvent
*/
@SubscribeEvent
public void on(final AttackEntityEvent event) {
if (event.getTarget() instanceof MonsterEntity) {
return;
}
@NotNull final PlayerEntity player = EntityUtils.getPlayerOfFakePlayer(event.getPlayer(), event.getPlayer().getCommandSenderWorld());
if (MineColonies.getConfig().getServer().enableColonyProtection.get() && colony.isCoordInColony(player.getCommandSenderWorld(), new BlockPos(player.position()))) {
final Permissions perms = colony.getPermissions();
if (event.getTarget() instanceof EntityCitizen) {
final AbstractEntityCitizen citizen = (AbstractEntityCitizen) event.getTarget();
if (citizen.getCitizenJobHandler().getColonyJob() instanceof AbstractJobGuard && perms.hasPermission(event.getPlayer(), Action.GUARDS_ATTACK)) {
return;
}
if (perms.hasPermission(event.getPlayer(), Action.ATTACK_CITIZEN)) {
return;
}
cancelEvent(event, event.getPlayer(), colony, Action.ATTACK_CITIZEN, new BlockPos(event.getTarget().position()));
return;
}
if (!(event.getTarget() instanceof MobEntity) && !perms.hasPermission(event.getPlayer(), Action.ATTACK_ENTITY)) {
cancelEvent(event, event.getPlayer(), colony, Action.ATTACK_ENTITY, new BlockPos(event.getTarget().position()));
}
}
}
Aggregations