public static void spawnParticle( Location location, ParticleType particleID, boolean force, float offx, float offy, float offz, float speed, int amount, int viewDistance, List<Player> ignorePlayers, int... extra) { if (SurvivalCosmetic.getInstance().isDisableParticles()) return; try { Class<?> packetClass = ReflectionUtil.getNMSClass("PacketPlayOutWorldParticles"); Class<?> enumParticleClass = ReflectionUtil.getNMSClass("EnumParticle"); Constructor<?> packetCons = packetClass.getConstructor(); Object packet = packetCons.newInstance(); ReflectionUtil.setValue( packet, true, "a", enumParticleClass.getEnumConstants()[particleID.id]); ReflectionUtil.setValue(packet, true, "b", (float) location.getX()); ReflectionUtil.setValue(packet, true, "c", (float) location.getY()); ReflectionUtil.setValue(packet, true, "d", (float) location.getZ()); ReflectionUtil.setValue(packet, true, "e", offx); ReflectionUtil.setValue(packet, true, "f", offy); ReflectionUtil.setValue(packet, true, "g", offz); ReflectionUtil.setValue(packet, true, "h", speed); ReflectionUtil.setValue(packet, true, "i", amount); ReflectionUtil.setValue(packet, true, "j", force); ReflectionUtil.setValue(packet, true, "k", extra); Method sendPacket = ReflectionUtil.getNMSClass("PlayerConnection") .getMethod("sendPacket", ReflectionUtil.getNMSClass("Packet")); for (Player player : Bukkit.getOnlinePlayers()) { if (inParticleRange(player, location, viewDistance)) if (!ignorePlayers.contains(player)) sendPacket.invoke(ReflectionUtil.getConnection(player), packet); } } catch (ClassNotFoundException | NoSuchMethodException | InvocationTargetException | IllegalAccessException | InstantiationException | NoSuchFieldException ex) { Bukkit.getConsoleSender() .sendMessage(Messages.ERROR.prefix + "Error doing NMS stuff (with reflection), details:"); ex.printStackTrace(); Bukkit.getPluginManager().disablePlugin(SurvivalCosmetic.getInstance()); } }
public void onEnable() { instance = this; Bukkit.getConsoleSender() .sendMessage( Messages.INFO.prefix + "Creating tables for survival server if they don't already exist..."); try { if (Main.getInstance().debugMsgs) Bukkit.getConsoleSender() .sendMessage(Messages.DEBUG.prefix + "Creating table 'SurvivalKit'..."); Main.getInstance() .getSql() .updateSQL( "CREATE TABLE IF NOT EXISTS`survival`.`survivalkit` ( " + " `ID` BIGINT(20) NOT NULL AUTO_INCREMENT, " + " `UUID` TINYTEXT NOT NULL, " + " `SNOWBALL` BIGINT(20) ZEROFILL, " + " `FIREWORK` BIGINT(20) ZEROFILL, " + " `SIGN` BIGINT(20) ZEROFILL, " + " `FOOD` BIGINT(20) ZEROFILL, " + " `STONE` BIGINT(20) ZEROFILL, " + " `TORCH` BIGINT(20) ZEROFILL, " + " `GOLD` BIGINT(20) ZEROFILL, " + " `FUEL` BIGINT(20) ZEROFILL, " + " `LOG` BIGINT(20) ZEROFILL, " + " `GOLDARMOUR` BIGINT(20) ZEROFILL, " + " `WATER` BIGINT(20) ZEROFILL, " + " `LAVA` BIGINT(20) ZEROFILL, " + " `IRON` BIGINT(20) ZEROFILL, " + " `FARMER` BIGINT(20) ZEROFILL, " + " `IRONARMOUR` BIGINT(20) ZEROFILL, " + " `BUCKET` BIGINT(20) ZEROFILL, " + " `BUFFET` BIGINT(20) ZEROFILL, " + " `BOW` BIGINT(20) ZEROFILL, " + " `DIAMOND` BIGINT(20) ZEROFILL, " + " `PISTON` BIGINT(20) ZEROFILL, " + " `LANDSCAPE` BIGINT(20) ZEROFILL, " + " `DIAMONDARMOUR` BIGINT(20) ZEROFILL, " + " `REDSTONE` BIGINT(20) ZEROFILL, " + " `WOOL` BIGINT(20) ZEROFILL, " + " `ACHIEVEMENT` BIGINT(20) ZEROFILL, " + " `ACHIEVEMENT2` BIGINT(20) ZEROFILL, " + " PRIMARY KEY (`ID`)); "); if (Main.getInstance().debugMsgs) Bukkit.getConsoleSender().sendMessage(Messages.DEBUG.prefix + "Completed!"); } catch (SQLException e) { Bukkit.getConsoleSender() .sendMessage(Messages.ERROR.prefix + "Couldn't create table 'SurvivalKit'! Details:"); e.printStackTrace(); Bukkit.getPluginManager().disablePlugin(instance); return; } Bukkit.getConsoleSender().sendMessage(Messages.INFO.prefix + "Done!"); timeChangePrevention.runTaskTimer(instance, timeChangePrevDelay, timeChangePrevDelay); tabListHeader.runTaskTimer(instance, 20, 20); Bukkit.getPluginManager().registerEvents(new PlayerJoin(), instance); Bukkit.getPluginManager().registerEvents(new PlayerQuit(), instance); Bukkit.getPluginManager().registerEvents(new KitInvClick(), instance); Bukkit.getPluginManager().registerEvents(new PlayerDamage(), instance); Bukkit.getPluginManager().registerEvents(new MobHandle(), instance); Bukkit.getPluginManager().registerEvents(new WeatherChange(), instance); Bukkit.getPluginManager().registerEvents(new ServerListPing(), instance); Bukkit.getPluginManager().registerEvents(new PlayerDeath(), instance); setCmds(); // DISABLE CHEST IN COSMETIC if (Bukkit.getPluginManager().getPlugin("SurvivalCosmetic") != null && Bukkit.getPluginManager().getPlugin("SurvivalCosmetic").isEnabled()) { SurvivalCosmetic.getInstance().setDisableChest(true); } }