上次@无敌三脚猫 大佬给我写了一份crt的使用物品触发指令的脚本,但是使用后不消耗物品,我现在需要一个使用后消耗物品的代码,需要在这个代码的基础上作出修改
复制代码
- import crafttweaker.api.world.ServerLevel;
- import crafttweaker.api.events.CTEventManager;
- import crafttweaker.api.data.MapData;
- import crafttweaker.api.event.entity.player.interact.PlayerInteractEvent;
- import crafttweaker.api.event.entity.player.interact.RightClickItemEvent;
- import crafttweaker.api.event.entity.player.interact.RightClickBlockEvent;
- public function itemInteract(e:PlayerInteractEvent):void{
- val player=e.player;
- val world=player.level;
- val item=e.itemStack;
- if(!world.isClientSide&&item.definition==<item:minecraft:fern>.definition&&item.hoverName.contents=="我是个苹果"){
- val tag=new MapData(item.tag.getAt("display").asMap());
- if(tag.contains("Lore")&&"我真的是苹果" in tag.getAt("Lore").getString()){
- (world as ServerLevel).server.executeCommand("give "+player.name.contents+" apple",true);
- e.cancellationResult=<constant:minecraft:world/interactionresult:success>;
- e.cancel();
- }
- }
- }
- CTEventManager.register<RightClickItemEvent>((e)=>{itemInteract(e);});
- CTEventManager.register<RightClickBlockEvent>((e)=>{itemInteract(e);});
在上次的帖子里你就可以问的
在e.cancel();的后面(前面也可以)加一行复制代码就好
在e.cancel();的后面(前面也可以)加一行
- player.setItemInHand(e.hand,item.shrink(1));