89 lines
2.8 KiB
Java
89 lines
2.8 KiB
Java
package me.xginko.villageroptimizer.events;
|
|
|
|
import me.xginko.villageroptimizer.WrappedVillager;
|
|
import me.xginko.villageroptimizer.enums.OptimizationType;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.Cancellable;
|
|
import org.bukkit.event.Event;
|
|
import org.bukkit.event.HandlerList;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
public class VillagerOptimizeEvent extends Event implements Cancellable {
|
|
|
|
private static final @NotNull HandlerList handlers = new HandlerList();
|
|
private final @NotNull WrappedVillager wrappedVillager;
|
|
private @NotNull OptimizationType optimizationType;
|
|
private final @Nullable Player whoOptimised;
|
|
private boolean isCancelled = false;
|
|
|
|
public VillagerOptimizeEvent(
|
|
@NotNull WrappedVillager wrappedVillager,
|
|
@NotNull OptimizationType optimizationType,
|
|
@Nullable Player whoOptimised,
|
|
boolean isAsync
|
|
) throws IllegalArgumentException {
|
|
super(isAsync);
|
|
this.wrappedVillager = wrappedVillager;
|
|
this.whoOptimised = whoOptimised;
|
|
if (optimizationType.equals(OptimizationType.NONE)) {
|
|
throw new IllegalArgumentException("OptimizationType can't be NONE.");
|
|
} else {
|
|
this.optimizationType = optimizationType;
|
|
}
|
|
}
|
|
|
|
public VillagerOptimizeEvent(
|
|
@NotNull WrappedVillager wrappedVillager,
|
|
@NotNull OptimizationType optimizationType,
|
|
@Nullable Player whoOptimised
|
|
) throws IllegalArgumentException {
|
|
this.wrappedVillager = wrappedVillager;
|
|
this.whoOptimised = whoOptimised;
|
|
if (optimizationType.equals(OptimizationType.NONE)) {
|
|
throw new IllegalArgumentException("OptimizationType can't be NONE.");
|
|
} else {
|
|
this.optimizationType = optimizationType;
|
|
}
|
|
}
|
|
|
|
public @NotNull WrappedVillager getWrappedVillager() {
|
|
return wrappedVillager;
|
|
}
|
|
|
|
public @NotNull OptimizationType getOptimizationType() {
|
|
return optimizationType;
|
|
}
|
|
|
|
public void setOptimizationType(@NotNull OptimizationType optimizationType) throws IllegalArgumentException {
|
|
if (optimizationType.equals(OptimizationType.NONE)) {
|
|
throw new IllegalArgumentException("OptimizationType can't be NONE.");
|
|
} else {
|
|
this.optimizationType = optimizationType;
|
|
}
|
|
}
|
|
|
|
public @Nullable Player getWhoOptimised() {
|
|
return whoOptimised;
|
|
}
|
|
|
|
@Override
|
|
public void setCancelled(boolean cancel) {
|
|
isCancelled = cancel;
|
|
}
|
|
|
|
@Override
|
|
public boolean isCancelled() {
|
|
return isCancelled;
|
|
}
|
|
|
|
@Override
|
|
public @NotNull HandlerList getHandlers() {
|
|
return handlers;
|
|
}
|
|
|
|
public static HandlerList getHandlerList() {
|
|
return handlers;
|
|
}
|
|
}
|