= 创作分享 =
编程开发
通过拦截事件实现玩家手持特定物品不死并反伤 ...
爱编程的叶一笑

通过拦截事件实现玩家手持特定物品不死并反伤

650 5
@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();
                        }
        }

发表于 2022-5-17 19:16:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 5 条回复!
3.14159265358979
本帖最后由 000001912w 于 2023-7-18 17:44 编辑

[已编辑]
azaz
azzz
eee
zaza
zzza
发表于 2023-1-30 09:25:17 | 只看该作者

回复 | 举报

3.14159265358979
本帖最后由 000001912w 于 2023-7-18 17:44 编辑

[已编辑]
azaz
azzz
eee
zaza
zzza
发表于 2023-1-30 09:25:44 | 只看该作者

回复 | 举报

爱编程的叶一笑
本帖最后由 QQ酱117871 于 2023-7-18 17:59 编辑
000001912w 发表于 2023-1-30 09:25
[不知道ta说了什么]

[[[已经编辑]]]

评分

参与人数 1RF +3 收起 理由
000001912w + 3 干得漂亮

查看全部评分

发表于 2023-7-18 17:17:10 | 只看该作者

回复 | 举报

3.14159265358979
本帖最后由 000001912w 于 2023-7-18 18:46 编辑

当时的我魔怔了,就当我没说过那句话
azaz
azzz
eee
zaza
zzza
发表于 2023-7-18 17:43:13 | 只看该作者

回复 | 举报

3.14159265358979
本帖最后由 000001912w 于 2023-7-18 18:48 编辑

你可以编辑一下你的评论吗?我不想让其它人看到我的逆天发言
azaz
azzz
eee
zaza
zzza
发表于 2023-7-18 17:49:56 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表