Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
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
11 changes: 5 additions & 6 deletions src/main/java/fr/openmc/api/chronometer/Chronometer.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import lombok.Getter;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
Expand All @@ -17,7 +18,6 @@
import org.jetbrains.annotations.NotNull;

import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;

Expand Down Expand Up @@ -93,11 +93,10 @@ public void run() {
int remainingTime = chronometer.get(entityUUID).get(group);

if (message != null && entity instanceof Player player) {
Component timerMessage = message.replaceText(builder ->
builder.matchLiteral("%sec%")
.replacement(Component.text(remainingTime))
);
sendMessage(player, messageType, timerMessage);
String timerMessage = PlainTextComponentSerializer.plainText().serialize(message)
.replace("%sec%", String.valueOf(remainingTime));

sendMessage(player, messageType, Component.text(timerMessage));
}

if (timerEnd(entityUUID, group)) {
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/fr/openmc/api/cooldown/DynamicCooldownManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@ public class DynamicCooldownManager {
*/
@DatabaseTable(tableName = "cooldowns")
public static class Cooldown {
@DatabaseField(id = true)
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(uniqueCombo = true, canBeNull = false)
private UUID uniqueId;
@DatabaseField(canBeNull = false)
@DatabaseField(uniqueCombo = true, canBeNull = false)
private String group;
@DatabaseField(canBeNull = false)
private long duration;
Expand Down Expand Up @@ -126,6 +128,12 @@ public static void saveCooldowns() {
} catch (SQLException e) {
throw new RuntimeException(e);
}
} else {
try {
cooldownDao.delete(cooldown);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
});
});
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/fr/openmc/api/input/ChatInput.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class ChatInput implements Listener {

private static final Map<UUID, Consumer<String>> playerInputs = new HashMap<>();

public static void sendInput(Player player, String startMessage, Consumer<String> callback) {
public static void sendInput(Player player, Component startMessage, Consumer<String> callback) {
playerInputs.put(player.getUniqueId(), callback);
player.closeInventory();
player.sendMessage(startMessage);
Expand Down
8 changes: 1 addition & 7 deletions src/main/java/fr/openmc/core/OMCPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,8 @@
import fr.openmc.core.utils.ShutUpOrmLite;
import fr.openmc.core.utils.database.DatabaseManager;
import fr.openmc.core.utils.errors.ErrorReporter;
import fr.openmc.core.utils.messages.TranslationManager;
import io.papermc.paper.datapack.Datapack;
import lombok.Getter;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.Bukkit;
import org.bukkit.Particle;
import org.bukkit.configuration.file.FileConfiguration;
Expand All @@ -62,7 +58,6 @@
import org.slf4j.Logger;

import java.io.File;
import java.util.Locale;

public class OMCPlugin extends JavaPlugin {
@Getter
Expand Down Expand Up @@ -143,8 +138,6 @@ public void onEnable() {
HalloweenManager.init();

MotdUtils.init();
DynamicCooldownManager.init();

MascotsManager.init();

PlayerSettingsManager.loadAllPlayerSettings();
Expand All @@ -162,6 +155,7 @@ public void loadWithItemsAdder() {
MilestonesManager.init();
QuestsManager.init();
CityManager.init();
DynamicCooldownManager.init();
ContestManager.init();
DreamManager.init();
MultiBlockManager.init();
Expand Down
17 changes: 14 additions & 3 deletions src/main/java/fr/openmc/core/features/city/City.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,15 @@
import fr.openmc.core.utils.ChunkPos;
import fr.openmc.core.utils.DateUtils;
import fr.openmc.core.utils.cache.CacheOfflinePlayer;
import fr.openmc.core.utils.cache.PlayerNameCache;
import fr.openmc.core.utils.messages.MessageType;
import fr.openmc.core.utils.messages.MessagesManager;
import fr.openmc.core.utils.messages.Prefix;
import fr.openmc.core.utils.messages.TranslationManager;
import lombok.Getter;
import lombok.Setter;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.OfflinePlayer;
Expand Down Expand Up @@ -794,21 +796,30 @@ public void changeRank(Player sender, UUID playerUUID, DBCityRank newRank) {

DBCityRank currentRank = getRankOfMember(playerUUID);
OfflinePlayer player = CacheOfflinePlayer.getOfflinePlayer(playerUUID);

if (currentRank != null) {
currentRank.removeMember(playerUUID);
for (CityPermission permission : currentRank.getPermissionsSet()) {
removePermission(playerUUID, permission);
}
MessagesManager.sendMessage(sender, Component.text("§cVous avez retiré le grade §e" + currentRank.getName() + "§c de §6" + player.getName()), Prefix.CITY, MessageType.SUCCESS, true);
MessagesManager.sendMessage(sender,
TranslationManager.translation("feature.city.grade.remove_grade",
Component.text(currentRank.getName()).color(NamedTextColor.YELLOW),
PlayerNameCache.name(playerUUID).color(NamedTextColor.GOLD)),
Prefix.CITY, MessageType.SUCCESS, true);
}

if (currentRank != newRank) {
newRank.addMember(playerUUID);
for (CityPermission permission : newRank.getPermissionsSet()) {
addPermission(playerUUID, permission);
}
MessagesManager.sendMessage(sender, Component.text("§aVous avez assigné le grade §e" + newRank.getName() + "§a à §6" + player.getName()), Prefix.CITY, MessageType.SUCCESS, true);
MessagesManager.sendMessage(sender,
TranslationManager.translation("feature.city.grade.assign_grade",
Component.text(newRank.getName()).color(NamedTextColor.YELLOW),
PlayerNameCache.name(playerUUID).color(NamedTextColor.GOLD)
),
Prefix.CITY, MessageType.SUCCESS, true);
}

Bukkit.getScheduler().runTaskAsynchronously(OMCPlugin.getInstance(), () -> {
Expand Down
22 changes: 14 additions & 8 deletions src/main/java/fr/openmc/core/features/city/CityChatManager.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package fr.openmc.core.features.city;

import fr.openmc.core.utils.cache.CacheOfflinePlayer;
import fr.openmc.core.utils.messages.MessageType;
import fr.openmc.core.utils.messages.MessagesManager;
import fr.openmc.core.utils.messages.Prefix;
import fr.openmc.core.utils.messages.TranslationManager;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;

Expand All @@ -26,7 +27,8 @@ public class CityChatManager {
*/
public static void addCityChatMember(Player player) {
cityChatMembers.add(player);
MessagesManager.sendMessage(player, Component.text("Vous avez rejoint le chat de ville"), Prefix.CITY, MessageType.INFO, false);
MessagesManager.sendMessage(player, TranslationManager.translation("feature.city.chat.entered"),
Prefix.CITY, MessageType.INFO, false);
}

/**
Expand All @@ -35,7 +37,8 @@ public static void addCityChatMember(Player player) {
*/
public static void removeCityChatMember(Player player) {
cityChatMembers.remove(player);
MessagesManager.sendMessage(player, Component.text("Vous avez quitté le chat de ville"), Prefix.CITY, MessageType.INFO, false);
MessagesManager.sendMessage(player, TranslationManager.translation("feature.city.chat.leaved"),
Prefix.CITY, MessageType.INFO, false);
}

/**
Expand All @@ -55,20 +58,23 @@ public static boolean isCityChatMember(Player player) {
public static void sendCityChatMessage(Player sender, Component message) {
City city = CityManager.getPlayerCity(sender.getUniqueId());
if (city == null) {
MessagesManager.sendMessage(sender, Component.text("Tu n'habites dans aucune ville"), Prefix.CITY, MessageType.ERROR, false);
MessagesManager.sendMessage(sender, TranslationManager.translation("messages.city.player_no_in_city"),
Prefix.CITY, MessageType.ERROR, false);
return;
}

Component msg_component = Component.text("#ville ").color(NamedTextColor.GOLD).append(sender.displayName().color(NamedTextColor.WHITE)).append(
Component msg_component = TranslationManager.translation("feature.city.chat.prefix").color(NamedTextColor.GOLD)
.appendSpace()
.append(sender.displayName().color(NamedTextColor.WHITE)).append(
Component.text(" » ").color(NamedTextColor.GRAY).append(
message.color(NamedTextColor.WHITE)
)
);

for (UUID uuid : city.getMembers()) {
OfflinePlayer player = Bukkit.getOfflinePlayer(uuid);
if (player.isOnline()) {
((Player) player).sendMessage(msg_component);
OfflinePlayer offlinePlayer = CacheOfflinePlayer.getOfflinePlayer(uuid);
if (offlinePlayer.isOnline() && offlinePlayer instanceof Player player) {
player.sendMessage(msg_component);
}
}
}
Expand Down
57 changes: 29 additions & 28 deletions src/main/java/fr/openmc/core/features/city/CityPermission.java
Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
package fr.openmc.core.features.city;

import fr.openmc.core.utils.messages.TranslationManager;
import lombok.Getter;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;

@Getter
public enum CityPermission {
OWNER("Propriétaire", Material.NETHERITE_BLOCK), //Impossible à donner sauf avec un transfert
INVITE("Inviter", Material.OAK_DOOR),
KICK("Expulser", Material.IRON_DOOR),
PLACE("Placer des blocs", Material.OAK_LOG),
BREAK("Casser des blocs", Material.STONE_PICKAXE),
OPEN_CHEST("Ouvrir les coffres", Material.CHEST),
INTERACT("Interagir avec les blocs (sauf coffres)", Material.LEVER),
CLAIM("Claim", Material.GRASS_BLOCK),
SEE_CHUNKS("Voir les claims", Material.MAP),
RENAME("Renommer", Material.NAME_TAG),
MONEY_GIVE("Déposer de l'argent", Material.EMERALD),
MONEY_BALANCE("Voir l'argent", Material.GOLD_INGOT),
MONEY_TAKE("Retirer de l'argent", Material.DIAMOND),
PERMS("Permissions", Material.DIAMOND_BLOCK), // Cette permission est donnée seulement par l'owner
CHEST("Accès au coffre de ville", Material.ENDER_CHEST),
CHEST_UPGRADE("Améliorer le coffre de ville", Material.OAK_CHEST_BOAT),
TYPE("Changer le type de ville", Material.BIRCH_SIGN),
MASCOT_MOVE("Déplacer la mascotte", Material.LEAD),
MASCOT_SKIN("Changer le skin de la mascotte", Material.ZOMBIE_SPAWN_EGG),
MASCOT_UPGRADE("Améliorer la mascotte", Material.BONE),
MASCOT_HEAL("Soigner la mascotte", Material.POTION),
LAUNCH_WAR("Lancer des guerres", Material.IRON_SWORD),
MANAGE_RANKS("Gérer les grades", Material.PAPER),
ASSIGN_RANKS("Assigner des grades", Material.BOOK)
OWNER(TranslationManager.translation("feature.city.permission.owner"), Material.NETHERITE_BLOCK), //Impossible à donner sauf avec un transfert
INVITE(TranslationManager.translation("feature.city.permission.invite"), Material.OAK_DOOR),
KICK(TranslationManager.translation("feature.city.permission.kick"), Material.IRON_DOOR),
PLACE(TranslationManager.translation("feature.city.permission.place"), Material.OAK_LOG),
BREAK(TranslationManager.translation("feature.city.permission.break"), Material.STONE_PICKAXE),
OPEN_CHEST(TranslationManager.translation("feature.city.permission.open_chest"), Material.CHEST),
INTERACT(TranslationManager.translation("feature.city.permission.interact"), Material.LEVER),
CLAIM(TranslationManager.translation("feature.city.permission.claim"), Material.GRASS_BLOCK),
SEE_CHUNKS(TranslationManager.translation("feature.city.permission.see_claim"), Material.MAP),
RENAME(TranslationManager.translation("feature.city.permission.rename"), Material.NAME_TAG),
MONEY_DEPOSIT(TranslationManager.translation("feature.city.permission.money_deposit"), Material.EMERALD),
MONEY_BALANCE(TranslationManager.translation("feature.city.permission.money_see"), Material.GOLD_INGOT),
MONEY_WITHDRAW(TranslationManager.translation("feature.city.permission.money_withdraw"), Material.DIAMOND),
MANAGE_PERMS(TranslationManager.translation("feature.city.permission.manage_perm"), Material.DIAMOND_BLOCK), // Cette permission est donnée seulement par l'owner
ACCESS_CITY_CHEST(TranslationManager.translation("feature.city.permission.access_city_chest"), Material.ENDER_CHEST),
UPGRADE_CHEST(TranslationManager.translation("feature.city.permission.upgrade_chest"), Material.OAK_CHEST_BOAT),
CHANGE_TYPE(TranslationManager.translation("feature.city.permission.change_type"), Material.BIRCH_SIGN),
MASCOT_MOVE(TranslationManager.translation("feature.city.permission.move_mascot"), Material.LEAD),
MASCOT_CHANGE_SKIN(TranslationManager.translation("feature.city.permission.change_mascot_skin"), Material.ZOMBIE_SPAWN_EGG),
MASCOT_UPGRADE(TranslationManager.translation("feature.city.permission.upgrade_mascot"), Material.BONE),
MASCOT_HEAL(TranslationManager.translation("feature.city.permission.heal_mascot"), Material.POTION),
LAUNCH_WAR(TranslationManager.translation("feature.city.permission.launch_war"), Material.IRON_SWORD),
MANAGE_RANKS(TranslationManager.translation("feature.city.permission.manage_grade"), Material.PAPER),
ASSIGN_RANKS(TranslationManager.translation("feature.city.permission.assign_grade"), Material.BOOK)
;

@Getter
private final String displayName;
@Getter
private final Component displayName;
private final Material icon;

CityPermission(String displayName, Material icon) {
CityPermission(Component displayName, Material icon) {
this.displayName = displayName;
this.icon = icon;
}
Expand Down
17 changes: 6 additions & 11 deletions src/main/java/fr/openmc/core/features/city/CityType.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
package fr.openmc.core.features.city;

import fr.openmc.core.utils.messages.TranslationManager;
import lombok.Getter;
import net.kyori.adventure.text.Component;

@Getter
public enum CityType {
WAR("Guerre", "§c"),
PEACE("Paix", "§a"),

WAR(TranslationManager.translation("feature.city.war.war")),
PEACE(TranslationManager.translation("feature.city.war.peace")),
;

private String displayName;
private String color;
private final Component displayName;

CityType(String displayName, String color) {
CityType(Component displayName) {
this.displayName = displayName;
this.color = color;
}

public String getName() {
return color + displayName + "§7";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import fr.openmc.core.utils.messages.MessageType;
import fr.openmc.core.utils.messages.MessagesManager;
import fr.openmc.core.utils.messages.Prefix;
import net.kyori.adventure.text.Component;
import fr.openmc.core.utils.messages.TranslationManager;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -123,7 +123,7 @@ public static void cancelMessage(Player player) {
lastErrorMessageTime.put(player.getUniqueId(), now);
MessagesManager.sendMessage(
player,
Component.text("Vous n'avez pas l'autorisation de faire ceci !"),
TranslationManager.translation("feature.city.cant_do_this"),
Prefix.CITY,
MessageType.ERROR,
0.6F,
Expand Down
Loading
Loading