Guest User

Untitled

a guest
Dec 25th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.58 KB | None | 0 0
  1. package me.jackcrawf3.plugins.lavapoolmagic;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.HashSet;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.Set;
  9. import java.util.logging.Logger;
  10. import lib.PatPeter.SQLibrary.MySQL;
  11. import net.minecraft.server.EntityPlayer;
  12. import org.bukkit.Bukkit;
  13. import org.bukkit.ChatColor;
  14. import org.bukkit.Effect;
  15. import org.bukkit.Material;
  16. import org.bukkit.block.Block;
  17. import org.bukkit.block.BlockFace;
  18. import org.bukkit.entity.Entity;
  19. import org.bukkit.entity.LivingEntity;
  20. import org.bukkit.entity.Player;
  21. import org.bukkit.entity.Snowball;
  22. import org.bukkit.event.Event;
  23. import org.bukkit.event.Event.Priority;
  24. import org.bukkit.event.player.PlayerInteractEvent;
  25. import org.bukkit.inventory.ItemStack;
  26. import org.bukkit.plugin.java.JavaPlugin;
  27. import org.bukkit.util.config.Configuration;
  28.  
  29. import net.minecraft.server.Packet20NamedEntitySpawn;
  30. import net.minecraft.server.Packet29DestroyEntity;
  31. import org.bukkit.craftbukkit.entity.CraftPlayer;
  32. import org.bukkit.inventory.Inventory;
  33.  
  34.  
  35. public class Lavapoolmagic extends JavaPlugin {
  36. public void onDisable() {
  37. // TODO: Place any custom disable code here.
  38. System.out.println(this + " is now disabled!");
  39. }
  40.  
  41. protected MySQL sql;
  42. protected static Configuration config;
  43. private String mysqlServer,mysqlUsername,
  44. mysqlPassword,mysqlPort;
  45. public static Logger log;
  46. protected String mysqlDatabase,mysqlTableInternal,mysqlTableInput;
  47. private LavaBlockListener blockListener = new LavaBlockListener(this);
  48. private LavaEntityListener entityListener = new LavaEntityListener(this);
  49. private LavaPlayerListener playerListener = new LavaPlayerListener(this);
  50.  
  51. Map<Integer, String> lastburntby = new HashMap<Integer, String>();
  52. Map<Integer, String> lasthitby = new HashMap<Integer, String>();
  53. Map<String, Integer> threehitcombo = new HashMap<String, Integer>();
  54. Map<Integer, String> whosefireball = new HashMap<Integer, String>();
  55. Map<Integer, String> whosemeleefireball = new HashMap<Integer, String>();
  56. Map<Integer, String> whoseflamingarrow = new HashMap<Integer, String>();
  57. Map<Integer, String> whosesummon = new HashMap<Integer, String>();
  58. Set<String> canblock = new HashSet<String>();
  59. Set<String> cantcastfireball = new HashSet<String>();
  60.  
  61. public void onEnable() {
  62. // TODO: Place any custom enable code here, such as registering events
  63. config = getConfiguration();
  64. //Set up MySQL
  65. mysqlServer = config.getString("MySQL.Hostname", "localhost");
  66. mysqlDatabase = config.getString("MySQL.Database", "test");
  67. mysqlTableInput = config.getString("MySQL.Tables.SiteInput", "testable");
  68. mysqlTableInternal = config.getString("MySQL.Tables.Internal", "LavapoolmagicInternal");
  69. mysqlUsername = config.getString("MySQL.Username", "root");
  70. mysqlPassword = config.getString("MySQL.Password", "");
  71. mysqlPort = config.getString("MySQL.PortNumber", "3306");
  72. sql = new MySQL(log,"Lavapoolmagic ",mysqlServer,mysqlPort,mysqlDatabase,mysqlUsername,mysqlPassword);
  73. getServer().broadcastMessage(ChatColor.GREEN + "Reload Successful!");
  74.  
  75. config.save();
  76.  
  77.  
  78.  
  79. getServer().getPluginManager().registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Highest, this);
  80. getServer().getPluginManager().registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Priority.Highest, this);
  81. getServer().getPluginManager().registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Highest, this);
  82. getServer().getPluginManager().registerEvent(Event.Type.PROJECTILE_HIT, entityListener, Priority.Highest, this);
  83. getServer().getPluginManager().registerEvent(Event.Type.ENTITY_TARGET, entityListener, Priority.Normal, this);
  84. getServer().getPluginManager().registerEvent(Event.Type.ENTITY_COMBUST, entityListener, Priority.Highest, this);
  85. getServer().getPluginManager().registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this);
  86.  
  87.  
  88.  
  89.  
  90. getCommand("level").setExecutor(new LavaCommand(this,0));
  91. System.out.println(this + " is now enabled!");
  92. }
  93.  
  94. public MySQL getSQL(){return sql;}
  95. public Configuration getConfig(){return config;}
  96. public Logger getLogger(){return log;}
  97.  
  98.  
  99.  
  100. public boolean isProperSkill(String skill){
  101. boolean isit = false;
  102. if (skill.toLowerCase().equals("magic"))isit=true;
  103. if (skill.toLowerCase().equals("combat"))isit=true;
  104. if (skill.toLowerCase().equals("archery"))isit=true;
  105. if (skill.toLowerCase().equals("mining"))isit=true;
  106. if (skill.toLowerCase().equals("athletics"))isit=true;
  107. if (skill.toLowerCase().equals("woodchopping"))isit=true;
  108. return isit;
  109. }
  110.  
  111.  
  112. public void levelcheck(String playername){
  113. String stats[] = {"mining", "magic", "athletics", "archery", "combat"};
  114.  
  115. for (String stat : stats){
  116. if (getInt("levels." + playername.toLowerCase() + ".exp." + stat, 0)>= (getInt("levels." + playername.toLowerCase() + "." + stat,0)+1)*20){
  117. getServer().broadcastMessage(ChatColor.AQUA + playername + " has advanced to level " + (getInt("levels." + playername.toLowerCase() + "." + stat, 0)+1) + " " + stat + "!");
  118. setProperty("levels." + playername.toLowerCase() + "." + stat,getInt("levels." + playername.toLowerCase() + "." + stat, 0)+1);
  119. setProperty("levels." + playername.toLowerCase() + ".exp." + stat,0);
  120. }
  121. }
  122.  
  123.  
  124.  
  125. return;
  126. }
  127.  
  128.  
  129.  
  130. public void refreshName(Player player) {
  131. EntityPlayer ep = ((CraftPlayer) player).getHandle();
  132. for (Player p : this.getServer().getOnlinePlayers()) {
  133. if (p.getLocation().distance(player.getLocation()) < 512 && !p.equals(player)) {
  134. CraftPlayer one = (CraftPlayer) p;
  135. one.getHandle().netServerHandler.sendPacket(new Packet29DestroyEntity(((CraftPlayer) player).getEntityId()));
  136. one.getHandle().netServerHandler.sendPacket(new Packet20NamedEntitySpawn(ep));
  137. }
  138. }
  139. }
  140.  
  141.  
  142. public void castLeft(Player player, PlayerInteractEvent event, ItemStack is, Inventory inventory, Integer slot, String click){
  143.  
  144. Block block = player.getTargetBlock(null, getInt("levels." + player.getName() + ".magic", 0)*5);
  145. Material ingredient = is.getType();
  146. List nearbyentities = new ArrayList();
  147. Boolean rightclick = false;
  148. Boolean leftclick = false;
  149. if (click.equals("r")){rightclick = true;}else{rightclick = false;}
  150. if (click.equals("r")){leftclick = true;}else{leftclick = false;}
  151.  
  152. if (ingredient==Material.COAL){ //Fireball
  153. double casttime = 20 - (2*(getInt("levels." + player.getName() + ".magic",0)/10));
  154. //if (getInt("levels." + player.getName().toLowerCase() + ".magic",0)>=25){
  155. if (!cantcastfireball.contains(player.getName())||(getInt("levels." + player.getName() + ".magic",0)>=100)){
  156. Snowball fireball = player.throwSnowball();
  157. fireball.setFireTicks(2000);
  158. //SendFakeBlock(Material.LAVA, fireball.getLocation().getBlock(), 5);
  159. fireball.getWorld().playEffect(fireball.getLocation(), Effect.BOW_FIRE, 1);
  160. fireball.getWorld().playEffect(fireball.getLocation(), Effect.SMOKE, 4);
  161.  
  162. if (player.getInventory().getItem(slot).getAmount()>1){
  163. player.sendMessage("Test");
  164. player.getInventory().getItem(slot).setAmount(player.getInventory().getItem(slot).getAmount() - 1);
  165. }
  166. else{
  167. player.getInventory().getItem(slot).setAmount(0);
  168. player.getInventory().setItem(slot, new ItemStack(Material.AIR));
  169. player.getInventory().clear(slot);
  170. }
  171. player.updateInventory();
  172. //if (is.getAmount()!=1){player.getInventory().setItem(player.getInventory().getItem(slot).getAmount(), new ItemStack(is.getType(),is.getAmount()));}else{player.getInventory().clear(slot);}
  173. whosefireball.put(fireball.getEntityId(), player.getName().toLowerCase());
  174. cantcastfireball.add(player.getName());
  175. player.getInventory().setItem(slot, is);
  176. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new fireballcasttimer(player,this),(int)casttime);
  177. }
  178. else{
  179. String seconds = "seconds";
  180. if ((int)casttime==20){
  181. player.sendMessage(ChatColor.RED + "You can only cast this once per second!");
  182. }
  183. else{
  184. player.sendMessage(ChatColor.RED + "You can only cast this once per every " + casttime/20 + " seconds!");
  185. }
  186. player.getWorld().playEffect(player.getEyeLocation(), Effect.EXTINGUISH, 1);
  187. player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, 4);
  188. }
  189. }
  190. else if (ingredient==Material.LOG){ //Quick Fire
  191. if (getInt("levels." + player.getName().toLowerCase() + ".magic",0)>=25){
  192. if (block.getLocation().distance(player.getLocation())<(getInt("levels." + player.getName() + ".magic", 0)+10)/2){
  193. if (is.getAmount()>0){is.setAmount(is.getAmount()-1);}else{inventory.remove(slot);}
  194. player.getWorld().playEffect(player.getEyeLocation(), Effect.BOW_FIRE, 1);
  195. player.getWorld().playEffect(player.getEyeLocation(), Effect.SMOKE, 4);
  196. for (Entity entity : player.getWorld().getEntities()){
  197. if (entity.getLocation().distance(block.getLocation())<=5)nearbyentities.add(entity);
  198. }
  199. for (Object object : nearbyentities){
  200. if (!object.equals(player)||(player.getLocation().distance(block.getLocation())>5)){
  201. Entity entity = (Entity) object;
  202. int fireticks = getInt("levels." + player.getName() + ".magic", 0)+5 * 10;
  203. entity.setFireTicks(fireticks);
  204. if (entity instanceof LivingEntity){
  205. LivingEntity livingentity = (LivingEntity)object;
  206. lastburntby.put(entity.getEntityId(), player.getName());
  207. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new CheckStillBurning(livingentity,this),fireticks);
  208. }
  209. }
  210. }
  211. int resettime = 25;
  212. int primaryresettime = 15;
  213. if (block.getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP),resettime);
  214. if (block.getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN),resettime);
  215. if (block.getRelative(BlockFace.NORTH).getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP).getRelative(BlockFace.NORTH),primaryresettime);
  216. if (block.getRelative(BlockFace.SOUTH).getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP).getRelative(BlockFace.SOUTH),primaryresettime);
  217. if (block.getRelative(BlockFace.EAST).getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP).getRelative(BlockFace.EAST),primaryresettime);
  218. if (block.getRelative(BlockFace.WEST).getRelative(BlockFace.UP).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.UP).getRelative(BlockFace.WEST),primaryresettime);
  219. if (block.getRelative(BlockFace.NORTH).getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN).getRelative(BlockFace.NORTH),primaryresettime);
  220. if (block.getRelative(BlockFace.SOUTH).getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN).getRelative(BlockFace.SOUTH),primaryresettime);
  221. if (block.getRelative(BlockFace.EAST).getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN).getRelative(BlockFace.EAST),primaryresettime);
  222. if (block.getRelative(BlockFace.WEST).getRelative(BlockFace.DOWN).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.DOWN).getRelative(BlockFace.WEST),primaryresettime);
  223. if (block.getRelative(BlockFace.NORTH).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.NORTH),primaryresettime);
  224. if (block.getRelative(BlockFace.SOUTH).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.SOUTH),primaryresettime);
  225. if (block.getRelative(BlockFace.EAST).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.EAST),primaryresettime);
  226. if (block.getRelative(BlockFace.WEST).isEmpty())SendFakeBlock(Material.FIRE, block.getRelative(BlockFace.WEST),primaryresettime);
  227. if (block.isEmpty())SendFakeBlock(Material.FIRE, block,resettime);
  228.  
  229. }else{
  230. player.getWorld().playEffect(player.getEyeLocation(), Effect.EXTINGUISH, 1);
  231. player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, 4);
  232. }
  233. }else{player.sendMessage(ChatColor.RED + "You aren't a high enough level for " + ChatColor.DARK_RED + "Quick Fire" + ChatColor.RED + "!");
  234. player.getWorld().playEffect(player.getEyeLocation(), Effect.EXTINGUISH, 1);
  235. player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, 4);
  236. }
  237. }
  238. /* else if (ingredient==Material.INK_SACK){
  239. if (is.getAmount()>0){is.setAmount(is.getAmount()-1);}else{inventory.remove(slot);}
  240. //playerhide(player,300);
  241.  
  242. }
  243. else if (ingredient==Material.APPLE){
  244. }*/
  245. else{
  246. player.sendMessage(ChatColor.RED + "Put the ingredient in the slot to the left/right of the stick.");
  247. player.getWorld().playEffect(player.getEyeLocation(), Effect.EXTINGUISH, 1);
  248. player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, 4);
  249. }
  250.  
  251.  
  252. return;
  253. }
  254.  
  255. void SendFakeBlock(Material material, Block block, int time){
  256. for (Player player : getServer().getOnlinePlayers()){
  257. Byte bitey = 0x00;
  258. player.sendBlockChange(block.getLocation(), material, bitey);
  259. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new ReloadBlock(block, getServer()),time);
  260. }
  261. return;
  262. }
  263.  
  264. void setProperty(String string, Object inty)
  265. {
  266. org.bukkit.util.config.Configuration configuration = getConfig();
  267. configuration.load();
  268. configuration.setProperty(string.toLowerCase(), inty);
  269. configuration.save();
  270. return;
  271. }
  272.  
  273. int getInt(String string, int inty)
  274. {
  275. org.bukkit.util.config.Configuration configuration = getConfig();
  276. configuration.load();
  277. return configuration.getInt(string.toLowerCase(),inty);
  278. }
  279.  
  280.  
  281. /*public void playerhide(Player player, Integer time) {
  282. for (Player onlinePlayer : getServer().getOnlinePlayers()) {
  283. if (onlinePlayer.equals(player) || player.getLocation().distanceSquared(onlinePlayer.getLocation()) > 16000)
  284. ((CraftPlayer) onlinePlayer).getHandle().netServerHandler.sendPacket(new Packet29DestroyEntity(((CraftPlayer) player).getEntityId()));
  285. }
  286. player.sendMessage(ChatColor.AQUA + "You're now Hidden!");
  287. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new StopHiding(player,this),time);
  288. }
  289.  
  290. public void playerappear(Player player){
  291.  
  292. for (Player p : getServer().getOnlinePlayers()){
  293. if (p!=player)((CraftPlayer)p).getHandle().netServerHandler.sendPacket(new Packet20NamedEntitySpawn((EntityHuman) ((CraftPlayer)player).getHandle()));
  294. }
  295. player.sendMessage(ChatColor.AQUA + "You're now Visible!");*/
  296. }
  297.  
  298. //}
Add Comment
Please, Sign In to add comment