Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 18 additions & 30 deletions src/main/java/dev/padrewin/coldtracker/commands/StatsCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,17 @@ public void execute(@NotNull ColdTracker plugin, @NotNull CommandSender sender,
LocaleManager localeManager = plugin.getManager(LocaleManager.class);
String prefix = localeManager.getLocaleMessage("prefix");

// Dacă comanda vine din consolă fără argumente
if (!(sender instanceof Player) && args.length == 0) {
sender.sendMessage(prefix + localeManager.getLocaleMessage("command-stats-console-no-self"));
return;
}

// Dacă comanda vine de la un jucător și nu are argumente
if (args.length == 0 && sender instanceof Player) {
Player player = (Player) sender;
showStats(plugin, localeManager, sender, player.getUniqueId(), player.getName());
showStats(plugin, localeManager, sender, player.getUniqueId(), player.getName(), true);
return;
}

// Dacă există argumente, verificăm permisiunile
if (args.length == 1) {
if (!(sender instanceof Player) || sender.hasPermission("coldtracker.stats.others")) {
String targetName = args[0];
Expand All @@ -50,7 +47,6 @@ public void execute(@NotNull ColdTracker plugin, @NotNull CommandSender sender,

UUID targetUUID = targetPlayer.getUniqueId();

// Verificăm permisiunile folosind LuckPerms
plugin.getLuckPerms().getUserManager().loadUser(targetUUID).thenAcceptAsync(user -> {
if (user == null) {
sender.sendMessage(prefix + localeManager.getLocaleMessage("player-not-found").replace("{player}", targetName));
Expand All @@ -65,7 +61,7 @@ public void execute(@NotNull ColdTracker plugin, @NotNull CommandSender sender,
return;
}

showStats(plugin, localeManager, sender, targetUUID, targetName);
showStats(plugin, localeManager, sender, targetUUID, targetName, false);
});
} else {
sender.sendMessage(prefix + localeManager.getLocaleMessage("no-permission"));
Expand All @@ -75,8 +71,7 @@ public void execute(@NotNull ColdTracker plugin, @NotNull CommandSender sender,
}
}


private void showStats(ColdTracker plugin, LocaleManager localeManager, CommandSender sender, UUID playerUUID, String playerName) {
private void showStats(ColdTracker plugin, LocaleManager localeManager, CommandSender sender, UUID playerUUID, String playerName, boolean isSelf) {
String prefix = localeManager.getLocaleMessage("prefix");
long totalTime = plugin.getDatabaseManager().getTotalTime(playerUUID);
long hours = (totalTime / 1000) / 3600;
Expand All @@ -88,34 +83,27 @@ private void showStats(ColdTracker plugin, LocaleManager localeManager, CommandS

StringBuilder statsMessage = new StringBuilder();

boolean trackVotes = plugin.getConfig().getBoolean("track-votes", false);
int totalVotes = trackVotes ? plugin.getDatabaseManager().getTotalVotes(playerUUID) : 0;
statsMessage.append(" \n");

// Dacă targetul este senderul
if (sender instanceof Player && ((Player) sender).getUniqueId().equals(playerUUID)) {
String playtimeMessage = localeManager.getLocaleMessage("command-stats-playtime").replace("{time}", timeFormatted);
// Eliminăm punctul doar dacă voturile sunt trackate
if (trackVotes) {
playtimeMessage = playtimeMessage.endsWith(".") ? playtimeMessage.substring(0, playtimeMessage.length() - 1) : playtimeMessage;
}
statsMessage.append(prefix).append(playtimeMessage);
if (isSelf) {
statsMessage.append(prefix).append(localeManager.getLocaleMessage("command-stats-self-title")).append("\n");
} else {
String playtimeMessage = localeManager.getLocaleMessage("showtime-message").replace("{player}", playerName).replace("{time}", timeFormatted);
// Eliminăm punctul doar dacă voturile sunt trackate
if (trackVotes) {
playtimeMessage = playtimeMessage.endsWith(".") ? playtimeMessage.substring(0, playtimeMessage.length() - 1) : playtimeMessage;
}
statsMessage.append(prefix).append(playtimeMessage);
statsMessage.append(prefix).append(localeManager.getLocaleMessage("command-stats-other-title").replace("{player}", playerName)).append("\n");
}

// Adăugăm voturile doar dacă sunt trackate
if (trackVotes) {
statsMessage.append(" ").append(localeManager.getLocaleMessage("command-stats-votes").replace("{votes}", String.valueOf(totalVotes)));
statsMessage.append(prefix).append(localeManager.getLocaleMessage("command-stats-playtime-prefix").replace("{time}", timeFormatted)).append("\n");

if (plugin.getConfig().getBoolean("track-votes", false)) {
int totalVotes = plugin.getDatabaseManager().getTotalVotes(playerUUID);
statsMessage.append(prefix).append(localeManager.getLocaleMessage("command-stats-votes-prefix").replace("{votes}", String.valueOf(totalVotes))).append("\n");
}

sender.sendMessage(statsMessage.toString());
}
statsMessage.append(" \n");

for (String line : statsMessage.toString().split("\n")) {
sender.sendMessage(line.isEmpty() ? " " : line);
}
}


@Override
Expand All @@ -125,4 +113,4 @@ public List<String> tabComplete(@NotNull ColdTracker plugin, @NotNull CommandSen
}
return Collections.emptyList();
}
}
}
6 changes: 4 additions & 2 deletions src/main/resources/locale/en_US.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ command-votes-not-available: '&7Voting plugin not detected. Vote tracking is &cu
command-stats-description: '&8 - &c/coldtracker stats &7- View your personal stats'
command-stats-player-only: '&cOnly players can use this command.'
command-stats-console-no-self: '&7Console can''t have stats.'
command-stats-playtime: '&7You have a total time of &c{time}&7.'
command-stats-votes: '&7and &c{votes} votes&7.'
command-stats-self-title: '&7Your stats:'
command-stats-other-title: '&c{player}''s &7stats:'
command-stats-playtime-prefix: '• &7Playtime: &c{time} 🕓'
command-stats-votes-prefix: '• &7Votes: &c{votes} 📩'

# Database message warnings
command-wipe-description: '&8 - &c/coldtracker wipe &7- Wipe current SQLite database'
Expand Down
44 changes: 23 additions & 21 deletions src/main/resources/locale/fr_FR.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,36 @@ command-help-description: '&8 - &c/coldtracker help &7- Affiche le menu d''aide.
command-help-title: '&cCommandes disponibles :'

# Misc
no-permission: '&cVous n''avez pas la permission de faire cela !'
no-permission: '&cVous n''avez pas la permission pour cela !'
unknown-command: '&cCommande inconnue &4%input%&c.'
invalid-command-usage: '&cUtilisation invalide de la commande.'
player-not-found: '&7Joueur introuvable : &c{player}&7.'
player-not-found: '&7Le joueur est introuvable : &c{player}&7.'

# Showtime Command Message
command-showtime-description: '&8 - &c/coldtracker showtime <playername> &7- Affiche le temps total suivi du joueur'
command-showtime-description: '&8 - &c/coldtracker showtime <playername> &7- Affiche le temps total suivi d''un joueur'
no-staff-member: '&7&c{player} &7n''est pas un membre du staff.'
showtime-message: '&c{player} &7a joué pendant &c{time}&7.'
command-showtime-usage: '&7Utilisation : &c/coldtracker showtime <playername>'

# ShowVote Command Message
command-showvotes-description: '&8 - &c/coldtracker showvotes <playername> &7- Affiche le total des votes suivis du joueur'
command-showvotes-description: '&8 - &c/coldtracker showvotes <playername> &7- Affiche le nombre total de votes d''un joueur'
showvotes-message: "&c{player} &7a un total de &c{votes}&7 votes."
command-showvotes-disabled: '&7Le suivi des votes est &cdésactivé&7. Consultez le fichier de configuration.'
command-votes-not-available: '&7Plugin de vote non détecté. Le suivi des votes est &cindisponible&7.'
command-showvotes-disabled: '&7Le suivi des votes est &cdésactivé&7. Veuillez consulter le fichier de configuration.'
command-votes-not-available: '&7Aucun plugin de vote détecté. Le suivi des votes est &cindisponible&7.'

# Stats Command
command-stats-description: '&8 - &c/coldtracker stats &7- Voir vos statistiques personnelles'
command-stats-player-only: '&cSeuls les joueurs peuvent utiliser cette commande.'
command-stats-console-no-self: '&7La console ne peut pas avoir de statistiques.'
command-stats-playtime: '&7Vous avez joué pendant un total de &c{time}&7.'
command-stats-votes: '&7et &c{votes} votes&7.'
command-stats-self-title: '&7Vos statistiques :'
command-stats-other-title: '&c{player}&7''s statistiques :'
command-stats-playtime-prefix: '• &7Temps de jeu : &c{time} 🕓'
command-stats-votes-prefix: '• &7Votes : &c{votes} 📩'

# Database message warnings
command-wipe-description: '&8 - &c/coldtracker wipe &7- Efface la base de données SQLite actuelle'
command-wipe-description: '&8 - &c/coldtracker wipe &7- Effacer la base de données SQLite actuelle'
command-wipe-usage: '&7Utilisation : &c/coldtracker wipe'
command-wipe-warning: '&eATTENTION : &cCette opération effacera toutes les données de la base de données active. &cSi vous êtes absolument sûr, utilisez &a/coldtracker wipe confirm&c.'
command-wipe-warning: '&eATTENTION : &cCette opération supprimera toutes les données de la base de données active. &cSi vous êtes absolument sûr, utilisez &a/coldtracker wipe confirm&c.'
command-wipe-success: '&7Toutes les données de la base de données ont été effacées &avec succès&7.'

# Base Command Message
Expand All @@ -43,21 +45,21 @@ base-command-help: '&7Utilisez &c/coldtracker help &7pour des informations sur l
# Reload Command
command-reload-description: '&8 - &c/coldtracker reload &7- Recharge le plugin'
command-reload-usage: '&7Utilisation : &c/coldtracker reload'
command-reload-success: '&7Les fichiers de configuration et de localisation ont été rechargés.'
command-reload-success: '&7Les fichiers de configuration et de langue ont été rechargés.'

# Dump Command
command-dump-disabled: '&7Le dump Gist est &cdésactivé&7. Consultez le fichier de configuration.'
command-dump-description: '&8 - &c/coldtracker dump &7- Déverse les données de la base de données actuelle dans un Gist'
command-dump-disabled: '&7Dump Gist &cdésactivé&7. Veuillez consulter le fichier de configuration.'
command-dump-description: '&8 - &c/coldtracker dump &7- Exporter les données de la base de données actuelle dans Gist'
command-dump-usage: '&7Utilisation : &c/coldtracker dump'
command-dump-warning: '&eATTENTION : &cCette opération déversera les données de la base de données actuelle. Utilisez &a/coldtracker dump confirm&c pour continuer.'
command-dump-success: '&7Le dump de la base de données a été effectué &avec succès&7 ! Lien : &a{link}'
command-dump-fail: '&cÉchec de la génération du lien Gist. Consultez la console pour les erreurs.'
command-dump-warning: '&eATTENTION : &cCette opération exportera les données de la base de données actuelle. Utilisez &a/coldtracker dump confirm&c pour continuer.'
command-dump-success: '&7Exportation des données &aeffectuée avec succès&7 ! Lien : &a{link}'
command-dump-fail: '&cImpossible de générer le lien Gist. Consultez la console pour plus d''erreurs.'

# Export Command
command-export-description: '&8 - &c/coldtracker export &7- Exporte les données vers plugins/ColdTracker'
command-export-warning: '&eATTENTION : &cLe fichier d''export existe déjà. Utilisez &a/coldtracker export confirm &cpour le remplacer.'
command-export-success: '&7Export &areussi&7. Les données ont été sauvegardées dans &aplugins/ColdTracker/{folder}&7.'
command-export-fail: '&cÉchec de la sauvegarde du fichier export.yml. Consultez la console pour les erreurs.'
command-export-description: '&8 - &c/coldtracker export &7- Exporte les données dans plugins/ColdTracker'
command-export-warning: '&eATTENTION : &cLe fichier d''exportation existe déjà. Utilisez &a/coldtracker export confirm &cpour écraser.'
command-export-success: '&7Exportation &aeffectuée avec succès&7. Les données ont été enregistrées dans &aplugins/ColdTracker/{folder}&7.'
command-export-fail: '&cImpossible d''enregistrer export.yml. Consultez la console pour plus d''erreurs.'

# Version Command
command-version-description: '&8 - &c/coldtracker version &7- Affiche la version de ColdTracker'
command-version-description: '&8 - &c/coldtracker version &7- Affiche les informations de version pour ColdTracker'
42 changes: 22 additions & 20 deletions src/main/resources/locale/pt_PT.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
prefix: '&8「&#635AA7C&#7D72B7o&#978BC7l&#B2A3D8d&#CCBCE8T&#E6D4F8r&#D8B8F8a&#C99CF7c&#BB80F7k&#AC64F6e&#9E48F6r&8」&7» '

# Help Command
command-help-description: '&8 - &c/coldtracker help &7- Mostra o menu de ajuda... Você chegou'
command-help-title: '&cComandos disponíveis:'
command-help-description: '&8 - &c/coldtracker help &7- Exibe o menu de ajuda... Você chegou'
command-help-title: '&cComandos Disponíveis:'

# Misc
no-permission: '&cVocê não tem permissão para isso!'
Expand All @@ -12,52 +12,54 @@ invalid-command-usage: '&cUso inválido do comando.'
player-not-found: '&7Jogador não encontrado: &c{player}&7.'

# Showtime Command Message
command-showtime-description: '&8 - &c/coldtracker showtime <playername> &7- Mostra o tempo total registrado do jogador'
no-staff-member: '&7&c{player} &7não é membro da equipe.'
command-showtime-description: '&8 - &c/coldtracker showtime <playername> &7- Mostra o tempo total registrado de um jogador'
no-staff-member: '&7&c{player} &7não é um membro da equipe.'
showtime-message: '&c{player} &7jogou por &c{time}&7.'
command-showtime-usage: '&7Uso: &c/coldtracker showtime <playername>'

# ShowVote Command Message
command-showvotes-description: '&8 - &c/coldtracker showvotes <playername> &7- Mostra o total de votos registrados do jogador'
command-showvotes-description: '&8 - &c/coldtracker showvotes <playername> &7- Mostra o total de votos de um jogador'
showvotes-message: "&c{player} &7tem um total de &c{votes}&7 votos."
command-showvotes-disabled: '&7O rastreamento de votos está &cdesativado&7. Consulte o arquivo de configuração.'
command-votes-not-available: '&7Plugin de votação não detectado. Rastreamento de votos está &cindisponível&7.'
command-votes-not-available: '&7Nenhum plugin de votos detectado. O rastreamento de votos está &cindisponível&7.'

# Stats Command
command-stats-description: '&8 - &c/coldtracker stats &7- Veja suas estatísticas pessoais'
command-stats-player-only: '&cApenas jogadores podem usar este comando.'
command-stats-console-no-self: '&7O console não pode ter estatísticas.'
command-stats-playtime: '&7Você tem um tempo total de &c{time}&7.'
command-stats-votes: '&7e &c{votes} votos&7.'
command-stats-self-title: '&7Suas estatísticas:'
command-stats-other-title: '&c{player}&7''s estatísticas:'
command-stats-playtime-prefix: '• &7Tempo de Jogo: &c{time} 🕓'
command-stats-votes-prefix: '• &7Votos: &c{votes} 📩'

# Database message warnings
command-wipe-description: '&8 - &c/coldtracker wipe &7- Apaga o banco de dados SQLite atual'
command-wipe-usage: '&7Uso: &c/coldtracker wipe'
command-wipe-warning: '&eAVISO: &cEsta operação apagará todos os dados do banco de dados ativo. &cSe você tiver certeza absoluta, use &a/coldtracker wipe confirm&c.'
command-wipe-warning: '&eAVISO: &cEsta operação excluirá todos os dados do banco de dados ativo. &cSe você tiver certeza absoluta, use &a/coldtracker wipe confirm&c.'
command-wipe-success: '&7Todos os dados do banco de dados foram apagados &com sucesso&7.'

# Base Command Message
base-command-color: '&7'
base-command-help: '&7Use &c/coldtracker help &7para obter informações sobre os comandos.'
base-command-help: '&7Use &c/coldtracker help &7para informações sobre os comandos.'

# Reload Command
command-reload-description: '&8 - &c/coldtracker reload &7- Recarrega o plugin'
command-reload-usage: '&7Uso: &c/coldtracker reload'
command-reload-success: '&7Os arquivos de configuração e de localização foram recarregados.'
command-reload-success: '&7Os arquivos de configuração e localização foram recarregados.'

# Dump Command
command-dump-disabled: '&7O dump Gist está &cdesativado&7. Consulte o arquivo de configuração.'
command-dump-description: '&8 - &c/coldtracker dump &7- Despeja os dados do banco de dados atual em um Gist'
command-dump-disabled: '&7Dump Gist &cdesativado&7. Consulte o arquivo de configuração.'
command-dump-description: '&8 - &c/coldtracker dump &7- Exporta os dados do banco de dados atual para Gist'
command-dump-usage: '&7Uso: &c/coldtracker dump'
command-dump-warning: '&eAVISO: &cEsta operação despejará os dados do banco de dados atual. Use &a/coldtracker dump confirm&c para continuar.'
command-dump-success: '&7Dump do banco de dados realizado &com sucesso&7! Link: &a{link}'
command-dump-fail: '&cFalha ao gerar o link Gist. Verifique o console para erros.'
command-dump-warning: '&eAVISO: &cEsta operação exportará os dados do banco de dados atual. Use &a/coldtracker dump confirm&c para continuar.'
command-dump-success: '&7Dump do banco de dados &realizado com sucesso&7! Link: &a{link}'
command-dump-fail: '&cNão foi possível gerar o link Gist. Consulte o console para mais erros.'

# Export Command
command-export-description: '&8 - &c/coldtracker export &7- Exporta os dados para plugins/ColdTracker'
command-export-warning: '&eAVISO: &cO arquivo de exportação já existe. Use &a/coldtracker export confirm &cpara substituí-lo.'
command-export-success: '&7Exportação &completa&7. Os dados foram salvos em &aplugins/ColdTracker/{folder}&7.'
command-export-fail: '&cFalha ao salvar export.yml. Verifique o console para erros.'
command-export-warning: '&eAVISO: &cO arquivo de exportação já existe. Use &a/coldtracker export confirm &cpara sobrescrever.'
command-export-success: '&7Exportação &realizada com sucesso&7. Os dados foram salvos em &aplugins/ColdTracker/{folder}&7.'
command-export-fail: '&cNão foi possível salvar export.yml. Consulte o console para erros.'

# Version Command
command-version-description: '&8 - &c/coldtracker version &7- Exibe a versão do ColdTracker'
command-version-description: '&8 - &c/coldtracker version &7- Exibe informações da versão para o ColdTracker'
Loading