/src/wat/lynx/fastswitch/FastSwitch.java

https://github.com/Lynx-/FastSwitch · Java · 362 lines · 332 code · 30 blank · 0 comment · 122 complexity · 6c4c846b90f8eef542e61ca0a574f750 MD5 · raw file

  1. package wat.lynx.FastSwitch;
  2. import java.util.logging.Logger;
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.GameMode;
  5. import org.bukkit.World;
  6. import org.bukkit.command.Command;
  7. import org.bukkit.command.CommandSender;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.plugin.Plugin;
  10. import org.bukkit.plugin.java.JavaPlugin;
  11. public class FastSwitch extends JavaPlugin {
  12. public int y;
  13. public Player playa;
  14. public Player checkname;
  15. public String matchednames = "";
  16. public int amt = 0;
  17. public String amtp;
  18. public int x;
  19. public String oplayer;
  20. public String namn = ChatColor.GOLD + "[" + ChatColor.DARK_GREEN + "FastSwitch" + ChatColor.GOLD + "]" + ChatColor.GRAY + " ";
  21. public Boolean found;
  22. public Player dude;
  23. public Plugin instance;
  24. static final Logger log = Logger.getLogger("Minecraft");
  25. public void onDisable() {
  26. log.info("[FastSwitch] Disabled!");
  27. }
  28. public void onEnable() {
  29. log.info("[FastSwitch] Enabled!");
  30. }
  31. public boolean hasPerms(Player player, String perm) {
  32. String perms;
  33. if(!player.isOp()){
  34. if (!player.hasPermission("fastswitch.*")) {
  35. if ("fastswitch.creative".equals(perm)) {
  36. perms = perm;
  37. if (player.hasPermission(perms) || player.hasPermission("fastswitch.change")) {
  38. return true;
  39. } else {
  40. NoPerms(player);
  41. return false;
  42. }
  43. }
  44. if ("fastswitch.survival".equals(perm)) {
  45. perms = perm;
  46. if (player.hasPermission(perms) || player.hasPermission("fastswitch.change")) {
  47. return true;
  48. } else {
  49. NoPerms(player);
  50. return false;
  51. }
  52. }
  53. if ("fastswitch.creative.other".equals(perm)) {
  54. perms = perm;
  55. if (player.hasPermission(perms) || player.hasPermission("fastswitch.change.other.*")) {
  56. return true;
  57. } else {
  58. NoPerms(player);
  59. return false;
  60. }
  61. }
  62. if ("fastswitch.survival.other".equals(perm)) {
  63. perms = perm;
  64. if (player.hasPermission(perms) || player.hasPermission("fastswitch.change.other.*")) {
  65. return true;
  66. } else {
  67. NoPerms(player);
  68. return false;
  69. }
  70. }
  71. if ("fastswitch.toggle".equals(perm)) {
  72. perms = perm;
  73. if (player.hasPermission(perms) || player.hasPermission("fastswitch.toggle.*")) {
  74. return true;
  75. } else {
  76. NoPerms(player);
  77. return false;
  78. }
  79. }
  80. if ("fastswitch.toggle.other".equals(perm)) {
  81. perms = perm;
  82. if (player.hasPermission(perms) || player.hasPermission("fastswitch.toggle.*")) {
  83. return true;
  84. } else {
  85. NoPerms(player);
  86. return false;
  87. }
  88. }
  89. if ("fastswitch.help".equals(perm)) {
  90. perms = perm;
  91. if (player.hasPermission(perms)) {
  92. return true;
  93. } else {
  94. NoPerms(player);
  95. return false;
  96. }
  97. }
  98. NoPerms(player);
  99. return false;
  100. } else
  101. return true;
  102. } else
  103. return true;
  104. }
  105. public void Creative(CommandSender sender, String[] args) {
  106. Player player = (Player) sender;
  107. if (args.length < 1) {
  108. if (hasPerms(player, "fastswitch.creative")) {
  109. player.setGameMode(GameMode.CREATIVE);
  110. sender.sendMessage(namn + "You changed your game mode to " + ChatColor.GREEN + "Creative" + ChatColor.GRAY + "!");
  111. log.info("[FastSwitch] " + player.getDisplayName() + " changed game mode to Creative!");
  112. }
  113. } else if (args.length == 1) {
  114. if (hasPerms(player, "fastswitch.creative.other")) {
  115. if (isOnline(sender, args)) {
  116. dude.setGameMode(GameMode.CREATIVE);
  117. sender.sendMessage(namn + "You changed " + ChatColor.DARK_RED + dude.getDisplayName() + ChatColor.GRAY + "'s game mode to " + ChatColor.GREEN + "Creative" + ChatColor.GRAY + "!");
  118. dude.sendMessage(namn + ChatColor.DARK_RED + player.getDisplayName() + ChatColor.GRAY + " changed your game mode to " + ChatColor.GREEN + "Creative" + ChatColor.GRAY + "!");
  119. log.info("[FastSwitch] " + player.getDisplayName() + " changed " + dude.getDisplayName() + "'s game mode to Creative!");
  120. }
  121. }
  122. }
  123. }
  124. public boolean isOnline(CommandSender sender, String[] args) {
  125. Player list[] = sender.getServer().getOnlinePlayers();
  126. found = false;
  127. matchednames = "";
  128. checkname = null;
  129. amt = 0;
  130. if ("t".equals(args[0]) || "toggle".equals(args[0])) {
  131. x = 1;
  132. } else {
  133. x = 0;
  134. }
  135. for (Player checkname : list) {
  136. if (checkname.getDisplayName().toLowerCase().contains(args[x].toLowerCase())) {
  137. amt++;
  138. playa = checkname;
  139. matchednames += ChatColor.DARK_RED + checkname.getDisplayName() + ChatColor.GRAY + ", ";
  140. }
  141. }
  142. if (amt == 1) {
  143. dude = playa;
  144. found = true;
  145. }
  146. if (found) {
  147. return true;
  148. } else if (!found && amt == 0) {
  149. sender.sendMessage(namn + "Unable to find player " + ChatColor.DARK_RED + args[x] + ChatColor.GRAY + "!");
  150. return false;
  151. } else if (!found && amt > 1) {
  152. sender.sendMessage(namn + "Too many names matched!");
  153. sender.sendMessage(namn + "String entered: " + ChatColor.DARK_RED + args[x]);
  154. sender.sendMessage(namn + "Names matched: " + matchednames);
  155. return false;
  156. }
  157. return false;
  158. }
  159. public void NoPerms(CommandSender sender) {
  160. y++;
  161. if (y == 1) {
  162. sender.sendMessage(namn + ChatColor.RED + "You don't have permissions to do that!");
  163. }
  164. }
  165. public void Survival(CommandSender sender, String[] args) {
  166. Player player = (Player) sender;
  167. if (args.length < 1) {
  168. if (hasPerms(player, "fastswitch.survival")) {
  169. player.setGameMode(GameMode.SURVIVAL);
  170. sender.sendMessage(namn + "You changed your game mode to " + ChatColor.GREEN + "Survival" + ChatColor.GRAY + "!");
  171. log.info("[FastSwitch] " + player.getDisplayName() + " changed game mode to Survival!");
  172. }
  173. } else if (args.length == 1) {
  174. if (hasPerms(player, "fastswitch.survival.other")) {
  175. if (isOnline(sender, args)) {
  176. dude.setGameMode(GameMode.SURVIVAL);
  177. sender.sendMessage(namn + "You changed " + ChatColor.DARK_RED + dude.getDisplayName() + ChatColor.GRAY + "'s game mode to " + ChatColor.GREEN + "Survival" + ChatColor.GRAY + "!");
  178. dude.sendMessage(namn + ChatColor.DARK_RED + player.getDisplayName() + ChatColor.GRAY + " changed your game mode to " + ChatColor.GREEN + "Survival" + ChatColor.GRAY + "!");
  179. log.info("[FastSwitch] " + player.getDisplayName() + " changed " + dude.getDisplayName() + "'s game mode to Survival!");
  180. }
  181. }
  182. }
  183. }
  184. public void Console(CommandSender sender, Command command, String label, String[] args) {
  185. if (label.equalsIgnoreCase("fs") && args.length != 0) {
  186. if (label.equalsIgnoreCase("fs") && !args[0].equalsIgnoreCase("t") && !args[0].equalsIgnoreCase("toggle") && !args[0].equalsIgnoreCase("t") && !args[0].equalsIgnoreCase("h") && !args[0].equalsIgnoreCase("help")) {
  187. log.info("[FastSwitch] Unknown Command!");
  188. }
  189. }
  190. if (args.length > 2) {
  191. log.info("[FastSwitch] Too many arguments!");
  192. }
  193. if (args.length < 1) {
  194. sendCHelp();
  195. }
  196. if (args.length > 0 && label.equalsIgnoreCase("fs") && (args[0].equalsIgnoreCase("h") || args[0].equalsIgnoreCase("help"))) {
  197. sendCHelp();
  198. }
  199. if (label.equalsIgnoreCase("fs") && args.length > 0 && (args[0].equalsIgnoreCase("t") || args[0].equalsIgnoreCase("toggle"))) {
  200. if (args.length == 2) {
  201. if (isOnline(sender, args)) {
  202. Consoletoggle(sender, args);
  203. }
  204. }
  205. if (args.length == 1) {
  206. log.info("[FastSwitch] Too few arguments!");
  207. }
  208. }
  209. if (args.length == 1 && label.equalsIgnoreCase("survival")) {
  210. if (isOnline(sender, args)) {
  211. dude.setGameMode(GameMode.SURVIVAL);
  212. dude.sendMessage(namn + ChatColor.DARK_RED + "Console" + ChatColor.GRAY + " changed your game mode to " + ChatColor.GREEN + "Survival" + ChatColor.GRAY + "!");
  213. log.info("[FastSwitch] You changed " + dude.getDisplayName() + "'s game mode to Survival");
  214. }
  215. }
  216. if (args.length == 1 && label.equalsIgnoreCase(
  217. "creative")) {
  218. if (isOnline(sender, args)) {
  219. dude.setGameMode(GameMode.CREATIVE);
  220. dude.sendMessage(namn + ChatColor.DARK_RED + "Console" + ChatColor.GRAY + " changed your game mode to " + ChatColor.GREEN + "Creative" + ChatColor.GRAY + "!");
  221. log.info("[FastSwitch] You changed " + dude.getDisplayName() + "'s game mode to Creative");
  222. }
  223. }
  224. }
  225. public void toggle(CommandSender sender) {
  226. Player player = (Player) sender;
  227. if (player.getGameMode().toString().equals("SURVIVAL")) {
  228. player.setGameMode(GameMode.CREATIVE);
  229. sender.sendMessage(namn + "You toggled your game mode to " + ChatColor.GREEN + "Creative" + ChatColor.GRAY + "!");
  230. log.info("[FastSwitch] " + player.getDisplayName() + " toggled game mode to Creative!");
  231. } else {
  232. player.setGameMode(GameMode.SURVIVAL);
  233. sender.sendMessage(namn + "You toggled your game mode to " + ChatColor.GREEN + "Survival" + ChatColor.GRAY + "!");
  234. log.info("[FastSwitch] " + player.getDisplayName() + " toggled game mode to Survival!");
  235. }
  236. }
  237. public void toggleother(CommandSender sender, String[] args) {
  238. Player player = (Player) sender;
  239. if (dude.getGameMode().toString().equals("SURVIVAL")) {
  240. dude.setGameMode(GameMode.CREATIVE);
  241. sender.sendMessage(namn + "You changed " + dude.getDisplayName() + "'s game mode to " + ChatColor.GREEN + "Creative" + ChatColor.GRAY + "!");
  242. dude.sendMessage(namn + ChatColor.DARK_RED + player.getDisplayName() + ChatColor.GRAY + " toggled your game mode to " + ChatColor.GREEN + "Creative" + ChatColor.GRAY + "!");
  243. log.info("[FastSwitch] " + player.getDisplayName() + " toggled " + dude.getDisplayName() + "'s game mode to Creative!");
  244. } else {
  245. dude.setGameMode(GameMode.SURVIVAL);
  246. sender.sendMessage(namn + "You changed " + dude.getDisplayName() + "'s game mode to " + ChatColor.GREEN + "Survival" + ChatColor.GRAY + "!");
  247. dude.sendMessage(namn + ChatColor.DARK_RED + player.getDisplayName() + ChatColor.GRAY + " toggled your game mode to " + ChatColor.GREEN + "Survival" + ChatColor.GRAY + "!");
  248. log.info("[FastSwitch] " + player.getDisplayName() + " toggled " + dude.getDisplayName() + "'s game mode to Survival!");
  249. }
  250. }
  251. public void sendCHelp() {
  252. String name = "[FastSwitch] ";
  253. log.info("[FastSwitch] Help Page");
  254. log.info(name + "FastSwitch Commands:");
  255. log.info(name + "/creative - Change to Creative mode");
  256. log.info(name + "/survival - Change to Survival mode");
  257. log.info(name + "/creative <name> - Creative mode for <name>");
  258. log.info(name + "/survival <name> - Survival mode for <name>");
  259. log.info(name + "/fs (t/toggle) - Toggles between the two modes");
  260. log.info(name + "/fs (t/toggle) <name> - Toggle a player's mode");
  261. log.info(name + "/fs (h/help) - Displays the Help Page");
  262. log.info(name + "/fs - Lists all commands");
  263. }
  264. public void sendHelp(CommandSender sender) {
  265. sender.sendMessage(namn + "FastSwitch Commands:");
  266. sender.sendMessage(namn + ChatColor.AQUA + "/creative " + ChatColor.RED + "-" + ChatColor.GRAY + " Change to Creative mode");
  267. sender.sendMessage(namn + ChatColor.AQUA + "/survival " + ChatColor.RED + "-" + ChatColor.GRAY + " Change to Survival mode");
  268. sender.sendMessage(namn + ChatColor.AQUA + "/creative <name> " + ChatColor.RED + "-" + ChatColor.GRAY + " Creative mode for <name>");
  269. sender.sendMessage(namn + ChatColor.AQUA + "/survival <name> " + ChatColor.RED + "-" + ChatColor.GRAY + " Survival mode for <name>");
  270. sender.sendMessage(namn + ChatColor.AQUA + "/fs (t/toggle) " + ChatColor.RED + "-" + ChatColor.GRAY + " Toggles between the two modes");
  271. sender.sendMessage(namn + ChatColor.AQUA + "/fs (t/toggle) <name> " + ChatColor.RED + "-" + ChatColor.GRAY + " Toggle a player's mode");
  272. sender.sendMessage(namn + ChatColor.AQUA + "/fs (h/help) " + ChatColor.RED + "-" + ChatColor.GRAY + " Displays the Help Page");
  273. sender.sendMessage(namn + ChatColor.AQUA + "/fs " + ChatColor.RED + "-" + ChatColor.GRAY + " Lists all commands");
  274. }
  275. public void FastSwitch(CommandSender sender, String[] args) {
  276. Player player = (Player) sender;
  277. if (args.length == 0 && hasPerms(player, "fastswitch.help")) {
  278. sendHelp(sender);
  279. }
  280. if (args.length == 1) {
  281. if ((args[0].equalsIgnoreCase("t") || args[0].equalsIgnoreCase("toggle")) && hasPerms(player, "fastswitch.toggle")) {
  282. toggle(sender);
  283. }
  284. if ((args[0].equalsIgnoreCase("h") || args[0].equalsIgnoreCase("help")) && hasPerms(player, "fastswitch.help")) {
  285. sendHelp(sender);
  286. }
  287. }
  288. if (args.length == 2 && hasPerms(player, "fastswitch.toggle.other")) {
  289. if (args[0].equalsIgnoreCase("t")) {
  290. if (isOnline(sender, args)) {
  291. toggleother(sender, args);
  292. }
  293. }
  294. }
  295. }
  296. public void Consoletoggle(CommandSender sender, String[] args) {
  297. if (dude.getGameMode().toString().equals("SURVIVAL")) {
  298. dude.setGameMode(GameMode.CREATIVE);
  299. dude.sendMessage(namn + ChatColor.DARK_RED + "Console" + ChatColor.GRAY + " toggled your game mode to " + ChatColor.GREEN + "Creative" + ChatColor.GRAY + "!");
  300. log.info("[FastSwitch] Console toggled " + dude.getDisplayName() + "'s game mode to Creative!");
  301. } else {
  302. dude.setGameMode(GameMode.SURVIVAL);
  303. dude.sendMessage(namn + ChatColor.DARK_RED + "Console" + ChatColor.GRAY + " toggled your game mode to " + ChatColor.GREEN + "Survival" + ChatColor.GRAY + "!");
  304. log.info("[FastSwitch] Console toggled " + dude.getDisplayName() + "'s game mode to Survival!");
  305. }
  306. }
  307. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  308. y = 0;
  309. x = 0;
  310. dude = null;
  311. found = false;
  312. if (!(sender instanceof Player)) {
  313. Console(sender, command, label, args);
  314. } else {
  315. if (args.length > 2) {
  316. sender.sendMessage(namn + "Ahhrrgg! Can't handle the amount of arguments!");
  317. } else {
  318. if (label.equalsIgnoreCase("survival")) {
  319. Survival(sender, args);
  320. }
  321. if (label.equalsIgnoreCase("fs")) {
  322. FastSwitch(sender, args);
  323. }
  324. if (label.equalsIgnoreCase("creative")) {
  325. Creative(sender, args);
  326. }
  327. }
  328. return true;
  329. }
  330. return true;
  331. }
  332. }