Files
Wizardry/src/main/java/electroblob/wizardry/event/DiscoverSpellEvent.java
T
Electroblob77 f37812be3e That's one heck of a commit you've got there...
I may have got a bit behind with version control. A lot behind, in fact. Maybe I'll go back and split this sometime - then again, I probably won't. But hey, at least it's here!
2019-08-18 00:04:18 +01:00

72 lines
2.0 KiB
Java

package electroblob.wizardry.event;
import electroblob.wizardry.spell.Spell;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.fml.common.eventhandler.Cancelable;
import javax.annotation.Nullable;
/**
* DiscoverSpellEvent is fired when a player discovers a spell by any method.<br>
* <br>
* This event is {@link Cancelable}. If this event is canceled, the spell is not discovered.<br>
* <br>
* This event does not have a result. {@link HasResult}<br>
* <br>
* This event is fired on the {@link MinecraftForge#EVENT_BUS}.
*
* @author Electroblob
* @since Wizardry 2.1
*/
public class DiscoverSpellEvent extends PlayerEvent {
private final Spell spell;
private final Source source;
public DiscoverSpellEvent(EntityPlayer player, Spell spell, Source source){
super(player);
this.spell = spell;
this.source = source;
}
/** Returns the spell that is being discovered. */
public Spell getSpell(){
return spell;
}
/** Returns the method used to discover the spell. */
public Source getSource(){
return source;
}
public enum Source {
/** Signifies that the spell was discovered by trying to cast it. */
CASTING("casting"),
/** Signifies that the spell was discovered using a scroll of identification. */
IDENTIFICATION_SCROLL("identification_scroll"),
/** Signifies that the spell was discovered using commands. */
COMMAND("command"),
/** Signifies that the spell was discovered by purchasing it from a wizard. */
PURCHASE("purchase"),
/** Signifies that the spell was discovered by some other means. */
OTHER("other");
String name;
Source(String name){
this.name = name;
}
/** Returns the spell discovery source with the given name, or null if no such source exists. */
@Nullable
public static Source byName(String name){
for(Source source : values()){
if(source.name.equals(name)) return source;
}
return null;
}
}
}