package org.ultralogger.logger;
import java.util.HashMap;
import org.bukkit.event.block.*;
import org.bukkit.event.enchantment.EnchantItemEvent;
import org.bukkit.event.entity.*;
import org.bukkit.event.inventory.*;
import org.bukkit.event.player.*;
import org.bukkit.event.vehicle.*;
import org.bukkit.event.weather.*;
import org.bukkit.event.world.*;
@SuppressWarnings("rawtypes")
public class EventManager {
public static boolean isEnabled(Class clas, String events){
if(events==null || clas==null)
return false;
HashMap<Integer, Class> eventList = getEvents();
if(events.startsWith("+"))
events=events.substring(1);
if(!events.contains("+")){
int id = Integer.parseInt(events);
Class c = eventList.get(id);
if(c == clas)
return true;
else
return false;
}
String[] ids = events.split("\\+");
for( int index =0; index<ids.length; index++){
int id = Integer.parseInt(ids[index]);
Class c = eventList.get(id);
if(c == clas)
return true;
}
return false;
}
public static int getID(Class clas){
HashMap<Integer, Class> eventList = getEvents();
for(int x=0;x<73;x++){
Class test = eventList.get(x);
if(clas==test)
return x;
}
return -1;
}
public static HashMap<Integer, Class> getEvents(){
HashMap<Integer, Class> events = new HashMap<Integer, Class>();
//BLOCK EVENTS (11)
events.put(1, BlockBreakEvent.class);
events.put(2, BlockBurnEvent.class);
events.put(3, BlockDispenseEvent.class);
events.put(4, BlockFadeEvent.class);
events.put(5, BlockFormEvent.class);
events.put(6, BlockGrowEvent.class);
events.put(7, BlockIgniteEvent.class);
events.put(8, BlockPlaceEvent.class);
events.put(9, BlockSpreadEvent.class);
events.put(10, EntityBlockFormEvent.class);
events.put(11, SignChangeEvent.class);
//CRAFT EVENTS (4)
events.put(12, BrewEvent.class);
events.put(13, CraftItemEvent.class);
events.put(14, FurnaceSmeltEvent.class);
events.put(15, EnchantItemEvent.class);
//ENTITY EVENTS (17)
events.put(16, CreatureSpawnEvent.class);
events.put(17, CreeperPowerEvent.class);
events.put(18, EntityBreakDoorEvent.class);
events.put(19, EntityChangeBlockEvent.class);
events.put(20, EntityCombustEvent.class);
events.put(21, EntityCreatePortalEvent.class);
events.put(22, EntityDamageEvent.class);
events.put(23, EntityDeathEvent.class);
events.put(24, EntityExplodeEvent.class);
events.put(25, EntityInteractEvent.class);
events.put(26, EntityPortalEnterEvent.class);
events.put(27, EntityTameEvent.class);
events.put(28, EntityTeleportEvent.class);
events.put(29, ExpBottleEvent.class);
events.put(30, ExplosionPrimeEvent.class);
events.put(31, FoodLevelChangeEvent.class);
events.put(32, ItemSpawnEvent.class);
//INVENTORY EVENTS (3)
events.put(33, InventoryOpenEvent.class);
events.put(34, InventoryCloseEvent.class);
events.put(35, InventoryClickEvent.class);
//PLAYER EVENTS (24)
events.put(36, PlayerLoginEvent.class);
events.put(37, PlayerBedEnterEvent.class);
events.put(38, PlayerBedLeaveEvent.class);
events.put(39, PlayerBucketEmptyEvent.class);
events.put(40, PlayerBucketFillEvent.class);
events.put(41, PlayerChangedWorldEvent.class);
events.put(42, PlayerDropItemEvent.class);
events.put(43, PlayerEggThrowEvent.class);
events.put(44, PlayerExpChangeEvent.class);
events.put(45, PlayerGameModeChangeEvent.class);
events.put(46, PlayerItemBreakEvent.class);
events.put(47, PlayerJoinEvent.class);
events.put(48, PlayerKickEvent.class);
events.put(49, PlayerLevelChangeEvent.class);
events.put(50, PlayerPickupItemEvent.class);
events.put(51, PlayerPortalEvent.class);
events.put(52, PlayerQuitEvent.class);
events.put(53, PlayerRespawnEvent.class);
events.put(54, PlayerTeleportEvent.class);
events.put(55, PlayerToggleFlightEvent.class);
events.put(56, PlayerToggleSneakEvent.class);
events.put(57, PlayerToggleSprintEvent.class);
events.put(58, PlayerDeathEvent.class);
events.put(71, PlayerInteractEvent.class);
events.put(72, PlayerFishEvent.class);
//VEHICLE EVENTS (4)
events.put(59, VehicleCreateEvent.class);
events.put(60, VehicleDestroyEvent.class);
events.put(61, VehicleEnterEvent.class);
events.put(62, VehicleExitEvent.class);
//WEATHER EVENTS (3)
events.put(63, LightningStrikeEvent.class);
events.put(64, ThunderChangeEvent.class);
events.put(65, WeatherChangeEvent.class);
//WORLD EVENTS (3)
events.put(66, PortalCreateEvent.class);
events.put(67, SpawnChangeEvent.class);
events.put(68, StructureGrowEvent.class);
//CHAT EVENTS (2) ( COMMANDS & CHAT MESSAGES )
events.put(69, AsyncPlayerChatEvent.class);
events.put(70, PlayerCommandPreprocessEvent.class);
return events;
}
}