PageRenderTime 52ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/src/com/james137137/LolnetWarpSign/LolnetWarpSign.java

https://bitbucket.org/james137137/lolnetwarpsign
Java | 260 lines | 204 code | 48 blank | 8 comment | 33 complexity | cc9e2f85d81098f4aff79eeea19dc170 MD5 | raw file
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package com.james137137.LolnetWarpSign;
  6. import java.io.BufferedReader;
  7. import java.io.File;
  8. import java.io.FileNotFoundException;
  9. import java.io.FileReader;
  10. import java.io.IOException;
  11. import java.util.List;
  12. import java.util.logging.Level;
  13. import java.util.logging.Logger;
  14. import org.bukkit.Bukkit;
  15. import org.bukkit.ChatColor;
  16. import org.bukkit.Location;
  17. import org.bukkit.World;
  18. import org.bukkit.command.Command;
  19. import org.bukkit.command.CommandSender;
  20. import org.bukkit.entity.Player;
  21. import org.bukkit.event.Listener;
  22. import org.bukkit.event.player.PlayerTeleportEvent;
  23. import org.bukkit.plugin.java.JavaPlugin;
  24. import net.milkbowl.vault.economy.Economy;
  25. import org.bukkit.configuration.file.FileConfiguration;
  26. import org.bukkit.plugin.RegisteredServiceProvider;
  27. /**
  28. *
  29. * @author James
  30. */
  31. public class LolnetWarpSign extends JavaPlugin implements Listener {
  32. static final Logger log = Logger.getLogger("Minecraft");
  33. public static Economy economy = null;
  34. private boolean setupEconomy() {
  35. RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
  36. if (economyProvider != null) {
  37. economy = economyProvider.getProvider();
  38. }
  39. return (economy != null);
  40. }
  41. @Override
  42. public void onEnable() {
  43. FileConfiguration config = getConfig();
  44. config.addDefault("WarpSignCost", 1000);
  45. config.addDefault("NewWarpCost", 9000);
  46. config.options().copyDefaults(true);
  47. saveConfig();
  48. if (!setupEconomy()) {
  49. log.warning("[LolnetWarpSign] could not setup the Economy");
  50. }
  51. String version = Bukkit.getServer().getPluginManager().getPlugin(this.getName()).getDescription().getVersion();
  52. log.log(Level.INFO, this.getName() + ":Version {0} enabled", version);
  53. getServer().getPluginManager().registerEvents(new LolnetWarpSignListener(this, economy), this);
  54. }
  55. @Override
  56. public void onDisable() {
  57. log.log(Level.INFO, "{0}: disabled", this.getName());
  58. }
  59. public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) {
  60. String commandName = command.getName().toLowerCase();
  61. String[] trimmedArgs = args;
  62. if (commandName.equalsIgnoreCase("LolnetWarpSign") && sender.hasPermission("LolnetWarpSign.SetPrice")) {
  63. Player player = (Player) sender;
  64. if (args.length < 1) {
  65. sender.sendMessage("please use /LolnetWarpSign [setWarpSignCost,setNewWarpCost] <vaule>");
  66. return true;
  67. }
  68. FileConfiguration config = getConfig();
  69. if (args[0].equalsIgnoreCase("setWarpSignCost")) {
  70. if (args.length == 1) {
  71. player.sendMessage("Cost = $" + config.getInt("WarpSignCost"));
  72. } else {
  73. config.set("WarpSignCost", Integer.parseInt(args[1]));
  74. saveConfig();
  75. player.sendMessage("Cost is now $" + config.getInt("WarpSignCost"));
  76. }
  77. }
  78. if (args[0].equalsIgnoreCase("setNewWarpCost")) {
  79. if (args.length == 1) {
  80. player.sendMessage("Cost = $" + config.getInt("NewWarpCost"));
  81. } else {
  82. config.set("NewWarpCost", Integer.parseInt(args[1]));
  83. saveConfig();
  84. player.sendMessage("Cost is now $" + config.getInt("NewWarpCost"));
  85. }
  86. }
  87. if (args[0].equalsIgnoreCase("Cleanup")) {
  88. CleanupInvaildWarps();
  89. sender.sendMessage("cleanup complete");
  90. return true;
  91. }
  92. } else if (commandName.equalsIgnoreCase("PayServer")) {
  93. if (args.length >= 1) {
  94. try {
  95. double ammount = Double.parseDouble(args[0]);
  96. Player player = (Player) sender;
  97. if (economy.getBalance(player.getName()) >= ammount) {
  98. economy.withdrawPlayer(player.getName(), ammount);
  99. player.sendMessage(ChatColor.GREEN + "$" + ammount + " has been given to the sever");
  100. if (args.length >= 2) {
  101. String reference = "";
  102. for (int i = 1; i < args.length; i++) {
  103. reference += args[i] + " ";
  104. }
  105. log.log(Level.INFO, "${0} has been taken from player: {1} reference: [{2}]", new Object[]{ammount, player.getName(), reference});
  106. } else {
  107. log.log(Level.INFO, "${0} has been taken from player: {1} reference: [none]", new Object[]{ammount, player.getName()});
  108. }
  109. } else {
  110. player.sendMessage(ChatColor.RED + "You don't have that ammount of money");
  111. }
  112. return true;
  113. } catch (Exception e) {
  114. sender.sendMessage("The ammount is not a number");
  115. return false;
  116. }
  117. }
  118. }
  119. return false;
  120. }
  121. public void TeleportPlayer(Player player, String warpName, double Cost) {
  122. BufferedReader in;
  123. String world;
  124. double x, y, z;
  125. float yaw, pitch;
  126. try {
  127. in = new BufferedReader(new FileReader("plugins/Essentials/warps/" + warpName + ".yml"));
  128. try {
  129. world = in.readLine().substring(7);
  130. String tempxyz;;
  131. tempxyz = in.readLine().substring(3);
  132. x = Double.parseDouble(tempxyz);
  133. tempxyz = in.readLine().substring(3);
  134. y = Double.parseDouble(tempxyz);
  135. tempxyz = in.readLine().substring(3);
  136. z = Double.parseDouble(tempxyz);
  137. tempxyz = in.readLine().substring(5);
  138. yaw = Float.parseFloat(tempxyz);
  139. tempxyz = in.readLine().substring(7);
  140. pitch = Float.parseFloat(tempxyz);
  141. System.out.println(tempxyz);
  142. in.close();
  143. } catch (IOException ex) {
  144. player.sendMessage(ChatColor.DARK_RED + "Something is wrong with the warp File");
  145. try {
  146. in.close();
  147. } catch (IOException ex1) {
  148. Logger.getLogger(LolnetWarpSign.class.getName()).log(Level.SEVERE, null, ex1);
  149. }
  150. return;
  151. }
  152. } catch (FileNotFoundException ex) {
  153. player.sendMessage(ChatColor.DARK_RED + "Warp does not exist");
  154. return;
  155. }
  156. List<World> worlds = getServer().getWorlds();
  157. World teleWorld;
  158. boolean worldExist = false;
  159. boolean canTele;
  160. for (int j = 0; j < worlds.size(); j++) {
  161. if (worlds.get(j).getName().equalsIgnoreCase(world)) {
  162. worldExist = true;
  163. break;
  164. }
  165. }
  166. if (worldExist) {
  167. teleWorld = getServer().getWorld(world);
  168. } else {
  169. player.sendMessage(ChatColor.DARK_RED + "Can't find World");
  170. return;
  171. }
  172. if (!player.hasPermission("multiverse.access." + teleWorld.getName())) {
  173. player.sendMessage(ChatColor.DARK_RED + "you don't have permission: " + "multiverse.access." + teleWorld.getName());
  174. return;
  175. }
  176. player.sendMessage(ChatColor.YELLOW + "Teleporting to: " + warpName);
  177. Location loc = new Location(teleWorld, x, y, z, yaw, pitch);
  178. player.teleport(loc, PlayerTeleportEvent.TeleportCause.PLUGIN);
  179. }
  180. public void CleanupInvaildWarps() {
  181. List<World> worlds = getServer().getWorlds();
  182. BufferedReader in;
  183. String world;
  184. boolean worldExist;
  185. File[] fileList = new File("plugins/Essentials/warps").listFiles();
  186. for (int i = 0; i < fileList.length; i++) {
  187. worldExist = false;
  188. try {
  189. in = new BufferedReader(new FileReader(fileList[i].getAbsolutePath()));
  190. try {
  191. world = in.readLine().substring(7);
  192. in.close();
  193. for (int j = 0; j < worlds.size(); j++) {
  194. if (worlds.get(j).getName().equalsIgnoreCase(world)) {
  195. worldExist = true;
  196. break;
  197. }
  198. }
  199. if (!worldExist) {
  200. fileList[i].delete();
  201. }
  202. } catch (IOException ex) {
  203. Logger.getLogger(LolnetWarpSign.class.getName()).log(Level.SEVERE, null, ex);
  204. }
  205. } catch (FileNotFoundException ex) {
  206. Logger.getLogger(LolnetWarpSign.class.getName()).log(Level.SEVERE, null, ex);
  207. }
  208. }
  209. }
  210. public static void main(String[] args) {
  211. }
  212. }