Retour au portfolio
Développement

KebabClan

Points et classement des clans selon les éliminations, l'argent et les morts de leurs membres.

Catégorie
Développement
Client
Kebab SMP
Statut
En service
Année
2026
Studio
Crafteva

Présentation

KebabClan ajoute un classement compétitif aux clans du serveur. Chaque clan gagne des points grâce aux éliminations de ses membres et à l'argent qu'ils possèdent, et en perd à chacune de leurs morts.

Les éliminations restent acquises au clan même si le joueur le quitte ensuite, tandis que l'argent compte toujours pour le clan actuel du joueur. Le classement est recalculé automatiquement et sert aussi à KebabArena pour attribuer les tribunes réservées.

Fonctionnalités

  • Points = éliminations × valeur + argent ÷ taux − morts × valeur
  • Anti-farm : un même duo tueur-victime ne compte qu’une fois toutes les quelques minutes
  • Menu du classement et placeholders PlaceholderAPI
  • Les joueurs les plus riches affichés dans un menu avec leurs têtes
  • Recalcul automatique à intervalle configurable

Code

/** A player died: their clan gets a death, the killer's clan gets a kill. */
void morte(UUID vittima, UUID killer) {
    var clanVittima = Guilds.di(vittima);
    if (clanVittima.isPresent() && (killer != null || !cfg.getBoolean("morti-solo-pvp", false))) {
        stat.computeIfAbsent(clanVittima.get().id(), k -> new int[2])[1]++;
    }
    if (killer == null || killer.equals(vittima)) return;
    var clanKiller = Guilds.di(killer);
    if (clanKiller.isEmpty()) return;
    // killing a member of your own clan does not count
    if (clanVittima.isPresent() && clanVittima.get().id() == clanKiller.get().id()) return;
    String coppia = killer + ":" + vittima;
    long ora = System.currentTimeMillis();
    Long prima = ultimaKill.get(coppia);
    if (prima != null && ora - prima < cfg.getLong("anti-farm-minuti", 10) * 60_000L) return;
    ultimaKill.put(coppia, ora);
    stat.computeIfAbsent(clanKiller.get().id(), k -> new int[2])[0]++;
}
02
DéveloppementEn service

KebabArena

Une arène PvP avec file d'attente des guerriers, duels en 1 contre 1 et tribunes pour les spectateurs.

04
DéveloppementEn service

KebabRewards

Récompenses quotidiennes et hebdomadaires et un passe de combat saisonnier avec une ligne gratuite et une ligne VIP.

Lancer un projet

Vous avez un projet en tête ?

Transformons vos idées en quelque chose d'extraordinaire.