package me.beastman3226.bc.listener;
import me.beastman3226.bc.BusinessCore;
import me.beastman3226.bc.BusinessCore.Information;
import me.beastman3226.bc.business.Business;
import me.beastman3226.bc.business.BusinessManager;
import me.beastman3226.bc.event.business.BusinessHiredEmployeeEvent;
import me.beastman3226.bc.player.Employee;
import me.beastman3226.bc.player.EmployeeManager;
import me.beastman3226.bc.player.Manager;
import me.beastman3226.bc.util.Prefixes;
import me.beastman3226.bc.util.Scheduler;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
/**
*
* @author beastman3226
*/
public class PlayerListener implements Listener {
@EventHandler
public void onChat(AsyncPlayerChatEvent e) {
if (Scheduler.playerMilli.containsKey(e.getPlayer().getName()) && e.getMessage().contains("yes")) {
if (Scheduler.playerMilli.get(e.getPlayer().getName()) >= (System.currentTimeMillis() - 10000)) {
Business b = BusinessManager.getBusiness(EmployeeManager.pending.get(e.getPlayer().getName()));
BusinessHiredEmployeeEvent event = new BusinessHiredEmployeeEvent(b, null);
Employee newEmployee = EmployeeManager.addEmployee(e.getPlayer().getName(), b.getID());
event.setEmployee(newEmployee);
Bukkit.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
event.getBusiness().addEmployee(event.getEmployee());
EmployeeManager.pending.remove(e.getPlayer().getName());
Business.businessList.remove(event.getBusiness());
Business.businessList.add(event.getBusiness());
e.getPlayer().sendMessage(Prefixes.POSITIVE + "You have been hired to work for " + event.getBusiness().getName());
e.setCancelled(true);
}
} else {
e.getPlayer().sendMessage(Prefixes.ERROR + "Timed out.");
Scheduler.playerMilli.remove(e.getPlayer().getName());
}
}
}
@EventHandler
public void onLogin(PlayerJoinEvent e) {
Player player = e.getPlayer();
String prefix = "";
if (Information.prefix) {
if (BusinessManager.isOwner(player.getName())) {
prefix = ChatColor.GRAY + "[" + Information.config.getString("prefixes.colorcodes.owner") + BusinessManager.getBusiness(player.getName()).getName() + ChatColor.GRAY + "]";
} else if (Manager.isManager(player.getName()) && BusinessCore.Information.managers) {
prefix = ChatColor.GRAY + "[" + Information.config.getString("prefixes.colorcodes.manager") + Manager.getBusiness(player.getName()).getName() + ChatColor.GRAY + "]";
} else if (EmployeeManager.isEmployee(player.getName())) {
prefix = ChatColor.GRAY + "[" + Information.config.getString("prefixes.colorcodes.employee") + EmployeeManager.getEmployee(player.getName()).getBusiness().getName() + ChatColor.GRAY + "]";
}
prefix = ChatColor.translateAlternateColorCodes('&', prefix);
if (!Information.chat.getPlayerPrefix(player).contains(prefix)) {
Information.chat.setPlayerPrefix(player, ChatColor.translateAlternateColorCodes('&', prefix) + Information.chat.getPlayerPrefix(player));
} else if (Information.chat.getPlayerPrefix(player).contains(prefix)) {
int first = Information.chat.getPlayerPrefix(player).indexOf(prefix);
int last = Information.chat.getPlayerPrefix(player).lastIndexOf(prefix);
if (first != last) {
prefix = Information.chat.getPlayerPrefix(player).replace(Information.chat.getPlayerPrefix(player).subSequence(first, last + prefix.length()), prefix);
Information.chat.setPlayerPrefix(player, ChatColor.translateAlternateColorCodes('&', prefix));
}
}
} else if(Information.chat.getPlayerPrefix(player).contains(BusinessManager.getBusiness(player.getName()).getName())){
prefix = Information.chat.getPlayerPrefix(player).replace("[" + BusinessManager.getBusiness(player.getName()).getName() + "]", "");
Information.chat.setPlayerPrefix(player, ChatColor.translateAlternateColorCodes('&', prefix));
}
}
}