package emeraldix.net;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class SimpleDupe
extends JavaPlugin
{
private int intervalUse = 4;
private String prefix = "[SD]";
private String msguse = "Предмет %s успешно копирован.";
private String msgError1 = "Возьми в руку предмет, который хочешь дюпнуть.";
private String msgInterval = "Ты должен подождать %d секунд до следующего использования.";
private String msgPerm = "У вас нет права на использование данной команды.";
private int dupeAmount = 32;
private boolean enable = true;
private Map<String, Long> lastUse = new HashMap();
public void onEnable()
{
createIfNotExist();
readConfig();
getCommand("dupe").setExecutor(this);
getCommand("sd").setExecutor(this);
}
public void createIfNotExist()
{
File f = new File(getDataFolder(), "config.yml");
if (!f.exists())
{
YamlConfiguration config = new YamlConfiguration();
config.set("intervalUse", Integer.valueOf(this.intervalUse));
config.set("prefix", this.prefix);
config.set("msguse", this.msguse);
config.set("msgError1", this.msgError1);
config.set("msgInterval", this.msgInterval);
config.set("msgPerm", this.msgPerm);
config.set("dupeAmount", Integer.valueOf(this.dupeAmount));
try
{
config.save(f);
}
catch (IOException ex)
{
System.out.println(ex.toString());
}
}
}
public void readConfig()
{
File f = new File(getDataFolder(), "config.yml");
FileConfiguration config = new YamlConfiguration();
try
{
config.load(f);
}
catch (IOException|InvalidConfigurationException e)
{
System.out.println(e.toString());
}
this.intervalUse = config.getInt("intervalUse");
this.prefix = config.getString("prefix").replace("&", "§");
this.msguse = config.getString("msguse", this.msguse).replace("&", "§");
this.msgError1 = config.getString("msgError1", this.msgError1).replace("&", "§");
this.msgInterval = config.getString("msgInterval", this.msgInterval).replace("&",
"§");
this.msgPerm = config.getString("msgPerm", this.msgPerm).replace("&", "§");
this.dupeAmount = config.getInt("dupeAmount");
}
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
{
Player p = null;
if ((sender instanceof Player)) {
p = (Player)sender;
}
if (p == null) {
return false;
}
String n = command.getName();
if (n.equals("dupe"))
{
if (!this.enable) {
return false;
}
if (p.hasPermission("SimpleDupe.user"))
{
ItemStack is = p.getItemInHand();
if ((is == null) || (is.getType() == Material.AIR))
{
p.sendMessage(this.prefix + this.msgError1);
return false;
}
Long now = Long.valueOf(Calendar.getInstance().getTimeInMillis() / 1000L);
Long was = Long.valueOf(0L);
if (this.lastUse.containsKey(p.getName())) {
was = (Long)this.lastUse.get(p.getName());
}
if (now.longValue() - was.longValue() < this.intervalUse)
{
p.sendMessage(this.prefix + String.format(this.msgInterval, new Object[] { Long.valueOf(this.intervalUse - (now.longValue() - was.longValue())) }));
return false;
}
int amount = is.getAmount();
amount += this.dupeAmount;
if (amount > 64) {
amount = 64;
}
is.setAmount(amount);
this.lastUse.put(p.getName(), now);
p.sendMessage(this.prefix + String.format(this.msguse, new Object[] { is.getType().toString() }));
return true;
}
p.sendMessage(this.prefix + this.msgPerm);
}
if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("on"))) {
if (p.hasPermission("SimpleDupe.admin"))
{
this.enable = true;
p.sendMessage(ChatColor.RED + "Дюп включен.");
}
else
{
p.sendMessage(this.prefix + this.msgPerm);
}
}
if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("off"))) {
if (p.hasPermission("SimpleDupe.admin"))
{
this.enable = false;
p.sendMessage(ChatColor.RED + "Дюп выключен.");
}
else
{
p.sendMessage(this.prefix + this.msgPerm);
}
}
if ((n.equals("sd")) && (args.length == 1) && (args[0].equals("reload"))) {
if (p.hasPermission("SimpleDupe.admin"))
{
createIfNotExist();
readConfig();
p.sendMessage(ChatColor.RED + "Плагин перезагружен.");
}
else
{
p.sendMessage(this.prefix + this.msgPerm);
}
}
return false;
}
}