Skip to content

Commit

Permalink
First in additional events: AnimalTameEvent.
Browse files Browse the repository at this point in the history
  • Loading branch information
noobanidus committed Mar 7, 2020
1 parent d58bf4b commit 53062a8
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 4 deletions.
@@ -0,0 +1,20 @@
package crafttweaker.api.event;

import crafttweaker.annotations.ZenRegister;
import crafttweaker.api.entity.IEntityAnimal;
import crafttweaker.api.player.IPlayer;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;

/**
* @author Noob
*/
@ZenClass("crafttweaker.event.AnimalTameEvent")
@ZenRegister
public interface AnimalTameEvent extends IEventCancelable, IPlayerEvent {
@ZenGetter("animal")
IEntityAnimal getAnimal();

@ZenGetter("tamer")
IPlayer getPlayer();
}
Expand Up @@ -158,7 +158,9 @@ public interface IEventManager {

@ZenMethod
IEventHandle onAllowDespawn(IEventHandler<EntityLivingSpawnEvent> ev);


@ZenMethod
IEventHandle onAnimalTame(IEventHandler<AnimalTameEvent> ev);
/*
*
* IEventHandle onPlayerChat(IPlayerChatEventHandler ev);
Expand Down
Expand Up @@ -51,7 +51,8 @@ public class MTEventManager implements IEventManager {
private final EventList<BlockHarvestDropsEvent> elBlockHarvestDrops = new EventList<>();
private final EventList<PlayerBreakSpeedEvent> elPlayerBreakSpeed = new EventList<>();
private final EventList<PlayerRightClickBlockEvent> elPlayerRightClickBlock = new EventList<>();

private final EventList<AnimalTameEvent> elAnimalTame = new EventList<>();


/**
* Clears all EventLists
Expand Down Expand Up @@ -100,6 +101,7 @@ public void clear() {
elBlockHarvestDrops.clear();
elPlayerBreakSpeed.clear();
elPlayerRightClickBlock.clear();
elAnimalTame.clear();
}

// ##########################
Expand Down Expand Up @@ -942,5 +944,20 @@ public void publishAllowDespawn(EntityLivingSpawnEvent event) {
elAllowDespawn.publish(event);
}


// ########################
// ### AnimalTameEvent ###
// ########################

@Override
public IEventHandle onAnimalTame(IEventHandler<AnimalTameEvent> ev) {
return elAnimalTame.add(ev);
}

public boolean hasAnimalTame() {
return elAnimalTame.hasHandlers();
}

public void publishAnimalTame (AnimalTameEvent event) {
elAnimalTame.publish(event);
}
}
Expand Up @@ -441,5 +441,9 @@ public void onAllowDespawnEvent(LivingSpawnEvent.AllowDespawn ev) {
CrafttweakerImplementationAPI.events.publishAllowDespawn(new MCEntityLivingSpawnEvent(ev));
}


@SubscribeEvent
public void onAnimalTameEvent(AnimalTameEvent ev) {
if (CrafttweakerImplementationAPI.events.hasAnimalTame())
CrafttweakerImplementationAPI.events.publishAnimalTame(new MCAnimalTameEvent(ev));
}
}
@@ -0,0 +1,34 @@
package crafttweaker.mc1120.events.handling;

import crafttweaker.api.entity.IEntityAnimal;
import crafttweaker.api.event.AnimalTameEvent;
import crafttweaker.api.minecraft.CraftTweakerMC;
import crafttweaker.api.player.IPlayer;

public class MCAnimalTameEvent implements AnimalTameEvent {
private final net.minecraftforge.event.entity.living.AnimalTameEvent event;

public MCAnimalTameEvent(net.minecraftforge.event.entity.living.AnimalTameEvent event) {
this.event = event;
}

@Override
public IEntityAnimal getAnimal() {
return CraftTweakerMC.getIEntityAnimal(event.getAnimal());
}

@Override
public IPlayer getPlayer() {
return CraftTweakerMC.getIPlayer(event.getTamer());
}

@Override
public boolean isCanceled() {
return event.isCanceled();
}

@Override
public void setCanceled(boolean canceled) {
event.setCanceled(canceled);
}
}

0 comments on commit 53062a8

Please sign in to comment.