Skip to content

Commit

Permalink
EnchantmentLevelSet event.
Browse files Browse the repository at this point in the history
  • Loading branch information
noobanidus committed Mar 7, 2020
1 parent 94f8672 commit c5be1a9
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package crafttweaker.api.event;

import crafttweaker.annotations.ZenRegister;
import crafttweaker.api.item.IItemStack;
import crafttweaker.api.world.IWorld;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;
import stanhebben.zenscript.annotations.ZenSetter;


/**
* @author Noob
*/
@ZenClass("crafttweaker.event.EnchantmentLevelSetEvent")
@ZenRegister
public interface EnchantmentLevelSetEvent extends IEventPositionable {
@ZenGetter("world")
IWorld getWorld();

@ZenGetter("enchantRow")
int getEnchantRow ();

@ZenGetter("power")
int getPower ();

@ZenGetter("item")
IItemStack getItem();

@ZenGetter("originalLevel")
int getOriginalLevel();

@ZenGetter("level")
int getLevel();

@ZenSetter("level")
void setLevel(int level);
}
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,9 @@ public interface IEventManager {

@ZenMethod
IEventHandle onCriticalHit(IEventHandler<CriticalHitEvent> ev);

@ZenMethod
IEventHandle onEnchantmentLevelSet(IEventHandler<EnchantmentLevelSetEvent> ev);
/*
*
* IEventHandle onPlayerChat(IPlayerChatEventHandler ev);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ public void clear() {
elPlayerRightClickBlock.clear();
elAnimalTame.clear();
elFarmlandTrample.clear();
elEnchantmentLevelSet.clear();
}

// ##########################
Expand Down Expand Up @@ -999,4 +1000,23 @@ public boolean hasCriticalHit() {
public void publishCriticalHit (CriticalHitEvent event) {
elCriticalHit.publish(event);
}

// ##################################
// ### EnchantmentLevelSetEvent ###
// ##################################

private final EventList<EnchantmentLevelSetEvent> elEnchantmentLevelSet = new EventList<>();

@Override
public IEventHandle onEnchantmentLevelSet(IEventHandler<EnchantmentLevelSetEvent> ev) {
return elEnchantmentLevelSet.add(ev);
}

public boolean hasEnchantmentLevelSet() {
return elEnchantmentLevelSet.hasHandlers();
}

public void publishEnchantmentLevelSet (EnchantmentLevelSetEvent event) {
elEnchantmentLevelSet.publish(event);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import net.minecraftforge.event.CommandEvent;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.brewing.PlayerBrewedPotionEvent;
import net.minecraftforge.event.enchanting.EnchantmentLevelSetEvent;
import net.minecraftforge.event.entity.EntityStruckByLightningEvent;
import net.minecraftforge.event.entity.item.ItemExpireEvent;
import net.minecraftforge.event.entity.item.ItemTossEvent;
Expand Down Expand Up @@ -459,4 +460,10 @@ public void onCriticalHitEvent(CriticalHitEvent ev) {
if (CrafttweakerImplementationAPI.events.hasCriticalHit())
CrafttweakerImplementationAPI.events.publishCriticalHit(new MCCriticalHitEvent(ev));
}

@SubscribeEvent
public void onEnchantmentLevelSet(EnchantmentLevelSetEvent ev) {
if (CrafttweakerImplementationAPI.events.hasEnchantmentLevelSet())
CrafttweakerImplementationAPI.events.publishEnchantmentLevelSet(new MCEnchantmentLevelSetEvent(ev));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package crafttweaker.mc1120.events.handling;

import crafttweaker.api.event.EnchantmentLevelSetEvent;
import crafttweaker.api.item.IItemStack;
import crafttweaker.api.minecraft.CraftTweakerMC;
import crafttweaker.api.world.IBlockPos;
import crafttweaker.api.world.IWorld;

public class MCEnchantmentLevelSetEvent implements EnchantmentLevelSetEvent {
private net.minecraftforge.event.enchanting.EnchantmentLevelSetEvent event;

public MCEnchantmentLevelSetEvent(net.minecraftforge.event.enchanting.EnchantmentLevelSetEvent event) {
this.event = event;
}

@Override
public IWorld getWorld() {
return CraftTweakerMC.getIWorld(event.getWorld());
}

@Override
public int getEnchantRow() {
return event.getEnchantRow();
}

@Override
public int getPower() {
return event.getPower();
}

@Override
public IItemStack getItem() {
return CraftTweakerMC.getIItemStack(event.getItem());
}

@Override
public int getOriginalLevel() {
return event.getOriginalLevel();
}

@Override
public int getLevel() {
return event.getLevel();
}

@Override
public void setLevel(int level) {
event.setLevel(level);
}

@Override
public IBlockPos getPosition() {
return CraftTweakerMC.getIBlockPos(event.getPos());
}
}

0 comments on commit c5be1a9

Please sign in to comment.