Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.jackcrawf3.plugins.lavapoolmagic;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import java.util.logging.Logger;
- import lib.PatPeter.SQLibrary.MySQL;
- import net.minecraft.server.EntityPlayer;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Effect;
- import org.bukkit.Material;
- import org.bukkit.block.Block;
- import org.bukkit.block.BlockFace;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.entity.Snowball;
- import org.bukkit.event.Event;
- import org.bukkit.event.Event.Priority;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.util.config.Configuration;
- import net.minecraft.server.Packet20NamedEntitySpawn;
- import net.minecraft.server.Packet29DestroyEntity;
- import org.bukkit.craftbukkit.entity.CraftPlayer;
- import org.bukkit.inventory.Inventory;
- public class Lavapoolmagic extends JavaPlugin {
- public void onDisable() {
- // TODO: Place any custom disable code here.
- System.out.println(this + " is now disabled!");
- }
- protected MySQL sql;
- protected static Configuration config;
- private String mysqlServer,mysqlUsername,
- mysqlPassword,mysqlPort;
- public static Logger log;
- protected String mysqlDatabase,mysqlTableInternal,mysqlTableInput;
- private LavaBlockListener blockListener = new LavaBlockListener(this);
- private LavaEntityListener entityListener = new LavaEntityListener(this);
- private LavaPlayerListener playerListener = new LavaPlayerListener(this);
- Map<Integer, String> lastburntby = new HashMap<Integer, String>();
- Map<Integer, String> lasthitby = new HashMap<Integer, String>();
- Map<String, Integer> threehitcombo = new HashMap<String, Integer>();
- Map<Integer, String> whosefireball = new HashMap<Integer, String>();
- Map<Integer, String> whosemeleefireball = new HashMap<Integer, String>();
- Map<Integer, String> whoseflamingarrow = new HashMap<Integer, String>();
- Map<Integer, String> whosesummon = new HashMap<Integer, String>();
- Set<String> canblock = new HashSet<String>();
- Set<String> cantcastfireball = new HashSet<String>();
- public void onEnable() {
- // TODO: Place any custom enable code here, such as registering events
- config = getConfiguration();
- //Set up MySQL
- mysqlServer = config.getString("MySQL.Hostname", "localhost");
- mysqlDatabase = config.getString("MySQL.Database", "test");
- mysqlTableInput = config.getString("MySQL.Tables.SiteInput", "testable");
- mysqlTableInternal = config.getString("MySQL.Tables.Internal", "LavapoolmagicInternal");
- mysqlUsername = config.getString("MySQL.Username", "root");
- mysqlPassword = config.getString("MySQL.Password", "");
- mysqlPort = config.getString("MySQL.PortNumber", "3306");
- sql = new MySQL(log,"Lavapoolmagic ",mysqlServer,mysqlPort,mysqlDatabase,mysqlUsername,mysqlPassword);
- getServer().broadcastMessage(ChatColor.GREEN + "Reload Successful!");
- config.save();
- getServer().getPluginManager().registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Highest, this);
- getServer().getPluginManager().registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Priority.Highest, this);
- getServer().getPluginManager().registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Highest, this);
- getServer().getPluginManager().registerEvent(Event.Type.PROJECTILE_HIT, entityListener, Priority.Highest, this);
- getServer().getPluginManager().registerEvent(Event.Type.ENTITY_TARGET, entityListener, Priority.Normal, this);
- getServer().getPluginManager().registerEvent(Event.Type.ENTITY_COMBUST, entityListener, Priority.Highest, this);
- getServer().getPluginManager().registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this);
- getCommand("level").setExecutor(new LavaCommand(this,0));
- System.out.println(this + " is now enabled!");
- }
- public MySQL getSQL(){return sql;}
- public Configuration getConfig(){return config;}
- public Logger getLogger(){return log;}
- public boolean isProperSkill(String skill){
- boolean isit = false;
- if (skill.toLowerCase().equals("magic"))isit=true;
- if (skill.toLowerCase().equals("combat"))isit=true;
- if (skill.toLowerCase().equals("archery"))isit=true;
- if (skill.toLowerCase().equals("mining"))isit=true;
- if (skill.toLowerCase().equals("athletics"))isit=true;
- if (skill.toLowerCase().equals("woodchopping"))isit=true;
- return isit;
- }
- public void levelcheck(String playername){
- String stats[] = {"mining", "magic", "athletics", "archery", "combat"};
- for (String stat : stats){
- if (getInt("levels." + playername.toLowerCase() + ".exp." + stat, 0)>= (getInt("levels." + playername.toLowerCase() + "." + stat,0)+1)*20){
- getServer().broadcastMessage(ChatColor.AQUA + playername + " has advanced to level " + (getInt("levels." + playername.toLowerCase() + "." + stat, 0)+1) + " " + stat + "!");
- setProperty("levels." + playername.toLowerCase() + "." + stat,getInt("levels." + playername.toLowerCase() + "." + stat, 0)+1);
- setProperty("levels." + playername.toLowerCase() + ".exp." + stat,0);
- }
- }
- return;
- }
- public void refreshName(Player player) {
- EntityPlayer ep = ((CraftPlayer) player).getHandle();
- for (Player p : this.getServer().getOnlinePlayers()) {
- if (p.getLocation().distance(player.getLocation()) < 512 && !p.equals(player)) {
- CraftPlayer one = (CraftPlayer) p;
- one.getHandle().netServerHandler.sendPacket(new Packet29DestroyEntity(((CraftPlayer) player).getEntityId()));
- one.getHandle().netServerHandler.sendPacket(new Packet20NamedEntitySpawn(ep));
- }
- }
- }
- public void castLeft(Player player, PlayerInteractEvent event, ItemStack is, Inventory inventory, Integer slot, String click){
- Block block = player.getTargetBlock(null, getInt("levels." + player.getName() + ".magic", 0)*5);
- Material ingredient = is.getType();
- List nearbyentities = new ArrayList();
- Boolean rightclick = false;
- Boolean leftclick = false;
- if (click.equals("r")){rightclick = true;}else{rightclick = false;}
- if (click.equals("r")){leftclick = true;}else{leftclick = false;}
- if (ingredient==Material.COAL){ //Fireball
- double casttime = 20 - (2*(getInt("levels." + player.getName() + ".magic",0)/10));
- //if (getInt("levels." + player.getName().toLowerCase() + ".magic",0)>=25){
- if (!cantcastfireball.contains(player.getName())||(getInt("levels." + player.getName() + ".magic",0)>=100)){
- Snowball fireball = player.throwSnowball();
- fireball.setFireTicks(2000);
- //SendFakeBlock(Material.LAVA, fireball.getLocation().getBlock(), 5);
- fireball.getWorld().playEffect(fireball.getLocation(), Effect.BOW_FIRE, 1);
- fireball.getWorld().playEffect(fireball.getLocation(), Effect.SMOKE, 4);
- if (player.getInventory().getItem(slot).getAmount()>1){
- player.sendMessage("Test");
- player.getInventory().getItem(slot).setAmount(player.getInventory().getItem(slot).getAmount() - 1);
- }
- else{
- player.getInventory().getItem(slot).setAmount(0);
- player.getInventory().setItem(slot, new ItemStack(Material.AIR));
- player.getInventory().clear(slot);
- }
- player.updateInventory();
- //if (is.getAmount()!=1){player.getInventory().setItem(player.getInventory().getItem(slot).getAmount(), new ItemStack(is.getType(),is.getAmount()));}else{player.getInventory().clear(slot);}
- whosefireball.put(fireball.getEntityId(), player.getName().toLowerCase());
- cantcastfireball.add(player.getName());
- player.getInventory().setItem(slot, is);
- Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new fireballcasttimer(player,this),(int)casttime);
- }
- else{
- String seconds = "seconds";
- if ((int)casttime==20){
- player.sendMessage(ChatColor.RED + "You can only cast this once per second!");
- }
- else{
- player.sendMessage(ChatColor.RED + "You can only cast this once per every " + casttime/20 + " seconds!");
- }
- player.getWorld().playEffect(player.getEyeLocation(), Effect.EXTINGUISH, 1);
- player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, 4);
- }
- }
- else if (ingredient==Material.LOG){ //Quick Fire
- if (getInt("levels." + player.getName().toLowerCase() + ".magic",0)>=25){
- if (block.getLocation().distance(player.getLocation())<(getInt("levels." + player.getName() + ".magic", 0)+10)/2){
- if (is.getAmount()>0){is.setAmount(is.getAmount()-1);}else{inventory.remove(slot);}
- player.getWorld().playEffect(player.getEyeLocation(), Effect.BOW_FIRE, 1);
- player.getWorld().playEffect(player.getEyeLocation(), Effect.SMOKE, 4);
- for (Entity entity : player.getWorld().getEntities()){
- if (entity.getLocation().distance(block.getLocation())<=5)nearbyentities.add(entity);
- }
- for (Object object : nearbyentities){
- if (!object.equals(player)||(player.getLocation().distance(block.getLocation())>5)){
- Entity entity = (Entity) object;
- int fireticks = getInt("levels." + player.getName() + ".magic", 0)+5 * 10;
- entity.setFireTicks(fireticks);
- if (entity instanceof LivingEntity){
- LivingEntity livingentity = (LivingEntity)object;
- lastburntby.put(entity.getEntityId(), player.getName());
- Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new CheckStillBurning(livingentity,this),fireticks);
- }
- }
- }
- int resettime = 25;
- int primaryresettime = 15;
- if (block.getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP),resettime);
- if (block.getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN),resettime);
- if (block.getRelative(BlockFace.NORTH).getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP).getRelative(BlockFace.NORTH),primaryresettime);
- if (block.getRelative(BlockFace.SOUTH).getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP).getRelative(BlockFace.SOUTH),primaryresettime);
- if (block.getRelative(BlockFace.EAST).getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP).getRelative(BlockFace.EAST),primaryresettime);
- if (block.getRelative(BlockFace.WEST).getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP).getRelative(BlockFace.WEST),primaryresettime);
- if (block.getRelative(BlockFace.NORTH).getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN).getRelative(BlockFace.NORTH),primaryresettime);
- if (block.getRelative(BlockFace.SOUTH).getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN).getRelative(BlockFace.SOUTH),primaryresettime);
- if (block.getRelative(BlockFace.EAST).getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN).getRelative(BlockFace.EAST),primaryresettime);
- if (block.getRelative(BlockFace.WEST).getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN).getRelative(BlockFace.WEST),primaryresettime);
- if (block.getRelative(BlockFace.NORTH).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.NORTH),primaryresettime);
- if (block.getRelative(BlockFace.SOUTH).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.SOUTH),primaryresettime);
- if (block.getRelative(BlockFace.EAST).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.EAST),primaryresettime);
- if (block.getRelative(BlockFace.WEST).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.WEST),primaryresettime);
- if (block.isEmpty())SendFakeBlock(Material.FIRE, block,resettime);
- }else{
- player.getWorld().playEffect(player.getEyeLocation(), Effect.EXTINGUISH, 1);
- player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, 4);
- }
- }else{player.sendMessage(ChatColor.RED + "You aren't a high enough level for " + ChatColor.DARK_RED + "Quick Fire" + ChatColor.RED + "!");
- player.getWorld().playEffect(player.getEyeLocation(), Effect.EXTINGUISH, 1);
- player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, 4);
- }
- }
- /* else if (ingredient==Material.INK_SACK){
- if (is.getAmount()>0){is.setAmount(is.getAmount()-1);}else{inventory.remove(slot);}
- //playerhide(player,300);
- }
- else if (ingredient==Material.APPLE){
- }*/
- else{
- player.sendMessage(ChatColor.RED + "Put the ingredient in the slot to the left/right of the stick.");
- player.getWorld().playEffect(player.getEyeLocation(), Effect.EXTINGUISH, 1);
- player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, 4);
- }
- return;
- }
- void SendFakeBlock(Material material, Block block, int time){
- for (Player player : getServer().getOnlinePlayers()){
- Byte bitey = 0x00;
- player.sendBlockChange(block.getLocation(), material, bitey);
- Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new ReloadBlock(block, getServer()),time);
- }
- return;
- }
- void setProperty(String string, Object inty)
- {
- org.bukkit.util.config.Configuration configuration = getConfig();
- configuration.load();
- configuration.setProperty(string.toLowerCase(), inty);
- configuration.save();
- return;
- }
- int getInt(String string, int inty)
- {
- org.bukkit.util.config.Configuration configuration = getConfig();
- configuration.load();
- return configuration.getInt(string.toLowerCase(),inty);
- }
- /*public void playerhide(Player player, Integer time) {
- for (Player onlinePlayer : getServer().getOnlinePlayers()) {
- if (onlinePlayer.equals(player) || player.getLocation().distanceSquared(onlinePlayer.getLocation()) > 16000)
- ((CraftPlayer) onlinePlayer).getHandle().netServerHandler.sendPacket(new Packet29DestroyEntity(((CraftPlayer) player).getEntityId()));
- }
- player.sendMessage(ChatColor.AQUA + "You're now Hidden!");
- Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new StopHiding(player,this),time);
- }
- public void playerappear(Player player){
- for (Player p : getServer().getOnlinePlayers()){
- if (p!=player)((CraftPlayer)p).getHandle().netServerHandler.sendPacket(new Packet20NamedEntitySpawn((EntityHuman) ((CraftPlayer)player).getHandle()));
- }
- player.sendMessage(ChatColor.AQUA + "You're now Visible!");*/
- }
- //}
Add Comment
Please, Sign In to add comment