Advertisement
Guest User

hhgyujkh

a guest
Feb 17th, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.78 KB | None | 0 0
  1. package de.gabik21.hospitalcore;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.io.PrintStream;
  6. import org.bukkit.configuration.file.FileConfiguration;
  7. import org.bukkit.configuration.file.FileConfigurationOptions;
  8. import org.bukkit.configuration.file.YamlConfiguration;
  9.  
  10. public class MySQLFile
  11. {
  12. public void setStandard()
  13. {
  14. FileConfiguration cfg = getFileConfiguration();
  15.  
  16. cfg.options().copyDefaults(true);
  17.  
  18. cfg.addDefault("host", "mysql.mc-host24.de");
  19. cfg.addDefault("port", "3306");
  20. cfg.addDefault("database", "db_41955");
  21. cfg.addDefault("username", "db_41955");
  22. cfg.addDefault("password", "b83b3f4f54");
  23. try
  24. {
  25. cfg.save(getFile());
  26. }
  27. catch (IOException e)
  28. {
  29. e.printStackTrace();
  30. }
  31. }
  32.  
  33. private File getFile()
  34. {
  35. return new File("plugins/HospitalCore", "mysql.yml");
  36. }
  37.  
  38. private FileConfiguration getFileConfiguration()
  39. {
  40. return YamlConfiguration.loadConfiguration(getFile());
  41. }
  42.  
  43. public void readData()
  44. {
  45. FileConfiguration cfg = getFileConfiguration();
  46. if (!getFile().exists()) {
  47. setStandard();
  48. }
  49. MySQL.host = cfg.getString("host");
  50. MySQL.port = cfg.getString("port");
  51. MySQL.database = cfg.getString("database");
  52. MySQL.username = cfg.getString("username");
  53. MySQL.password = cfg.getString("password");
  54.  
  55. System.out.println(MySQL.host);
  56. }
  57. }
  58.  
  59.  
  60.  
  61.  
  62.  
  63. package de.gabik21.hospitalcore;
  64.  
  65. import java.io.PrintStream;
  66. import java.sql.Connection;
  67. import java.sql.DriverManager;
  68. import java.sql.PreparedStatement;
  69. import java.sql.ResultSet;
  70. import java.sql.SQLException;
  71.  
  72. public class MySQL
  73. {
  74. public static String host;
  75. public static String port;
  76. public static String database;
  77. public static String username;
  78. public static String password;
  79. public static Connection con;
  80.  
  81. public static void connect()
  82. {
  83. if (!isConnected()) {
  84. try
  85. {
  86. con = DriverManager.getConnection("jdbc:mysql://" + host +
  87. ":3306/" + database, username, password);
  88. System.out.println("[Hospital] MySQL Verbindung aufgebaut!");
  89. }
  90. catch (SQLException e)
  91. {
  92. e.printStackTrace();
  93. }
  94. }
  95. }
  96.  
  97. public static void disconnect()
  98. {
  99. try
  100. {
  101. con.close();
  102. System.out.println("[Hospital] MySQL Verbindung geschlossen");
  103. }
  104. catch (SQLException e)
  105. {
  106. e.printStackTrace();
  107. }
  108. }
  109.  
  110. public static boolean isConnected()
  111. {
  112. if (con == null) {
  113. return false;
  114. }
  115. try
  116. {
  117. if (!con.isValid(1000)) {
  118. return false;
  119. }
  120. }
  121. catch (SQLException e)
  122. {
  123. e.printStackTrace();
  124. }
  125. return true;
  126. }
  127.  
  128. public static int executeUpdate(String s)
  129. {
  130. try
  131. {
  132. PreparedStatement ps = getConnection().prepareStatement(s);
  133. return ps.executeUpdate();
  134. }
  135. catch (SQLException e)
  136. {
  137. e.printStackTrace();
  138. }
  139. return -1;
  140. }
  141.  
  142. public static ResultSet executeQuery(String s)
  143. {
  144. try
  145. {
  146. PreparedStatement ps = getConnection().prepareStatement(s);
  147. return ps.executeQuery();
  148. }
  149. catch (SQLException e)
  150. {
  151. e.printStackTrace();
  152. }
  153. return null;
  154. }
  155.  
  156. public static Connection getConnection()
  157. {
  158. if (!isConnected()) {
  159. connect();
  160. }
  161. return con;
  162. }
  163. }
  164.  
  165.  
  166.  
  167.  
  168. package de.gabik21.hospitalcore.util;
  169.  
  170. import java.util.ArrayList;
  171. import java.util.List;
  172.  
  173. public enum BanUnit
  174. {
  175. SECONDS(
  176. "Sekunde(n)",
  177. 1L,
  178. "s"), MINUTES(
  179. "Minuten(n)",
  180. 60L,
  181. "m"), HOUR(
  182. "Stunde(n)",
  183. 3600L,
  184. "h"), DAY(
  185. "Tag(e)",
  186. 86400L,
  187. "d"), WEEK(
  188. "Woche(n)",
  189. 604800L,
  190. "w");
  191.  
  192. private String name;
  193. private long toSecond;
  194. private String shortcut;
  195.  
  196. private BanUnit(String name, long toSecond, String shortcut)
  197. {
  198. this.name = name;
  199. this.toSecond = toSecond;
  200. this.shortcut = shortcut;
  201. }
  202.  
  203. public long getToSecond()
  204. {
  205. return this.toSecond;
  206. }
  207.  
  208. public String getName()
  209. {
  210. return this.name;
  211. }
  212.  
  213. public String getShortcut()
  214. {
  215. return this.shortcut;
  216. }
  217.  
  218. public static List<String> getUnitsAsString()
  219. {
  220. List<String> units = new ArrayList();
  221. BanUnit[] arrayOfBanUnit;
  222. int j = (arrayOfBanUnit = values()).length;
  223. for (int i = 0; i < j; i++)
  224. {
  225. BanUnit unit = arrayOfBanUnit[i];
  226. units.add(unit.getShortcut().toLowerCase());
  227. }
  228. return units;
  229. }
  230.  
  231. public static BanUnit getUnit(String unit)
  232. {
  233. BanUnit[] arrayOfBanUnit;
  234. int j = (arrayOfBanUnit = values()).length;
  235. for (int i = 0; i < j; i++)
  236. {
  237. BanUnit units = arrayOfBanUnit[i];
  238. if (units.getShortcut().toLowerCase().equals(unit.toLowerCase())) {
  239. return units;
  240. }
  241. }
  242. return null;
  243. }
  244. }
  245.  
  246.  
  247.  
  248.  
  249.  
  250. package de.gabik21.hospitalcore.util;
  251.  
  252. import de.gabik21.hospitalcore.MySQL;
  253. import java.sql.Connection;
  254. import java.sql.PreparedStatement;
  255. import java.sql.ResultSet;
  256. import java.sql.SQLException;
  257. import java.util.ArrayList;
  258. import java.util.Iterator;
  259. import java.util.List;
  260. import java.util.UUID;
  261. import org.bukkit.Bukkit;
  262. import org.bukkit.OfflinePlayer;
  263. import org.bukkit.command.CommandSender;
  264.  
  265. public class BanManager
  266. {
  267. public static void ban(String uuid, String playername, String reason, long seconds, String banner)
  268. {
  269. long end = 0L;
  270. if (seconds == -1L) {
  271. end = -1L;
  272. } else {
  273. end = System.currentTimeMillis() + seconds * 1000L;
  274. }
  275. String raw = "INSERT INTO bans (Name, UUID, End, Reason, Banner) VALUES('%s','%s','%s','%s','%s')";
  276. String qry = String.format(raw, new Object[] { playername, uuid, String.valueOf(end),
  277. reason, banner });
  278.  
  279. MySQL.executeUpdate(qry);
  280. }
  281.  
  282. public static void unban(String uuid)
  283. {
  284. try
  285. {
  286. PreparedStatement ps = MySQL.getConnection().prepareStatement(
  287. "DELETE FROM bans WHERE UUID = ?");
  288. ps.setString(1, uuid);
  289.  
  290. ps.executeUpdate();
  291. }
  292. catch (SQLException e)
  293. {
  294. e.printStackTrace();
  295. }
  296. }
  297.  
  298. public static boolean isBanned(String uuid)
  299. {
  300. if (getEnd(uuid) == null) {
  301. return false;
  302. }
  303. if ((System.currentTimeMillis() > getEnd(uuid).longValue()) && (getEnd(uuid).longValue() > -1L))
  304. {
  305. unban(uuid);
  306. return false;
  307. }
  308. return true;
  309. }
  310.  
  311. public static String getReason(String uuid)
  312. {
  313. ResultSet rs =
  314. MySQL.executeQuery("SELECT Reason FROM bans WHERE UUID = '" + uuid +
  315. "'");
  316. try
  317. {
  318. if (rs.next()) {
  319. return rs.getString("Reason");
  320. }
  321. }
  322. catch (SQLException e)
  323. {
  324. e.printStackTrace();
  325. }
  326. return null;
  327. }
  328.  
  329. public static String getBanner(String uuid)
  330. {
  331. ResultSet rs =
  332. MySQL.executeQuery("SELECT Banner FROM bans WHERE UUID = '" + uuid +
  333. "'");
  334. try
  335. {
  336. if (rs.next()) {
  337. return rs.getString("Banner");
  338. }
  339. }
  340. catch (SQLException e)
  341. {
  342. e.printStackTrace();
  343. }
  344. return null;
  345. }
  346.  
  347. public static Long getEnd(String uuid)
  348. {
  349. ResultSet rs = MySQL.executeQuery("SELECT End FROM bans WHERE UUID = '" +
  350. uuid + "'");
  351. try
  352. {
  353. if (rs.next()) {
  354. return Long.valueOf(rs.getLong("End"));
  355. }
  356. }
  357. catch (SQLException e)
  358. {
  359. e.printStackTrace();
  360. }
  361. return null;
  362. }
  363.  
  364. public static List<String> getBannedPlayersBy(CommandSender sender, String banner)
  365. {
  366. List<String> temp = new ArrayList();
  367.  
  368. ResultSet rs =
  369. MySQL.executeQuery("SELECT Name FROM bans WHERE Banner = '" + banner +
  370. "'");
  371. try
  372. {
  373. while (rs.next()) {
  374. temp.add(rs.getString("Name"));
  375. }
  376. }
  377. catch (SQLException e)
  378. {
  379. e.printStackTrace();
  380. }
  381. Iterator<String> litr = temp.iterator();
  382. while (litr.hasNext())
  383. {
  384. String s = (String)litr.next();
  385.  
  386. OfflinePlayer p = Bukkit.getOfflinePlayer(s);
  387. if ((p != null) && (!isBanned(p.getUniqueId().toString()))) {
  388. litr.remove();
  389. } else {
  390. sender.sendMessage("�e" + s);
  391. }
  392. }
  393. sender.sendMessage("�e" + temp.size() + " players banned in total");
  394.  
  395. return temp;
  396. }
  397.  
  398. public static List<String> getBannedPlayers(CommandSender sender)
  399. {
  400. List<String> temp = new ArrayList();
  401.  
  402. ResultSet rs = MySQL.executeQuery("SELECT Name FROM bans");
  403. try
  404. {
  405. while (rs.next()) {
  406. temp.add(rs.getString("Name"));
  407. }
  408. }
  409. catch (SQLException e)
  410. {
  411. e.printStackTrace();
  412. }
  413. Iterator<String> litr = temp.iterator();
  414. while (litr.hasNext())
  415. {
  416. String s = (String)litr.next();
  417.  
  418. OfflinePlayer p = Bukkit.getOfflinePlayer(s);
  419. if ((p != null) && (!isBanned(p.getUniqueId().toString()))) {
  420. litr.remove();
  421. } else {
  422. sender.sendMessage("�e" + s);
  423. }
  424. }
  425. sender.sendMessage("�e" + temp.size() + " players banned in total");
  426.  
  427. return temp;
  428. }
  429.  
  430. public static String getRemainingTime(String uuid)
  431. {
  432. if (getEnd(uuid).longValue() == -1L) {
  433. return "�4Permanent";
  434. }
  435. long time = getEnd(uuid).longValue() - System.currentTimeMillis();
  436.  
  437. long seconds = 0L;
  438. long minutes = 0L;
  439. long hours = 0L;
  440. long days = 0L;
  441. while (time >= 1000L)
  442. {
  443. time -= 1000L;
  444. seconds += 1L;
  445. }
  446. while (seconds >= 60L)
  447. {
  448. seconds -= 60L;
  449. minutes += 1L;
  450. }
  451. while (minutes >= 60L)
  452. {
  453. minutes -= 60L;
  454. hours += 1L;
  455. }
  456. while (hours >= 24L)
  457. {
  458. hours -= 24L;
  459. days += 1L;
  460. }
  461. String returnstring = "�c";
  462. if (days > 0L) {
  463. returnstring = returnstring + days + " day(s) ";
  464. }
  465. if (hours > 0L) {
  466. returnstring = returnstring + hours + " hour(s) ";
  467. }
  468. if (minutes > 0L) {
  469. returnstring = returnstring + minutes + " minute(s) ";
  470. }
  471. if (seconds > 0L) {
  472. returnstring = returnstring + seconds + " second(s)";
  473. }
  474. return returnstring;
  475. }
  476. }
  477.  
  478.  
  479.  
  480.  
  481.  
  482. package de.gabik21.hospitalcore.util;
  483.  
  484. import de.gabik21.hospitalcore.MySQL;
  485. import java.sql.Connection;
  486. import java.sql.PreparedStatement;
  487. import java.sql.ResultSet;
  488. import java.sql.SQLException;
  489. import java.util.ArrayList;
  490. import java.util.Iterator;
  491. import java.util.List;
  492. import java.util.UUID;
  493. import org.bukkit.Bukkit;
  494. import org.bukkit.OfflinePlayer;
  495. import org.bukkit.command.CommandSender;
  496.  
  497. public class MuteManager
  498. {
  499. public static void mute(String uuid, String playername, String reason, long seconds, String muter)
  500. {
  501. long end = 0L;
  502. if (seconds == -1L) {
  503. end = -1L;
  504. } else {
  505. end = System.currentTimeMillis() + seconds * 1000L;
  506. }
  507. try
  508. {
  509. PreparedStatement ps =
  510. MySQL.getConnection()
  511. .prepareStatement(
  512. "INSERT INTO mutes (Name, UUID, End, Reason, Muter) VALUES(?,?,?,?,?)");
  513. ps.setString(1, playername);
  514. ps.setString(2, uuid);
  515. ps.setString(3, String.valueOf(end));
  516. ps.setString(4, reason);
  517. ps.setString(5, muter);
  518.  
  519. ps.executeUpdate();
  520. }
  521. catch (SQLException e)
  522. {
  523. e.printStackTrace();
  524. }
  525. }
  526.  
  527. public static void unmute(String uuid)
  528. {
  529. try
  530. {
  531. PreparedStatement ps = MySQL.getConnection().prepareStatement(
  532. "DELETE FROM mutes WHERE UUID = ?");
  533. ps.setString(1, uuid);
  534.  
  535. ps.executeUpdate();
  536. }
  537. catch (SQLException e)
  538. {
  539. e.printStackTrace();
  540. }
  541. }
  542.  
  543. public static boolean isMuted(String uuid)
  544. {
  545. if (getEnd(uuid) == null) {
  546. return false;
  547. }
  548. if ((System.currentTimeMillis() > getEnd(uuid).longValue()) && (getEnd(uuid).longValue() > -1L))
  549. {
  550. unmute(uuid);
  551. return false;
  552. }
  553. return true;
  554. }
  555.  
  556. public static String getReason(String uuid)
  557. {
  558. try
  559. {
  560. PreparedStatement ps = MySQL.getConnection().prepareStatement(
  561. "SELECT * FROM mutes WHERE UUID = ?");
  562. ps.setString(1, uuid);
  563. ResultSet rs = ps.executeQuery();
  564. if (rs.next()) {
  565. return rs.getString("Reason");
  566. }
  567. }
  568. catch (SQLException e)
  569. {
  570. e.printStackTrace();
  571. }
  572. return null;
  573. }
  574.  
  575. public static String getMuter(String uuid)
  576. {
  577. try
  578. {
  579. PreparedStatement ps = MySQL.getConnection().prepareStatement(
  580. "SELECT * FROM mutes WHERE UUID = ?");
  581. ps.setString(1, uuid);
  582. ResultSet rs = ps.executeQuery();
  583. if (rs.next()) {
  584. return rs.getString("Muter");
  585. }
  586. }
  587. catch (SQLException e)
  588. {
  589. e.printStackTrace();
  590. }
  591. return null;
  592. }
  593.  
  594. public static Long getEnd(String uuid)
  595. {
  596. try
  597. {
  598. PreparedStatement ps = MySQL.getConnection().prepareStatement(
  599. "SELECT * FROM mutes WHERE UUID = ?");
  600. ps.setString(1, uuid);
  601. ResultSet rs = ps.executeQuery();
  602. if (rs.next()) {
  603. return Long.valueOf(rs.getLong("End"));
  604. }
  605. }
  606. catch (SQLException e)
  607. {
  608. e.printStackTrace();
  609. }
  610. return null;
  611. }
  612.  
  613. public static List<String> getMutedPlayers(CommandSender sender)
  614. {
  615. List<String> temp = new ArrayList();
  616. try
  617. {
  618. PreparedStatement ps = MySQL.getConnection().prepareStatement(
  619. "SELECT * FROM mutes");
  620. ResultSet rs = ps.executeQuery();
  621. while (rs.next()) {
  622. temp.add(rs.getString("Name"));
  623. }
  624. }
  625. catch (SQLException e)
  626. {
  627. e.printStackTrace();
  628. }
  629. Iterator<String> litr = temp.iterator();
  630. while (litr.hasNext())
  631. {
  632. String s = (String)litr.next();
  633.  
  634. OfflinePlayer p = Bukkit.getOfflinePlayer(s);
  635. if ((p != null) && (!isMuted(p.getUniqueId().toString()))) {
  636. litr.remove();
  637. } else {
  638. sender.sendMessage("�e" + s);
  639. }
  640. }
  641. sender.sendMessage("�e" + temp.size() + " players muted in total");
  642. return temp;
  643. }
  644.  
  645. public static String getRemainingTime(String uuid)
  646. {
  647. if (getEnd(uuid).longValue() == -1L) {
  648. return "�4Permanent";
  649. }
  650. long time = getEnd(uuid).longValue() - System.currentTimeMillis();
  651.  
  652. long seconds = 0L;
  653. long minutes = 0L;
  654. long hours = 0L;
  655. long days = 0L;
  656. while (time >= 1000L)
  657. {
  658. time -= 1000L;
  659. seconds += 1L;
  660. }
  661. while (seconds >= 60L)
  662. {
  663. seconds -= 60L;
  664. minutes += 1L;
  665. }
  666. while (minutes >= 60L)
  667. {
  668. minutes -= 60L;
  669. hours += 1L;
  670. }
  671. while (hours >= 24L)
  672. {
  673. hours -= 24L;
  674. days += 1L;
  675. }
  676. String returnstring = "�c";
  677. if (days > 0L) {
  678. returnstring = returnstring + days + " day(s) ";
  679. }
  680. if (hours > 0L) {
  681. returnstring = returnstring + hours + " hour(s) ";
  682. }
  683. if (minutes > 0L) {
  684. returnstring = returnstring + minutes + " minute(s) ";
  685. }
  686. if (seconds > 0L) {
  687. returnstring = returnstring + seconds + " second(s)";
  688. }
  689. return returnstring;
  690. }
  691. }
  692.  
  693.  
  694.  
  695.  
  696. package de.gabik21.hospitalcore.commands;
  697.  
  698. import de.gabik21.hospitalcore.HospitalCore;
  699. import de.gabik21.hospitalcore.util.BanManager;
  700. import de.gabik21.hospitalcore.util.BanUnit;
  701. import java.util.List;
  702. import java.util.UUID;
  703. import org.bukkit.Bukkit;
  704. import org.bukkit.OfflinePlayer;
  705. import org.bukkit.command.Command;
  706. import org.bukkit.command.CommandExecutor;
  707. import org.bukkit.command.CommandSender;
  708. import org.bukkit.entity.Player;
  709. import org.bukkit.scheduler.BukkitRunnable;
  710.  
  711. public class BanCommand
  712. implements CommandExecutor
  713. {
  714. public boolean onCommand(final CommandSender sender, Command cmd, String label, String[] args)
  715. {
  716. if ((!sender.hasPermission("Admin")) &&
  717. (!sender.hasPermission("Moderator")) &&
  718. (!sender.hasPermission("Supporter")))
  719. {
  720. sender.sendMessage("�cInsufficient permissions.");
  721. return true;
  722. }
  723. if (cmd.getName().equalsIgnoreCase("ban"))
  724. {
  725. if (args.length < 2) {
  726. return false;
  727. }
  728. final Player t = Bukkit.getPlayer(args[0]);
  729. final String toban = args[0];
  730.  
  731. boolean kickt = false;
  732. if (t != null) {
  733. kickt = true;
  734. }
  735. final boolean kick = kickt;
  736.  
  737. String reasonbuilder = "";
  738. for (int i = 1; i < args.length; i++) {
  739. reasonbuilder = reasonbuilder + args[i] + " ";
  740. }
  741. final String reason = reasonbuilder;
  742.  
  743. new BukkitRunnable()
  744. {
  745. public void run()
  746. {
  747. UUID uuid = Bukkit.getOfflinePlayer(toban).getUniqueId();
  748. if (BanManager.isBanned(uuid.toString())) {
  749. BanManager.unban(uuid.toString());
  750. }
  751. BanManager.ban(uuid.toString(), toban, reason, -1L,
  752. sender.getName());
  753.  
  754. final String remaining = BanManager.getRemainingTime(uuid
  755. .toString());
  756.  
  757. new BukkitRunnable()
  758. {
  759. public void run()
  760. {
  761. Bukkit.broadcastMessage("�c-------------\n�c" +
  762. this.val$sender.getName() + " banned player " +
  763. this.val$toban + "\nTime: " + "forever \nReason: " +
  764. this.val$reason + "\n�c-------------");
  765. if (this.val$kick) {
  766. this.val$t.kickPlayer("�c-------------\n�cYou have been banned from the server. \nReason: " +
  767. this.val$reason +
  768. "\nRemaining time: " +
  769. remaining + "\n �c-------------");
  770. }
  771. }
  772. }.runTask(HospitalCore.getInstance());
  773. }
  774. }.runTaskAsynchronously(HospitalCore.getInstance());
  775.  
  776. return true;
  777. }
  778. if (cmd.getName().equalsIgnoreCase("tempban"))
  779. {
  780. if (args.length < 4) {
  781. return false;
  782. }
  783. final Player t = Bukkit.getPlayer(args[0]);
  784. final String toban = args[0];
  785.  
  786. boolean kickt = false;
  787. if (t != null) {
  788. kickt = true;
  789. }
  790. final boolean kick = kickt;
  791.  
  792. String reasonbuilder = "";
  793. for (int i = 3; i < args.length; i++) {
  794. reasonbuilder = reasonbuilder + args[i] + " ";
  795. }
  796. String unitString = args[2];
  797. List<String> unitList = BanUnit.getUnitsAsString();
  798. if (!unitList.contains(unitString.toLowerCase())) {
  799. return false;
  800. }
  801. final String reason = reasonbuilder;
  802. BanUnit unit = BanUnit.getUnit(unitString);
  803. try
  804. {
  805. timeint = Integer.valueOf(args[1]).intValue();
  806. }
  807. catch (NumberFormatException e)
  808. {
  809. int timeint;
  810. sender.sendMessage("�cValue is too high for an Integer. INTEGER_MAX_VALUE = 2147483647");
  811.  
  812. return true;
  813. }
  814. int timeint;
  815. final long time = timeint * unit.getToSecond();
  816.  
  817. new BukkitRunnable()
  818. {
  819. public void run()
  820. {
  821. UUID uuid = Bukkit.getOfflinePlayer(toban).getUniqueId();
  822. if (BanManager.isBanned(uuid.toString())) {
  823. BanManager.unban(uuid.toString());
  824. }
  825. BanManager.ban(uuid.toString(), toban, reason, time + 1L,
  826. kick.getName());
  827.  
  828. final String remaining = BanManager.getRemainingTime(uuid
  829. .toString());
  830.  
  831. new BukkitRunnable()
  832. {
  833. public void run()
  834. {
  835. Bukkit.broadcastMessage("�c-------------\n�c" +
  836. this.val$sender.getName() + " banned player " +
  837. this.val$toban + "\nTime: " + remaining +
  838. "\nReason: " + this.val$reason +
  839. "\n�c-------------");
  840. if (this.val$kick) {
  841. this.val$t.kickPlayer("�c-------------\nYou have been banned from the server. \nReason: " +
  842. this.val$reason +
  843. "\nRemaining time: " +
  844. remaining + "\n�c-------------");
  845. }
  846. }
  847. }.runTask(HospitalCore.getInstance());
  848. }
  849. }.runTaskAsynchronously(HospitalCore.getInstance());
  850.  
  851. return true;
  852. }
  853. if (cmd.getName().equalsIgnoreCase("unban"))
  854. {
  855. if (args.length != 1) {
  856. return false;
  857. }
  858. final String name = args[0];
  859.  
  860. new BukkitRunnable()
  861. {
  862. public void run()
  863. {
  864. UUID uuid = Bukkit.getOfflinePlayer(name).getUniqueId();
  865. if (!BanManager.isBanned(uuid.toString()))
  866. {
  867. sender.sendMessage("�aIsn't banned.");
  868. return;
  869. }
  870. BanManager.unban(uuid.toString());
  871.  
  872. new BukkitRunnable()
  873. {
  874. public void run()
  875. {
  876. Bukkit.broadcastMessage("�a" + this.val$name +
  877. " has been unbanned by " +
  878. this.val$sender.getName());
  879. }
  880. }.runTask(HospitalCore.getInstance());
  881. }
  882. }.runTaskAsynchronously(HospitalCore.getInstance());
  883. return true;
  884. }
  885. if (cmd.getName().equalsIgnoreCase("bancheck"))
  886. {
  887. if ((args.length == 2) && (args[0].equalsIgnoreCase("list")))
  888. {
  889. final String banner = args[1];
  890.  
  891. new BukkitRunnable()
  892. {
  893. public void run()
  894. {
  895. BanManager.getBannedPlayersBy(sender, banner);
  896. }
  897. }.runTaskAsynchronously(HospitalCore.getInstance());
  898.  
  899. return true;
  900. }
  901. if (args.length != 1) {
  902. return false;
  903. }
  904. final String name = args[0];
  905.  
  906. new BukkitRunnable()
  907. {
  908. public void run()
  909. {
  910. if (name.equalsIgnoreCase("list"))
  911. {
  912. BanManager.getBannedPlayers(sender);
  913. return;
  914. }
  915. UUID uuid = Bukkit.getOfflinePlayer(name).getUniqueId();
  916. if (!BanManager.isBanned(uuid.toString()))
  917. {
  918. sender.sendMessage("�aThe player isn't banned");
  919. }
  920. else
  921. {
  922. sender.sendMessage("�c-------------");
  923. sender.sendMessage("�cName: " + name);
  924. sender.sendMessage("�cReason: " +
  925. BanManager.getReason(uuid.toString()));
  926. sender.sendMessage("�cTime left: " +
  927. BanManager.getRemainingTime(uuid.toString()));
  928. sender.sendMessage("�cBanned by: " +
  929. BanManager.getBanner(uuid.toString()));
  930. sender.sendMessage("�c-------------");
  931. }
  932. }
  933. }.runTaskAsynchronously(HospitalCore.getInstance());
  934. }
  935. return false;
  936. }
  937. }
  938.  
  939.  
  940.  
  941.  
  942. package de.gabik21.hospitalcore.commands;
  943.  
  944. import de.gabik21.hospitalcore.HospitalCore;
  945. import de.gabik21.hospitalcore.util.BanUnit;
  946. import de.gabik21.hospitalcore.util.MuteManager;
  947. import java.util.List;
  948. import java.util.UUID;
  949. import org.bukkit.Bukkit;
  950. import org.bukkit.OfflinePlayer;
  951. import org.bukkit.command.Command;
  952. import org.bukkit.command.CommandExecutor;
  953. import org.bukkit.command.CommandSender;
  954. import org.bukkit.scheduler.BukkitRunnable;
  955.  
  956. public class MuteCommand
  957. implements CommandExecutor
  958. {
  959. public boolean onCommand(final CommandSender sender, Command cmd, String label, String[] args)
  960. {
  961. if ((!sender.hasPermission("Owner")) &&
  962. (!sender.hasPermission("Moderator")) &&
  963. (!sender.hasPermission("Supporter")))
  964. {
  965. sender.sendMessage("�cInsufficient permissions.");
  966. return true;
  967. }
  968. if (cmd.getName().equalsIgnoreCase("mute"))
  969. {
  970. if (args.length < 2) {
  971. return false;
  972. }
  973. final String toban = args[0];
  974.  
  975. String reasonbuilder = "";
  976. for (int i = 1; i < args.length; i++) {
  977. reasonbuilder = reasonbuilder + args[i] + " ";
  978. }
  979. final String reason = reasonbuilder;
  980.  
  981. new BukkitRunnable()
  982. {
  983. public void run()
  984. {
  985. UUID uuid = Bukkit.getOfflinePlayer(toban).getUniqueId();
  986. if (MuteManager.isMuted(uuid.toString())) {
  987. MuteManager.unmute(uuid.toString());
  988. }
  989. MuteManager.mute(uuid.toString(), toban, reason, -1L,
  990. sender.getName());
  991.  
  992. new BukkitRunnable()
  993. {
  994. public void run()
  995. {
  996. Bukkit.broadcastMessage("�c" + this.val$sender.getName() +
  997. " muted player " + this.val$toban + " for " +
  998. this.val$reason + " for a period of forever.");
  999. }
  1000. }.runTask(HospitalCore.getInstance());
  1001. }
  1002. }.runTaskAsynchronously(HospitalCore.getInstance());
  1003.  
  1004. return true;
  1005. }
  1006. if (cmd.getName().equalsIgnoreCase("tempmute"))
  1007. {
  1008. if (args.length < 4) {
  1009. return false;
  1010. }
  1011. final String toban = args[0];
  1012.  
  1013. String reasonbuilder = "";
  1014. for (int i = 3; i < args.length; i++) {
  1015. reasonbuilder = reasonbuilder + args[i] + " ";
  1016. }
  1017. String unitString = args[2];
  1018. List<String> unitList = BanUnit.getUnitsAsString();
  1019. if (!unitList.contains(unitString.toLowerCase())) {
  1020. return false;
  1021. }
  1022. final String reason = reasonbuilder;
  1023. BanUnit unit = BanUnit.getUnit(unitString);
  1024. try
  1025. {
  1026. timeint = Integer.valueOf(args[1]).intValue();
  1027. }
  1028. catch (NumberFormatException e)
  1029. {
  1030. int timeint;
  1031. sender.sendMessage("�cValue is too high for an Integer. INTEGER_MAX_VALUE = 2147483647");
  1032.  
  1033. return true;
  1034. }
  1035. int timeint;
  1036. final long time = timeint * unit.getToSecond();
  1037.  
  1038. new BukkitRunnable()
  1039. {
  1040. public void run()
  1041. {
  1042. UUID uuid = Bukkit.getOfflinePlayer(toban).getUniqueId();
  1043. if (MuteManager.isMuted(uuid.toString())) {
  1044. MuteManager.unmute(uuid.toString());
  1045. }
  1046. MuteManager.mute(uuid.toString(), toban, reason, time + 1L,
  1047. this.val$sender.getName());
  1048.  
  1049. final String remaining = MuteManager.getRemainingTime(uuid
  1050. .toString());
  1051.  
  1052. new BukkitRunnable()
  1053. {
  1054. public void run()
  1055. {
  1056. Bukkit.broadcastMessage("�c" + this.val$sender.getName() +
  1057. " muted player " + this.val$toban + " for " +
  1058. this.val$reason + " for a period of " + remaining);
  1059. }
  1060. }.runTask(HospitalCore.getInstance());
  1061. }
  1062. }.runTaskAsynchronously(HospitalCore.getInstance());
  1063.  
  1064. return true;
  1065. }
  1066. if (cmd.getName().equalsIgnoreCase("unmute"))
  1067. {
  1068. if (args.length != 1) {
  1069. return false;
  1070. }
  1071. final String name = args[0];
  1072.  
  1073. new BukkitRunnable()
  1074. {
  1075. public void run()
  1076. {
  1077. UUID uuid = Bukkit.getOfflinePlayer(name).getUniqueId();
  1078. if (!MuteManager.isMuted(uuid.toString()))
  1079. {
  1080. sender.sendMessage("�aIsn't banned.");
  1081. return;
  1082. }
  1083. MuteManager.unmute(uuid.toString());
  1084.  
  1085. new BukkitRunnable()
  1086. {
  1087. public void run()
  1088. {
  1089. Bukkit.broadcastMessage("�a" + this.val$name +
  1090. " has been unmuted by " +
  1091. this.val$sender.getName());
  1092. }
  1093. }.runTask(HospitalCore.getInstance());
  1094. }
  1095. }.runTaskAsynchronously(HospitalCore.getInstance());
  1096. return true;
  1097. }
  1098. if (cmd.getName().equalsIgnoreCase("mutecheck"))
  1099. {
  1100. if (args.length != 1) {
  1101. return false;
  1102. }
  1103. final String name = args[0];
  1104.  
  1105. new BukkitRunnable()
  1106. {
  1107. public void run()
  1108. {
  1109. if (name.equalsIgnoreCase("list"))
  1110. {
  1111. MuteManager.getMutedPlayers(sender);
  1112. return;
  1113. }
  1114. UUID uuid = Bukkit.getOfflinePlayer(name).getUniqueId();
  1115. if (!MuteManager.isMuted(uuid.toString()))
  1116. {
  1117. sender.sendMessage("�aThe player isn't muted");
  1118. }
  1119. else
  1120. {
  1121. sender.sendMessage("�c-------------");
  1122. sender.sendMessage("�cName: " + name);
  1123. sender.sendMessage("�cReason: " +
  1124. MuteManager.getReason(uuid.toString()));
  1125. sender.sendMessage("�cTime left: " +
  1126. MuteManager.getRemainingTime(uuid.toString()));
  1127. sender.sendMessage("�cMuted by: " +
  1128. MuteManager.getMuter(uuid.toString()));
  1129. sender.sendMessage("�c-------------");
  1130. }
  1131. }
  1132. }.runTaskAsynchronously(HospitalCore.getInstance());
  1133. }
  1134. return false;
  1135. }
  1136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement