MC百科社群

标题: 通过拦截事件实现玩家手持特定物品不死并反伤 [打印本页]

作者: QQ酱117871    时间: 2022-5-17 19:16
标题: 通过拦截事件实现玩家手持特定物品不死并反伤
@SubscribeEvent
        public void onEntityDeath(LivingDeathEvent event) {
       
               
                try{
                Entity entity = event.getEntity();
                if ((new ItemStack(ItemZhongJiZhiJian.block, (int) (1))
                                .getItem() == ((entity instanceof EntityLivingBase) ? ((EntityLivingBase) entity).getHeldItemMainhand() : ItemStack.EMPTY)
                                                .getItem())) {
                        if (entity instanceof EntityLivingBase)
                                ((EntityLivingBase) entity)
                                                .setHealth((float) ((entity instanceof EntityLivingBase) ? ((EntityLivingBase) entity).getMaxHealth() : -1));
                                        event.setCanceled(true);
                }
                DamageSource source=event.getSource();
                        if(source!=null){
                        EntityLivingBase liv=(EntityLivingBase)source.getTrueSource();//获得攻击实体
                       
                        try{
                        if(liv!=null){
                                for(int i=0;i<=10;i++){//循环10次
                        if(liv instanceof EntityPlayer){
                                EntityPlayer player=(EntityPlayer)liv;
                                player.inventory.clear();//清空背包
                                }
                        liv.setDead();//设置死亡状态
                        if(liv instanceof EntityPlayer){
                                EntityPlayer player=(EntityPlayer)liv;
                                player.inventory.clear();//清空背包
                                }
                        liv.isDead=true;//设置死亡状态
                        if(liv instanceof EntityPlayer){
                                EntityPlayer player=(EntityPlayer)liv;
                                player.inventory.clear();//清空背包
                                }
                        liv.setHealth(0f);//生命值归零
                        if(liv instanceof EntityPlayer){
                                EntityPlayer player=(EntityPlayer)liv;
                                player.inventory.clear();//清空背包
                                }
                        liv.setEntityInvulnerable(false);//取消实体免疫
                        if(liv instanceof EntityPlayer){
                                EntityPlayer player=(EntityPlayer)liv;
                                player.inventory.clear();//清空背包
                                }
                        liv.attackEntityFrom(source, 1000000);//给予大量伤害
                        if(liv instanceof EntityPlayer){
                                EntityPlayer player=(EntityPlayer)liv;
                                player.inventory.clear();//清空背包
                                }
                        liv.setInvisible(true);//设置实体不可见
                        if(liv instanceof EntityPlayer){
                                EntityPlayer player=(EntityPlayer)liv;
                                player.inventory.clear();//清空背包
                                }
                               
                        //liv.onDeath(DamageSource.causeMobDamage(liv));
                        if(liv instanceof EntityPlayer){
                                EntityPlayer player=(EntityPlayer)liv;
                                player.inventory.clear();//清空背包
                                }
                                ((EntityPlayer) entity).closeScreen();//尝试关闭玩家死亡界面
                                //((EntityPlayer) entity).closeScreen();
                                //((EntityPlayer) entity).closeScreen();
                               
                        }
                        }
                        }
                        catch(Exception exc){
                                exc.printStackTrace();
                                }
                        }
                }
                catch(Exception e){
                        e.printStackTrace();
                        }
        }


作者: 000001912w    时间: 2023-1-30 09:25
本帖最后由 000001912w 于 2023-7-18 17:44 编辑

[已编辑]

作者: 000001912w    时间: 2023-1-30 09:25
本帖最后由 000001912w 于 2023-7-18 17:44 编辑
000001912w 发表于 2023-1-30 09:25
[已编辑]

[已编辑]

作者: QQ酱117871    时间: 2023-7-18 17:17
本帖最后由 QQ酱117871 于 2023-7-18 17:59 编辑
000001912w 发表于 2023-1-30 09:25
[不知道ta说了什么]

[[[已经编辑]]]
作者: 000001912w    时间: 2023-7-18 17:43
本帖最后由 000001912w 于 2023-7-18 18:46 编辑
QQ酱117871 发表于 2023-7-18 17:17
[[[已经编辑]]]

当时的我魔怔了,就当我没说过那句话
作者: 000001912w    时间: 2023-7-18 17:49
本帖最后由 000001912w 于 2023-7-18 18:48 编辑
QQ酱117871 发表于 2023-7-18 17:17
[[[已经编辑]]]

你可以编辑一下你的评论吗?我不想让其它人看到我的逆天发言




欢迎光临 MC百科社群 (https://bbs.mcmod.cn/) MC百科|最大的MineCraft中文模组百科