Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.scmc.dead;
- import java.io.File;
- import java.io.IOException;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.List;
- import java.util.logging.Logger;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.Server;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.configuration.file.YamlConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.PlayerDeathEvent;
- import org.bukkit.event.player.PlayerLoginEvent;
- import org.bukkit.event.player.PlayerLoginEvent.Result;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitScheduler;
- public class Bans extends JavaPlugin
- implements Listener
- {
- private List<SCMCDead> banned = null;
- private Integer banLenght = Integer.valueOf(3);
- private String bannedMessage = ChatColor.RED + "Zginales!\n" + ChatColor.WHITE + "Odrodzisz sie %a!";
- private String farewell = ChatColor.RED + "Zginales!\n" + ChatColor.GRAY + "Masz 10 sekund na pozegnanie sie z serwerem!";
- private File configFile = null;
- private YamlConfiguration config = null;
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public void onEnable()
- {
- this.banned = new ArrayList();
- File dir = getDataFolder();
- if (!dir.exists()) {
- dir.mkdir();
- }
- this.configFile = new File(dir, "config.yml");
- if (!this.configFile.exists()) {
- try {
- this.configFile.createNewFile();
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- }
- this.config = YamlConfiguration.loadConfiguration(this.configFile);
- if (!this.config.contains("days"))
- this.config.set("days", this.banLenght);
- else {
- this.banLenght = Integer.valueOf(this.config.getInt("days"));
- }
- if (!this.config.contains("message"))
- this.config.set("message", this.bannedMessage);
- else {
- this.bannedMessage = this.config.getString("message");
- }
- if (!this.config.contains("farewell"))
- this.config.set("farewell", this.farewell);
- else {
- this.farewell = this.config.getString("farewell");
- }
- if (this.config.contains("Bans"))
- for (String str : this.config.getConfigurationSection("Bans").getKeys(false)) {
- SCMCDead ban = new SCMCDead(str);
- try {
- if (!ban.parseFromYaml(this.config, str))
- Bukkit.getLogger().info("Blad z banem: " + str);
- }
- catch (ParseException e)
- {
- Bukkit.getLogger().info("Wystapil ParseException z " + str);
- }
- Bukkit.getLogger().info(str + ": " + ban.whenExpires() + "==> " + new SimpleDateFormat("dd.MM.YYYY HH:mm").format(Calendar.getInstance().getTime()));
- this.banned.add(ban);
- }
- try
- {
- this.config.save(this.configFile);
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- getServer().getPluginManager().registerEvents(this, this);
- getLogger().info("Plugin SCMCDead uruchomiony!");
- }
- private void ban(SCMCDead ban) {
- if (this.banned.contains(ban)) {
- return;
- }
- this.banned.add(ban);
- ban.addToYaml(this.config);
- try {
- this.config.save(this.configFile);
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- }
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
- {
- if (cmd.getName().equalsIgnoreCase("hcub")) {
- if (args.length < 1) {
- sender.sendMessage(ChatColor.RED + "Sposob uzycia: " + ChatColor.AQUA + cmd.getUsage());
- return true;
- }
- OfflinePlayer op = Bukkit.getOfflinePlayer(args[0]);
- if (op == null) {
- sender.sendMessage(ChatColor.RED + "Nie znaleziono gracza!");
- return false;
- }
- for (SCMCDead ban : this.banned) {
- if (ban.getName().equals(op.getName())) {
- removeBan(ban);
- sender.sendMessage(ChatColor.GREEN + "Gracz odbanowany!");
- break;
- }
- }
- return true;
- }
- return true;
- }
- public void removeBan(SCMCDead b) {
- String path = "Bans." + b.getName();
- this.config.set(path, null);
- this.banned.remove(b);
- if (!this.banned.isEmpty()) {
- for (SCMCDead ban : this.banned)
- ban.addToYaml(this.config);
- }
- try
- {
- this.config.save(this.configFile);
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- }
- @EventHandler
- public void onDeath(PlayerDeathEvent evt) {
- Player player = evt.getEntity();
- if (player.hasPermission("scmcdead.noban"))
- return;
- SCMCDead ban = new SCMCDead(player.getName(), this.banLenght.intValue());
- ban(ban);
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', this.farewell));
- String kick = " " + ChatColor.translateAlternateColorCodes('&', this.bannedMessage.replace("%a", ban.whenExpires()));
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(player, kick){
- public void run() {
- this.val$player.kickPlayer(this.val$kick);
- }
- }
- , 200L);
- }
- @EventHandler
- public void onJoin(PlayerLoginEvent evt) {
- Player p = evt.getPlayer();
- if (!this.banned.isEmpty())
- for (SCMCDead ban : this.banned)
- if (ban.getName().equalsIgnoreCase(p.getName())) {
- if (ban.isExpired()) {
- removeBan(ban);
- return;
- }
- String kick = " " + ChatColor.translateAlternateColorCodes('&', this.bannedMessage.replace("%a", ban.whenExpires()));
- evt.disallow(PlayerLoginEvent.Result.KICK_BANNED, kick);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement