Начинающий
- Статус
- Оффлайн
- Регистрация
- 11 Май 2023
- Сообщения
- 34
- Реакции
- 0
Java:
package im.dambazz1337.eteamsnew.events;
import im.dambazz1337.eteamsnew.Eteamsnew;
import im.dambazz1337.eteamsnew.party.Party;
import im.dambazz1337.eteamsnew.party.PartyManager;
import im.dambazz1337.eteamsnew.quest.Quest;
import im.dambazz1337.eteamsnew.quest.QuestManager;
import net.minecraft.ChatFormatting;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import java.util.List;
@Mod.EventBusSubscriber(modid = Eteamsnew.MODID)
public class MobKillEventHandler {
@SubscribeEvent
public static void onMobKilled(LivingDeathEvent event) {
if (!(event.getSource().getEntity() instanceof ServerPlayer player)) {
return;
}
LivingEntity mob = event.getEntity();
String mobId = getEntityId(mob);
if (mobId == null) {
return;
}
List<Quest> activeQuests = QuestManager.getActiveQuests(player);
if (activeQuests.isEmpty()) {
return;
}
CommandSourceStack source = player.createCommandSourceStack();
for (Quest quest : activeQuests) {
if (quest.getGoals().containsKey(mobId)) {
quest.incrementProgress(mobId, source, player.getUUID());
}
}
}
private static String getEntityId(LivingEntity entity) {
ResourceLocation key = EntityType.getKey(entity.getType());
if (key != null) {
return key.toString();
}
return entity.getEncodeId();
}
}
в общем, не понимаю как сделать чтобы оно получало убийство модового моба, обычных нормально засчитывает а модовых нет