public class command implements Listener, CommandExecutor {
private static Map<String, playerData> playerData = new HashMap<>();
FileConfiguration player;
public FileConfiguration getData() {
return this.player;
}
public static playerData getPlayerData(Player player)
{
if(!playerData.containsKey(player.getUniqueId().toString()))
{
playerData data = new playerData();
playerData.put(player.getUniqueId().toString(), data);
return data;
}
return playerData.get(player.getUniqueId().toString());
}
public static void setPlayerData(Player player, playerData data)
{
playerData.put(player.getUniqueId().toString(), data);
}
public static void resPlayerData(Player player)
{
playerData.remove(player.getUniqueId().toString());
}
//separatoooooooooooooooooooooooooooaaaaaaaaaaaaaaaaaaaaar//
final private String invLevel = "Level Progress";
public command(Leveling_System plugin)
{
Bukkit.getPluginManager().registerEvents(this, plugin);
}
@EventHandler
public void onInventoryClick(InventoryClickEvent event)
{
if (!event.getView().getTitle().equals(invLevel))
{
return;
}
Player player = (Player) event.getWhoClicked();
int slot = event.getSlot();
event.setCancelled(true);
}
@EventHandler
public void onBlockBreak(BlockBreakEvent event)
{
BlockData bdata = event.getBlock().getBlockData();
if(bdata instanceof Ageable){
Ageable age = (Ageable) bdata;
if(age.getAge() == age.getMaximumAge())
{
playerData data = command.getPlayerData(event.getPlayer()); //remove if needed
Player player = event.getPlayer();
int currentPoints = data.getExp();
int booster = data.getBoost();
int pointsToAdd = 4 * booster;
//level related
int currentLevel = data.getLevel();
int newLevel = currentLevel + 1;
//end of level related
int totalPoints = pointsToAdd + currentPoints;
int playerReq = data.getReq();
data.setExp(totalPoints);
player.sendTitle("§e§l+" + pointsToAdd, "§6§l" + currentLevel + " §8§l>> " + "§a" + totalPoints + "§7/§a" + playerReq, 1, 20, 1);
player.playSound(player.getLocation() ,"entity.experience_orb.pickup", 20, 300);
if(totalPoints >= playerReq)
{// Get player's current level or 0 if not found
int newReq = playerReq + 50;
data.setLevel(newLevel); // Update player's level
data.setExp(0); // Reset player's points to 0
data.setReq(newReq);
player.sendTitle("§6§lLEVEL UP!", "§8You are now §dLvl. " + currentLevel, 1, 20, 1);
player.playSound(player.getLocation() ,"ui.toast.challenge_complete", 20, 300);
}
}
}
}
@EventHandler
public void onEntityDeath(EntityDeathEvent event)
{
if("Dead Mobius".equals(event.getEntity().getCustomName()))
{
if(event.getEntity().getKiller() instanceof Player)
{
Player player = (Player) event.getEntity().getKiller();
playerData data = command.getPlayerData(event.getEntity().getKiller()); //remove if needed
int currentPoints = data.getExp();
int booster = data.getBoost();
int pointsToAdd = 4 * booster;
//level related
int currentLevel = data.getLevel();
int newLevel = currentLevel + 1;
//end of level related
int totalPoints = pointsToAdd + currentPoints;
int playerReq = data.getReq();
data.setExp(totalPoints);
player.sendTitle("§e§l+" + pointsToAdd, "§6§l" + currentLevel + " §8§l>> " + "§a" + totalPoints + "§7/§a" + playerReq, 1, 20, 1);
player.playSound(player.getLocation() ,"entity.experience_orb.pickup", 20, 300);
if(totalPoints >= playerReq)
{// Get player's current level or 0 if not found
int newReq = playerReq + 50;
data.setLevel(newLevel); // Update player's level
data.setExp(0); // Reset player's points to 0
data.setReq(newReq);
player.sendTitle("§6§lLEVEL UP!", "§8You are now §dLvl. " + currentLevel, 1, 20, 1);
player.playSound(player.getLocation() ,"ui.toast.challenge_complete", 20, 300);
}
}
}
}