Skip to content
Draft
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
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public LetterHead(OfflinePlayer player, int letterId, int itemsCount, LocalDateT
skullMeta.setOwningPlayer(player);
skullMeta.displayName(getPlayerName(player));
skullMeta.lore(List.of(
nonItalic(Component.text(formatRelativeDate(sentAt), NamedTextColor.DARK_GRAY)),
nonItalic(formatRelativeDate(sentAt).color(NamedTextColor.DARK_GRAY)),
nonItalic(Component.text("➤ Contient ", NamedTextColor.DARK_GREEN)
.append(Component.text(itemsCount, NamedTextColor.GREEN, TextDecoration.BOLD))
.append(Component.text(pluralize(" item", itemsCount), NamedTextColor.DARK_GREEN)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import fr.openmc.core.utils.text.messages.MessageType;
import fr.openmc.core.utils.text.messages.MessagesManager;
import fr.openmc.core.utils.text.messages.Prefix;
import fr.openmc.core.utils.text.messages.TranslationManager;
import net.kyori.adventure.text.Component;
import org.bukkit.entity.Player;

Expand Down Expand Up @@ -65,17 +66,17 @@ public static void sendPrivateMessage(Player sender, Player receiver, String mes
* @param message The message to send.
*/
public static void replyToLastMessage(Player sender, String message) {
UUID lastReceiverId = lastMessageFrom.get(sender.getUniqueId());
if (lastReceiverId == null) {
MessagesManager.sendMessage(sender, Component.text("§cVous n'avez pas de message privé récent."), Prefix.OPENMC, MessageType.ERROR, true);
return;
}
UUID lastReceiverId = lastMessageFrom.get(sender.getUniqueId());
if (lastReceiverId == null) {
MessagesManager.sendMessage(sender, TranslationManager.translation("messages.global.missing_arg"), Prefix.OPENMC, MessageType.ERROR, true);
return;
}

Player receiver = sender.getServer().getPlayer(lastReceiverId);
if (receiver == null || !receiver.isOnline()) {
MessagesManager.sendMessage(sender, Component.text("§cLe joueur n'est pas en ligne."), Prefix.OPENMC, MessageType.ERROR, true);
return;
}
Player receiver = sender.getServer().getPlayer(lastReceiverId);
if (receiver == null || !receiver.isOnline()) {
MessagesManager.sendMessage(sender, TranslationManager.translation("messages.global.player_not_found"), Prefix.OPENMC, MessageType.ERROR, true);
return;
}

sendPrivateMessage(sender, receiver, message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import fr.openmc.core.utils.text.messages.MessageType;
import fr.openmc.core.utils.text.messages.MessagesManager;
import fr.openmc.core.utils.text.messages.Prefix;
import net.kyori.adventure.text.Component;
import fr.openmc.core.utils.text.messages.TranslationManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

Expand All @@ -32,20 +32,20 @@ public Set<Object> getCommands() {
* @param player The player whose social spy status is being toggled.
*/
public static void toggleSocialSpy(Player player) {
UUID playerUUID = player.getUniqueId();
UUID playerUUID = player.getUniqueId();

if (socialSpyEnabled.contains(playerUUID)) {
socialSpyEnabled.remove(playerUUID);
MessagesManager.sendMessage(player,
Component.text("§aSocial Spy désactivé."),
Prefix.OPENMC, MessageType.SUCCESS, true);
} else {
socialSpyEnabled.add(playerUUID);
MessagesManager.sendMessage(player,
Component.text("§aSocial Spy activé."),
Prefix.OPENMC, MessageType.SUCCESS, true);
}
}
if (socialSpyEnabled.contains(playerUUID)) {
socialSpyEnabled.remove(playerUUID);
MessagesManager.sendMessage(player,
TranslationManager.translation("feature.privatemessage.socialspy.toggled_off"),
Prefix.OPENMC, MessageType.SUCCESS, true);
} else {
socialSpyEnabled.add(playerUUID);
MessagesManager.sendMessage(player,
TranslationManager.translation("feature.privatemessage.socialspy.toggled_on"),
Prefix.OPENMC, MessageType.SUCCESS, true);
}
}

/**
* Checks if the social spy feature is enabled for the player.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import fr.openmc.core.utils.text.messages.MessageType;
import fr.openmc.core.utils.text.messages.MessagesManager;
import fr.openmc.core.utils.text.messages.Prefix;
import fr.openmc.core.utils.text.messages.TranslationManager;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -43,22 +44,23 @@ public void toggleSocialSpyForPlayer(
@CommandPermission("omc.admin.commands.privatemessage.socialspy.admin")
public void listSocialSpyPlayers(Player admin) {
int spyCount = 0;
StringBuilder spyList = new StringBuilder("§6Joueurs avec Social Spy activé:\n");
StringBuilder spyList = new StringBuilder();

for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
if (SocialSpyManager.hasSocialSpyEnabled(onlinePlayer)) {
spyList.append("§7- §a").append(onlinePlayer.getName()).append("\n");
spyList.append(TranslationManager.translationString("feature.privatemessage.socialspy.list_item", Component.text(onlinePlayer.getName()))).append("\n");
spyCount++;
}
}

if (spyCount == 0) {
MessagesManager.sendMessage(admin,
Component.text("§cAucun joueur n'a le social spy activé."),
TranslationManager.translation("feature.privatemessage.socialspy.no_players"),
Prefix.OPENMC, MessageType.INFO, true);
} else {
spyList.append("§6Total: §e").append(spyCount).append(" joueur(s)");
admin.sendMessage(TranslationManager.translationString("feature.privatemessage.socialspy.list_title"));
admin.sendMessage(spyList.toString());
admin.sendMessage(TranslationManager.translationString("feature.privatemessage.socialspy.list_total", Component.text(spyCount)));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import fr.openmc.core.utils.text.messages.MessageType;
import fr.openmc.core.utils.text.messages.MessagesManager;
import fr.openmc.core.utils.text.messages.Prefix;
import fr.openmc.core.utils.text.messages.TranslationManager;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
Expand Down Expand Up @@ -176,7 +177,7 @@ private ItemStack createEnumItem(SettingType settingType, Object currentValue) {
this.refresh();

MessagesManager.sendMessage(getOwner(),
Component.text(settingType.getName() + " mis à jour.", NamedTextColor.GREEN)
TranslationManager.translation("feature.settings.item.updated", Component.text(settingType.getName()))
.decoration(TextDecoration.ITALIC, false),
Prefix.SETTINGS, MessageType.SUCCESS, true);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import fr.openmc.core.features.displays.holograms.Hologram;
import fr.openmc.core.features.displays.holograms.HologramLoader;
import fr.openmc.core.features.tickets.menus.MachineBallsMenu;
import fr.openmc.core.utils.text.messages.TranslationManager;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.sound.Sound;
import org.bukkit.Bukkit;
Expand Down Expand Up @@ -61,9 +62,9 @@ private void createMachineHologram(Location machineLocation) {
hologram.setLocation(hologramLocation.getX(), hologramLocation.getY(), hologramLocation.getZ());
hologram.setScale(0.7f);
hologram.setLines(
"§6§lMachine à boules V1",
"§eCliquez pour jouer !",
"§bBonne chance !"
TranslationManager.translationString("feature.tickets.machine.hologram_line1"),
TranslationManager.translationString("feature.tickets.machine.hologram_line2"),
TranslationManager.translationString("feature.tickets.machine.hologram_line3")
);

HologramLoader.registerHolograms(hologram);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@
import fr.openmc.core.utils.text.messages.MessageType;
import fr.openmc.core.utils.text.messages.MessagesManager;
import fr.openmc.core.utils.text.messages.Prefix;
import fr.openmc.core.utils.text.messages.TranslationManager;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.sound.Sound;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
Expand Down Expand Up @@ -53,30 +55,31 @@ public String getTexture() {
this,
Material.PAPER,
itemMeta -> {
itemMeta.displayName(Component.text("§eRécupérer mes tickets"));
itemMeta.displayName(TranslationManager.translation("feature.tickets.menu.get_tickets.title"));
itemMeta.lore(
List.of(
Component.text("§7Récupérer les tickets que"),
Component.text("§7vous avez récolté grâce à votre"),
Component.text("§7temps de jeu sur OpenMC V1.")
TranslationManager.translation("feature.tickets.menu.get_tickets.lore1"),
TranslationManager.translation("feature.tickets.menu.get_tickets.lore2"),
TranslationManager.translation("feature.tickets.menu.get_tickets.lore3")
));
}
).setOnClick(
e -> {
e.getWhoClicked().closeInventory();
if (stats == null) {
MessagesManager.sendMessage(getOwner(), Component.text("§cVous n'avez pas de statistique pour récupérer des tickets."), Prefix.OPENMC, MessageType.ERROR, true);
MessagesManager.sendMessage(getOwner(), TranslationManager.translation("feature.tickets.menu.no_stats"), Prefix.OPENMC, MessageType.ERROR, true);
return;
}
if (stats.isTicketGiven()) {
MessagesManager.sendMessage(getOwner(), Component.text("§cVous avez déjà récupéré vos tickets !"), Prefix.OPENMC, MessageType.ERROR, true);
MessagesManager.sendMessage(getOwner(), TranslationManager.translation("feature.tickets.menu.already_claimed"), Prefix.OPENMC, MessageType.ERROR, true);
return;
}
int ticketsToGive = TicketManager.giveTicket(getOwner().getUniqueId());
if (ticketsToGive <= 0) {
MessagesManager.sendMessage(getOwner(), Component.text("§cVous n'avez pas de tickets à récupérer !"), Prefix.OPENMC, MessageType.ERROR, true);
MessagesManager.sendMessage(getOwner(), TranslationManager.translation("feature.tickets.menu.no_tickets"), Prefix.OPENMC, MessageType.ERROR, true);
} else {
MessagesManager.sendMessage(getOwner(), Component.text("§aVous avez reçu §e%s §atickets !".formatted(ticketsToGive)), Prefix.OPENMC, MessageType.SUCCESS, true);
MessagesManager.sendMessage(getOwner(), TranslationManager.translation("feature.tickets.menu.claimed",
Component.text(ticketsToGive, NamedTextColor.YELLOW)), Prefix.OPENMC, MessageType.SUCCESS, true);
}
}
));
Expand All @@ -85,18 +88,18 @@ public String getTexture() {
this,
Material.NETHER_STAR,
itemMeta -> {
itemMeta.displayName(Component.text("§eOuvrir un ticket"));
itemMeta.displayName(TranslationManager.translation("feature.tickets.menu.open_ticket.title"));
itemMeta.lore(
List.of(
Component.text("§7Ouvrir une box avec 1 ticket."),
Component.text("§7Vous avez actuellement §e%s §7tickets.".formatted(tickets))
TranslationManager.translation("feature.tickets.menu.open_ticket.lore1"),
TranslationManager.translation("feature.tickets.menu.open_ticket.lore2", Component.text(tickets))
));
}
).setOnClick(
e -> {
e.getWhoClicked().closeInventory();
if (tickets <= 0) {
MessagesManager.sendMessage(getOwner(), Component.text("§cVous n'avez pas assez de tickets !"), Prefix.OPENMC, MessageType.ERROR, true);
MessagesManager.sendMessage(getOwner(), TranslationManager.translation("feature.tickets.menu.not_enough_tickets"), Prefix.OPENMC, MessageType.ERROR, true);
return;
}
MachineBallsOpenMenu menu = new MachineBallsOpenMenu(getOwner());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import fr.openmc.core.utils.text.messages.MessageType;
import fr.openmc.core.utils.text.messages.MessagesManager;
import fr.openmc.core.utils.text.messages.Prefix;
import fr.openmc.core.utils.text.messages.TranslationManager;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.sound.Sound;
import net.kyori.adventure.text.Component;
Expand Down Expand Up @@ -223,39 +224,39 @@ private LootItem selectRandomLoot() {
}

private void giveReward(LootItem wonItem) {
PlayerStats ps = TicketManager.getPlayerStats(getOwner().getUniqueId());
if (ps == null) return;

String itemKey = wonItem.displayName();
int alreadyWon = ps.getMaxItemsGiven().getOrDefault(itemKey, 0);

if (wonItem.maxRewards() > 0 && alreadyWon >= wonItem.maxRewards()) {
MessagesManager.sendMessage(getOwner(),
Component.text("§cVous avez déjà atteint la limite de cet item : ")
.append(Component.text(wonItem.displayName())),
Prefix.OPENMC, MessageType.ERROR, true);
return;
}

for (ItemStack reward : wonItem.rewards()) {
if (getOwner().getInventory().firstEmpty() != -1) {
getOwner().getInventory().addItem(reward);
} else {
getOwner().getWorld().dropItemNaturally(getOwner().getLocation(), reward);
}
}

if (wonItem.maxRewards() > 0) {
ps.getMaxItemsGiven().put(itemKey, alreadyWon + 1);
}

TicketManager.setTicketGiven(getOwner().getUniqueId(), ps.getTicketRemaining(), ps.isTicketGiven());
MessagesManager.sendMessage(getOwner(),
Component.text("§aVous avez gagné : ")
.append(Component.text(wonItem.displayName()))
.append(Component.text(" §a!")),
Prefix.OPENMC, MessageType.SUCCESS, true);
}
PlayerStats ps = TicketManager.getPlayerStats(getOwner().getUniqueId());
if (ps == null) return;

String itemKey = wonItem.displayName();
int alreadyWon = ps.getMaxItemsGiven().getOrDefault(itemKey, 0);

if (wonItem.maxRewards() > 0 && alreadyWon >= wonItem.maxRewards()) {
MessagesManager.sendMessage(getOwner(),
TranslationManager.translation("feature.tickets.loot.limit_reached")
.append(Component.text(wonItem.displayName())),
Prefix.OPENMC, MessageType.ERROR, true);
return;
}

for (ItemStack reward : wonItem.rewards()) {
if (getOwner().getInventory().firstEmpty() != -1) {
getOwner().getInventory().addItem(reward);
} else {
getOwner().getWorld().dropItemNaturally(getOwner().getLocation(), reward);
}
}

if (wonItem.maxRewards() > 0) {
ps.getMaxItemsGiven().put(itemKey, alreadyWon + 1);
}

TicketManager.setTicketGiven(getOwner().getUniqueId(), ps.getTicketRemaining(), ps.isTicketGiven());
MessagesManager.sendMessage(getOwner(),
TranslationManager.translation("feature.tickets.loot.won")
.append(Component.text(wonItem.displayName()))
.append(Component.text(" !")),
Prefix.OPENMC, MessageType.SUCCESS, true);
}

private List<LootItem> initializeLootItems() {
List<LootItem> items = new ArrayList<>();
Expand Down
16 changes: 12 additions & 4 deletions src/main/java/fr/openmc/core/features/tpa/TPAManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
import fr.openmc.core.utils.text.messages.MessageType;
import fr.openmc.core.utils.text.messages.MessagesManager;
import fr.openmc.core.utils.text.messages.Prefix;
import fr.openmc.core.utils.text.messages.TranslationManager;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

Expand Down Expand Up @@ -92,10 +94,16 @@ public static void expireRequest(Player player, Player target) {
if (tpaRequests.containsKey(target.getUniqueId())) {
if (tpaRequests.get(target.getUniqueId()).contains(player.getUniqueId())) {
long requestTime = tpaRequestTime.get(player.getUniqueId());
if (System.currentTimeMillis() - requestTime >= 30000) { // 30 secondes
MessagesManager.sendMessage(player, Component.text("§4Votre demande de téléportation à §6" + target.getName() + " §4a expiré"), Prefix.OPENMC, MessageType.WARNING, true);
MessagesManager.sendMessage(target, Component.text("§3La demande de téléportation de §6" + player.getName() + " §4a expiré"), Prefix.OPENMC, MessageType.INFO, true);

if (System.currentTimeMillis() - requestTime >= 30000) {
MessagesManager.sendMessage(player, TranslationManager.translation(
"feature.tpa.expire.sender",
Component.text(target.getName()).color(NamedTextColor.GOLD)
), Prefix.OPENMC, MessageType.WARNING, true);
MessagesManager.sendMessage(target, TranslationManager.translation(
"feature.tpa.expire.target",
Component.text(player.getName()).color(NamedTextColor.GOLD)
), Prefix.OPENMC, MessageType.INFO, true);

removeRequest(player, target);
}
}
Expand Down
Loading
Loading