Cahier des Charges — Revision 2.0

SYPERCRAFT

Documentation complete du serveur PVP-Faction SyperCraft. Chaque fonctionnalite y est definie pour son developpement (SyperCore via SyperAPI) et sa presentation aux joueurs.

35+Modules
9Jeux Casino
5Grades Faction
3Jeux Guerre
100%Farm 2 Win
01Architecture technique

SyperCore est un plugin Spigot 1.8.8 qui s'appuie exclusivement sur SyperAPI pour toute persistance de donnees. Le package interne fr.nam2sy.API (DataManager, CacheController, SQLManager, etc.) est obsolete et ne doit pas etre reimplemente.

[ SyperCore ] Logique de jeu, commandes, menus, evenements Bukkit | | API api = (API) Bukkit.getPluginManager().getPlugin("SyperAPI") v [ SyperAPI ] Interface publique — seul contrat connu de SyperCore |— AsyncDataManager Lecture/ecriture async (Cache > Redis > MySQL) |— MoneyManager Syscoins, Points Boutique, transferts |— PermissionManager Grades staff/player, permissions Bukkit |— RedisManager Pub/sub cross-serveur |— AsyncExecutor Pool de threads dedie v [ Cache JVM ] ConcurrentHashMap — 0ms, thread-safe (AtomicLong/Int) [ Redis ] JedisPool — inter-serveurs, TTL, index secondaires O(1) [ MySQL ] HikariCP — source de verite, batch flush toutes les 30s
i
Regle fondamentale
Toutes les operations de donnees sont asynchrones. Les callbacks sont executes sur le main thread. Ne jamais appeler *Sync() depuis le main thread.

Modeles SyperAPI utilises par SyperCore

ModeleChamps principaux
SPlayeruuid, name, syscoins (AtomicLong), pb, power, maxpower, factionID, factionRankID, playerRankID, staffRankID, combat, ignorePlayers
Factionid, name, description, balance (AtomicLong), level, point (AtomicInteger), fhome, relationList, zonesList, ranks
FChunkx, z, factionId, type (0=normal, 2=warzone, 3=safezone)
FactionRankid, name, hierarchy (0=owner, 100=recrue), permissions JSON, factionID
RelationfactionID cible, relationPermissions (objet custom), color
PlayerRank / StaffRankid, name, prefix, permissions[]
02Mondes
FW
Monde Faction
world (principal)
v

Le monde principal du serveur. C'est ici que se deroule l'essentiel du gameplay : construction de bases, claims de territoire, combats PVP et vie de faction. Ce monde ne subit aucun reset sauf lors d'un changement de version majeure du serveur.

ZoneDescription
SpawnZone protegee (SafeZone type 3). NPC d'accueil, classements, portails. PVP interdit. Fly cosmetique autorise.
Warzone centraleZone non-claimable autour du spawn. PVP force, micro-events, aucune protection.
Territoire libreChunks non-claims. Tout le monde peut y construire et miner. PVP actif.
Claims factionChunks revendiques par des factions. Protection selon permissions de rang.
NE
Mondes Ressource (Nether, End, Custom)
nether_custom / end_custom / world_ressource
v

Trois mondes additionnels, chacun avec une identite propre. Ces mondes sont reinitialisables independamment du monde faction. Aucun claim permanent n'est possible dans ces mondes.

Caracteristiques communes

FonctionnaliteDescription
PVP / Zones EventZones de combat deliminees avec des frontieres claires. PVP actif uniquement dans ces zones.
Micro-EventsEvenements aleatoires uniques a chaque monde (Horde de mobs, Ruee sur une ressource, Boss, etc.) lances toutes les 30 a 90 minutes.
Farms publiquesZones de farm ouvertes a tous sur certaines ressources specifiques au monde (see module Mob Farm).
Mines specialesMines generant des minerais uniques ou des ressources en quantite amplifiee, accessibles selon le grade joueur.
Acces par gradeCertaines zones ou mines sont debloquees selon le grade du joueur. Verification via PermissionManager de SyperAPI.

Specificite Nether

Monde custom generee avec une topographie Nether amplifiee. Ressources : Quartz, Glowstone, Ame de Netherite, Blaze, Wither Skeleton. Event unique : Horde — vague de mobs Nether massives ciblant une zone annoncee, recompense collective a la fin.

Specificite End

Monde End custom. Ressources : Ender Pearl, Chorus, Shulker. Event unique : Dragon Revival — respawn du Dragon de l'End avec drops ameliores, annonce globale, recompense au joueur qui porte le coup fatal.

Specificite Monde Ressource

Monde neutre sans PVP dedie a la collecte de ressources de base. Mines par grade, enclos de mob prives (see module Mob Farm). Filtre minage disponible.

!
Implementation
Chaque monde est identifie par son nom Bukkit. Les verifications de permissions integrent getWorld().getName() pour appliquer des regles differentes selon le monde. SyperCore doit gerer un WorldManager centralisant les regles par monde.
03Grades de Faction

Le grade de faction est distinct du grade joueur. Il represente le niveau d'evolution de la faction dans son ensemble et definit des limites de ressources et de fonctionnalites. Le grade monte via l'accumulation de points de faction (balises) et d'XP de faction (missions, guerres, events).

i
Stockage
Le grade de faction est stocke dans le champ level de l'objet Faction (SyperAPI). Les limites associees sont lues depuis une configuration YAML dans SyperCore. Jamais en dur dans le code.
VG
Vagabond
Niveau 0 — Depart
  • MaxMember: 15
  • Zone: LIMIT 2
  • Rank: LIMIT 3
  • MobStack: LIMIT 50
  • FactionHome: LIMIT 1
  • FactionShop: 0 (desactive)
  • Guerre: NON
  • Classement: NON
CL
Clan
Niveau 1
  • BreakerLimit: +2/bloc
  • Dropper: LIMIT 10
  • Redstone: LIMIT 30
  • Game: ON
  • Zone: LIMIT 4
  • Rank: LIMIT 5
  • MobStack: LIMIT 100
  • FactionHome: LIMIT 2
  • FactionShop: LIMIT 1 (5 slots)
CO
Coalition
Niveau 2
  • BreakerLimit: +4/bloc
  • Spawner: LIMIT 15
  • Hopper: LIMIT 10
  • Dropper: LIMIT 20
  • Redstone: LIMIT 50
  • MaxMember: LIMIT 16
  • Relation: LIMIT 3
  • Zone: LIMIT 6
  • Rank: LIMIT 6
  • MobStack: LIMIT 500
  • FactionShop: LIMIT 1 (10 slots)
CQ
Conquete
Niveau 3
  • Redstone: LIMIT 70
  • Damage: -5% dans claims
  • Heal: ON (regen en claim)
  • MaxMember: LIMIT 17
  • Relation: LIMIT 4
  • Classement: ON
  • Zone: LIMIT 8
  • MobStack: LIMIT 800
  • FactionHome: LIMIT 3
  • FactionShop: LIMIT 2 (10 slots)
SP
Suprematie
Niveau 4 — MAX
  • BreakerLimit: +6/bloc
  • Spawner: LIMIT 20
  • Dropper: LIMIT 30
  • Redstone: LIMIT 100
  • Damage: -15% dans claims
  • Heal: ON (amplifie)
  • MaxMember: LIMIT 18
  • Relation: LIMIT 5
  • Classement: ON
  • Zone: LIMIT 10
  • Rank: LIMIT 8
  • MobStack: LIMIT 1300
  • PvpArena: ON (Bot NPC)
  • FactionHome: LIMIT 4
  • FactionShop: LIMIT 3 (10 slots)

Gain d'XP faction

SourceXP gagnesNotes
Guerre de faction (victoire)Eleve (a definir)Proportionnel au score final
F-Missions termineesMoyenSelon difficulte de la mission
Event WarzoneFaible a moyenSelon type d'event et participation
Kill en PVPTres faibleAnti-farm : cooldown par cible

Systeme de Balise (Points de faction)

Les points de faction sont generes par les balises posees dans les claims. La balise est craftee en plusieurs etapes :

Diamant/Fer/Or ─► Emeraude ─► Nether Star ─► Balise Emeraude Balise = [ Emeraude + Nether Star ] Les poulets ont une probabilite de drop d'Emeraude (configurable). Une balise pose dans un chunk claim rapporte X points/minute a la faction.

Description des avantages

AvantageDescription
[BreakerLimit]Augmente la durabilite des blocs du territoire (ObsidianBreaker). Chaque niveau ajoute N resistances supplementaires par bloc.
[Spawner]Limite du nombre de spawners posables par chunk dans les claims de la faction.
[Hopper]Limite du nombre de hoppers par chunk.
[Dropper]Limite du nombre de droppers par chunk.
[Redstone]Limite du nombre d'elements Redstone actifs par chunk (comparateurs, repiteurs, pistons, etc.).
[Damage]Reduction des degats subis par les membres de la faction lorsqu'ils combattent dans leurs claims.
[Heal]Regeneration de vie passive pour les membres en claim (Potion Effect REGENERATION niveau 1 ou 2 selon grade).
[MaxMember]Nombre maximum de membres dans la faction.
[Relation]Nombre maximum de relations actives simultanement.
[Classement]Deverrouille la participation au classement faction global.
[Zone]Nombre maximum de zones definissables dans les claims.
[Rank]Nombre maximum de rangs de faction creables.
[MobStack]Taille maximum d'un stack de mobs (MobStacker).
[PvpArena]Possibilite de definir une zone dans ses claims comme arene PVP, avec un NPC "bot" entrainable.
[FactionHome]Nombre maximum de /f home configurables.
[FactionShop]Nombre maximum de Faction Shops actifs.
[FactionShopSlot]Nombre d'items disponibles par Faction Shop.
04Module — Faction
GF
Gestion generale
fr.nam2sy.faction.myFaction
v
CommandePermissionDescription
/f create <nom>faction.createNom 3-20 caracteres, lettres/chiffres uniquement. Unicite verifiee via getFactionByNameAsync(). Cree rang Owner + rang Recrue par defaut.
/f disbandRang hierarchy 0Dissout la faction. Notifie tous les membres. Supprime claims et balises.
/f show [nom]Affiche nom, description, membres, power, balance, niveau, grade, nombre de claims.
/f map [on/off]Carte ASCII des claims autour du joueur. Mode auto-map a chaque changement de chunk.
/f invite <joueur>Rang : recruitmentInvite un joueur. Expiration de l'invite : 120 secondes. Stocke en Map memoire uuid → factionId.
/f acceptAccepte l'invite pendante. Ajoute via setFactionAsync() avec rang Recrue.
/f declineRefuse l'invite pendante.
/f kick <joueur>Rang : kick + hierarchy superieurExpulse un membre. Appelle removeFromFactionAsync(). Notifie la faction.
/f leaveQuitter sa faction. Bloque si le joueur est le seul owner avec des membres.
/f sethome [nom]Rang : setfhomeDefinit un point de retour nomme. Doit etre en claim faction. Limite selon grade ([FactionHome]).
/f home [nom]Rang : fhomeTeleportation au home choisi. Cooldown 5 secondes. Bloque si en combat.
/f flyRang : fly + en claim factionVol en territoire faction. Coupe si quitte le claim ou entre en combat.
/f setlead <joueur>Rang hierarchy 0Transfert du leadership.
/f setrank <joueur> <rang>Rang : modifyPlayerRankAttribuer un rang. Cible doit avoir hierarchy plus elevee.

Notifications membres

A la connexion et deconnexion d'un membre de la faction, un message est envoye a tous les membres en ligne : [Faction] Pseudo s'est connecte/deconnecte. Integre a l'evenement SPlayerJoinedEvent et PlayerQuitEvent.

Pseudo au-dessus du joueur (Nametag)

Format du nametag via scoreboard teams (1.8 compatible) : [TAG FACTION] [RANG FACTION] PSEUDO [COEURS]. La couleur du tag varie selon la relation entre la faction du joueur et celle de l'observateur. Les coeurs affichent la vie reelle du joueur (mise a jour via la tache de rafraichissement du scoreboard).

Base impillable hors connexion

!
Mecanique cle
Les claims d'une faction deviennent totalement inviolables 30 minutes apres la deconnexion du dernier membre actif. Un timer demarrant a la derniere deconnexion surveille l'etat. A la reconnexion d'un membre, la protection est immediatement levee.
RL
Systeme de Relations (refonte)
fr.nam2sy.faction.relation
v

Le systeme d'alliance et de treve de l'ancienne version est entierement retire. Il est remplace par un systeme de Relations a permissions customisables. Une faction peut ajouter n'importe quelle autre faction a ses "Relations" et lui attribuer exactement les permissions qu'elle souhaite — ni plus, ni moins.

i
Principe
La Relation est unilaterale. La faction A peut avoir des permissions vers faction B sans que B ait les memes permissions envers A. Cela permet des configurations asymetriques (protectorat, tributaire, etc.).

Commandes

CommandeDescription
/f relation <faction>Ouvre le menu de gestion des permissions pour cette faction. Perm rang : getRelation.
/f relation <faction> addAjoute une faction aux relations. Limite selon grade ([Relation]). Perm rang : manageRelation.
/f relation <faction> removeRetire la faction des relations.
/f relation <faction> homeSi la permission fhome est accordee a cette faction, ses membres peuvent faire /f relation <nom> home pour aller au home de votre faction.
/f relation <faction> setperm <perm> <true/false>Definit une permission specifique pour la faction en relation.

Permissions disponibles pour une Relation

Chaque relation peut activer individuellement les permissions suivantes pour les membres de la faction ciblee :

PermissionEffet
fhomePeut utiliser /f relation <nom> home pour acceder au fhome de la faction.
buildPeut poser des blocs dans les claims.
destroyPeut casser des blocs dans les claims.
chestPeut ouvrir les coffres.
interactPeut interagir avec les blocs (levier, porte, etc.).
pvp_safePVP desactive entre les membres des deux factions.
!
Zones privees
Les permissions de relation peuvent etre surchargees par les zones (FactionZone). Si une zone a une configuration differente, la zone a la priorite sur la relation dans son perimetre.

Couleur et affichage

Le createur de la relation choisit une couleur (format Minecraft §X) appliquee au tag de la faction ciblee au-dessus de la tete des joueurs et dans le chat. Cela permet de distinguer visuellement differents niveaux de relation (allié proche en vert, accord commercial en jaune, etc.).

CL
Claims & Territoire
fr.nam2sy.faction.claim
v

Limite de claims = Power total de la faction (somme du power de chaque membre). Chaque joueur debute avec 10 power, maximum 15 (augmentable via farm2win). Un joueur mort perd du power (configurable : defaut -1 par mort, minimum 0).

CommandeDescription
/f claim [N]Revendique 1 ou N chunks en spirale. Bloque en safezone/warzone/claim etranger.
/f claim on/offMode autoclaim continu.
/f unclaim [N/all/on/off]Libere 1, N (max 10), ou tous les claims.

Anti-grief — Logique d'autorisation

Ordre de verification pour tout evenement Bukkit de bloc/interaction dans un chunk :

1. Chunk est SafeZone (type 3) ? → TOUT REFUSE (sauf admin bypass) 2. Chunk est Warzone (type 2) ? → TOUT AUTORISE 3. Chunk n'est pas claime ? → AUTORISE 4. Joueur appartient a la faction proprietaire ? → Verifier permissions du rang FactionRank 5. Joueur a une Relation avec la faction proprietaire ? → Verifier RelationPermissions pour son action 6. Joueur est dans la zone offline-shield (30min apres deco) ? → REFUSE 7. → REFUSE par defaut
ZN
Zones Faction
fr.nam2sy.faction.zones
v

Les zones permettent de definir des perimtres specifiques au sein des claims, avec des permissions independantes du rang. Exemple : zone "Ferme" accessible a tous les membres pour build/destroy, zone "Vault" restreinte au co-leader.

CommandeDescription
/f setzone <nom>Mode de selection de zone : deux coins a definir par clic sur blocs. Perm rang : managezone. Limite selon grade ([Zone]).
/f zoneOuvre le menu de gestion des zones (liste, permissions par rang, suppression).
/f zone <nom> setperm <rang> <perm> <bool>Definit une permission specifique pour un rang dans une zone.
/f zone delete <nom>Supprime une zone.

La detection de zone en temps reel se fait lors de chaque evenement de bloc/interaction : le ZoneManager consulte les zones de la faction concernee et retourne le ZoneLocationResult correspondant a la position du joueur.

LG
Faction Log
fr.nam2sy.faction.log
v

Systeme de journalisation des activites dans les claims de la faction, destine a detecter des trahisons ou des comportements suspects. Accessible uniquement aux membres avec la permission canFactionLog.

Evenements journalises

CategorieEvenementDonnees enregistrees
CoffresOuverture de coffreUUID joueur, position coffre, horodatage
CoffresModification contenu coffreUUID joueur, position, items ajoutes/retires, horodatage
CoffresCassage de coffreUUID joueur, position, contenu au moment du cassage
BlocsPose de blocUUID joueur, type de bloc, position, horodatage
BlocsCasse de blocUUID joueur, type de bloc, position, horodatage
BlocsPose/casse de spawnerUUID joueur, type de spawner, position, horodatage
Teleportations/f home utiliseUUID joueur, home cible, horodatage
TeleportationsTP vers un home dans les claimsUUID joueur (membres faction uniquement), horodatage

Stockage

Les logs sont stockes en MySQL dans une table faction_logs (faction_id, joueur_uuid, event_type, data JSON, timestamp). Retention : 7 jours glissants. Lecture via pagination (20 entrees par page).

Acces

/f log → Menu principal des logs (par categorie) /f log coffres → Filtrer les evenements coffres /f log blocs → Filtrer les evenements blocs /f log tp → Filtrer les teleportations /f log <joueur> → Filtrer par joueur specifique /f log clear → Vider les logs (perm : hierarchy 0 uniquement)
MS
Missions Faction
fr.nam2sy.faction.missions
v

Les missions faction sont des objectifs collectifs proposes via un PNJ dedie au spawn. La mission choisie est active pour l'ensemble des membres de la faction. Une seule mission peut etre active a la fois.

Acces

InteractionDescription
PNJ Mission (clic)Ouvre le menu de selection de mission. Permet de bannir des categories. Tire aleatoirement une mission parmi les categories non bannies.
/f missionsOuvre le menu de suivi de la mission en cours et l'historique.

Categories

CategorieExemples de missions
MinageMiner 500 blocs de charbon, Obtenir 100 diamants, Miner 1000 blocs de pierre
BucheronnageCouper 300 troncs de chene, Recolter 500 feuilles, Couper 200 arbres complets
ChasseTuer 200 zombies, Obtenir 50 têtes de joueur, Tuer 100 mobs en warzone

Difficulte et recompenses

ParametreDescription
DifficulteCalculee selon le level/xp actuel de la faction. Les missions proposees s'adaptent automatiquement.
XP factionAccordee a la faction a la completion de la mission.
Argent joueurDistribue proportionnellement aux joueurs selon leur taux de participation aux objectifs.
Argent banqueUn pourcentage est verse directement dans la balance de la faction.

Regles

Cooldown entre missions terminees : 2 heures. Annulation : possible, mais impose un cooldown de 24 heures avant d'en relancer une. Nombre de missions : illimite (pool de missions generees proceduralement selon niveau).

FS
Faction Shop
fr.nam2sy.faction.shop
v

Les factions peuvent creer leurs propres boutiques/marches accessibles a tous les joueurs. L'argent des transactions est verse dans ou preleve depuis la banque de faction.

CaracteristiqueDescription
Nombre de shopsLimite selon grade ([FactionShop]). Nul pour Vagabond.
Slots par shopLimite selon grade ([FactionShopSlot]) : 5 ou 10 items max.
OptionsChaque shop peut activer [Boutique (Achat)] et/ou [Marche (Vente)] independamment.
Nom + descriptionConfigurables par la faction via menu d'inventaire.
ActivationLa faction peut activer/desactiver son shop a tout moment.

Commandes

/f shop create <nom> → Creer un nouveau Faction Shop /f shop open <nom> → Ouvrir son propre shop en edition /f shop toggle <nom> → Activer/desactiver le shop /f shop <faction> [nom] → Consulter le shop d'une autre faction /f shop setitem <slot> → Definir un item (tenu en main) + prix /f shop removeitem <slot> → Retirer un item du shop
GR
Guerre de Faction
fr.nam2sy.faction.guerre
v

Une guerre de faction est un evenement competitif structure entre deux factions consentantes, deployant 3 mini-jeux sur 3 jours. Necessite le grade Clan minimum ([Game] : ON). Cooldowns : 48h apres defaite, 72h apres victoire.

Lancement

Le chef de la faction A envoie un defi avec /f guerre declarer <faction>. Le chef de la faction B l'accepte. Une fois les deux accordes, les deux chefs votent les creneaux horaires pour chacun des 3 soirs. Les horaires sont verrouilees. Une annonce globale est effectuee.

Structure

JourJeuDureeManches
Jour 1Les Reliques30 min / manche2 manches
Jour 2Temple20 min / manche2 manches
Jour 3Bataille de Diamant15 min / manche3 manches (finale)
J1
Jeu 1 — Les Reliques
v

Carte : Map custom 200x200 blocs avec terrain varie. Les reliques (items uniques) sont cachees au debut de la manche. Les deux camps sont positionnes aux extremites opposees.

MecaniqueDescription
Possession reliqueRamasser une relique donne des points/seconde. Le porteur ne peut pas sprinter.
Depot en baseRamener une relique dans sa base donne un gros bonus de points. La relique devient "securisee" momentanement.
VolTuer un porteur droppe la relique. Attaquer la base adverse peut permettre de voler les reliques securisees.
RessourcesLes joueurs peuvent miner (minerais de base) et echanger au camp pour du materiel de fortification (bois, pierre).
Fin anticipeeSi toutes les reliques sont ramenes dans une base unique : fin immediate de la manche.
J2
Jeu 2 — Temple
v

Configuration : Un temple central avec une entree principale et des echelles laterales. Une faction defend (choisie aleatoirement), l'autre attaque. Materiel de base pre-equippe.

MecaniqueDescription
CoeurItem physique dans le temple. L'attaquant doit le prendre et le ramener a son camp.
DefenseurNe peut pas quitter le temple tant que le coeur y est. S'il le recupere, la manche est gagnee.
AttaquantDoit forcer l'entree ou escalader les echelles sous les tirs des defenseurs.
RestrictionBuild et destroy desactives pour les deux factions. Aucun item custom autorise.
VictoireAttaquant ramene le coeur = +1 manche. Defenseur empêche = +1 manche defenseur.
J3
Jeu 3 — Bataille de Diamant
v

Configuration : Deux plateformes flottantes face a face. Chaque bloc du sol porte un diamant (item visible). Les explosions detruisent definitivement les diamants dans la zone d'impact.

MecaniqueDescription
DiamantsRamasser des diamants sur la plateforme ennemie marque des points. Sur sa propre plateforme = proteger ses points.
Oeufs CreeperDes oeufs de Creeper tombent du ciel periodiquement. Recuperes et lances (clic gauche = ejecter loin). Au contact d'un bloc, le Creeper est "arme" et explose immediatement.
Bombe ejecteeUn Creeper ejete peut aller dans le vide ou atterrir sur la plateforme adverse pour y exploser.
Victoire de mancheFaction avec le plus de diamants a la fin du temps ou seule faction avec encore des blocs.

Victoire et recompenses

La faction ayant le plus de points apres les 3 jours remporte la guerre. Recompenses : coffre d'items defini par l'administration + distribution de syscoins a tous les membres de la faction victorieuse. Les resultats sont publies dans le classement.

05Module — Atouts

Les atouts sont des items speciaux (tetes de joueur avec texture et tags NBT) conferant des bonus. Ils s'achetent via le menu /atout et se portent dans l'inventaire. Un seul atout peut etre actif a la fois. Changer d'atout actif impose un cooldown de 10 minutes.

!
Condition de perte
Un atout actif est perdu uniquement si le joueur est tue par un autre joueur (PvP). La mort par mob, chute, feu, etc. ne detruit pas l'atout. La perte d'un atout inactif n'est jamais declenchee.
Immortel
ID: precious
Conserve l'integralite de l'inventaire a la mort (KeepInventory). Ne protege pas contre la perte de l'atout actif si tue par joueur.
Laveur
ID: lava
Immunite complete aux degats de feu et de lave. Peut traverser la lave sans subir de degats.
Jumping
ID: falldamage
Aucun degat de chute, quelle que soit la hauteur.
Constructeur
ID: builder
Pose un bloc du meme type au-dessus de chaque bloc place (liste blanche de blocs de construction : pierre, bois, brique, etc.).
Affame
ID: hunger
Maintient la barre de faim fixee a 3,5 shanks (7 unites). La faim ne diminue jamais.
Teleporteur
ID: teleport
Reduit tous les delais de teleportation de 5 secondes a 2 secondes.
L'oeil partout
ID: autonear
Recoit un message lorsqu'un joueur hors faction s'approche a moins de 50 blocs. Cooldown de 60 secondes entre chaque alerte.
L'oeil de chat
ID: nightvision
Vision nocturne permanente activee (Potion Effect NIGHT_VISION niveau 1 infini).
Tueur de mob
ID: autoclick
Auto-attaque le mob regarde (cible de la crosshair) a 5 frappes par seconde. Legal car limite a 5 CPS.
Explorateur
ID: speed
Applique SPEED niveau 2 en permanence (x1.4 environ). Se coupe en combat si l'atout n'est pas actif.

Achat et prix

Prix eleve intentionnel pour creer de la valeur (configurable, base suggeree : 2 000 000 syscoins par atout). L'achat se fait via le menu /atout ou le NPC dedie. Transaction via api.getMoneyManager().removeSyscoins().

Implementation technique

Chaque atout est identifie via un tag NBT : atout:true, id:<atout_id>, active:<boolean>. L'activation se fait par clic droit dans l'inventaire. Le cooldown de changement d'atout actif est gere en Map memoire (uuid → timestamp). Les effets sont appliques via listeners Bukkit filtres par la presence et l'activation de l'atout dans l'inventaire du joueur.

06Module — Classes de joueur

Trois classes de combat sont disponibles. Un joueur choisit sa classe via un menu dedie. La classe est un attribut du joueur persistant (stocke dans un champ additionnel ou via tag sur item de classe selectionne). On ne peut avoir qu'une classe active.

i
Stockage
La classe active est identifiee par un tag NBT sur un "item de classe" porte dans un slot dedie (hors-combat uniquement pour changer). Le changement de classe impose un cooldown de 5 minutes.
TK
Tank
Classe defensive
  • +10 coeurs de vie (20 HP)
  • Recul reduit lors des impacts
  • -20% de degats infliges
  • Deplacement legèrement plus lent
AT
Attaque
Classe offensive
  • x1.5 degats infliges
  • Cooldown Ender Pearl 10s
  • -4 coeurs de vie (-8 HP)
AR
Archer
Classe distance
  • Usure de l'arc divisee par 2
  • +2.2% de degats des fleches
  • Cooldown Ender Pearl 30s

Les effets de classe sont appliques via les Attributes Bukkit (MAX_HEALTH, MOVEMENT_SPEED, ATTACK_DAMAGE) et des multiplicateurs de degats dans les listeners EntityDamageByEntityEvent. Le cooldown Ender Pearl est gere dans PlayerInteractEvent en detectant l'usage de la perle.

07Module — Combat
CT
Combat Tag
fr.nam2sy.combat
v
ComportementDescription
ActivationTout EntityDamageByEntityEvent (joueur vs joueur) pose le tag sur les deux protagonistes. Duree : 15 secondes, rafraichie a chaque degat.
ActionBarCompte a rebours en ActionBar tant que le tag est actif.
Deconnexion combatDeconnexion en combat = mort instantanee. Inventaire droppe a la position.
Deconnexion en claimDeconnexion dans un claim ennemi = 10 minutes pour revenir, ou kill automatique a l'expiration.
RestrictionsBloque : /f home, /spawn, RTP, vol faction, toutes les teleportations.
Etat RedisStocke via setCombatAsync() dans SyperAPI. Lecture via isCombatAsync() ou getCachedPlayer().
EP
Cooldown Ender Pearl
fr.nam2sy.combat.enderpearl
v

Cooldown global Ender Pearl : 15 secondes (modifiable selon la classe active). Detection dans PlayerInteractEvent : si l'item est une Ender Pearl et que le cooldown est actif, l'evenement est annule et un message est affiche. Cooldown stocke en Map memoire (uuid → timestamp).

KM
Messages de mort et kill
fr.nam2sy.general.events.E_Dead
v

Message custom affiche dans le chat global a chaque mort de joueur : format configurable avec nom du tueur, arme, et victime. Exemple : [FACTION_A] Pseudo_A a elimine [FACTION_B] Pseudo_B avec une Epee en Diamant (5 coeurs).

Tete du joueur tue : La tete du joueur tue est ajoutee dans l'inventaire du tueur. Si l'inventaire est plein, elle est droppee aux pieds du tueur. Configurable par le tueur (cosmetique).

Faim bloquee : La faim d'un joueur est bloquee a un minimum de 3,5 shanks (7 unites de nourriture). Elle ne descend jamais en dessous de ce seuil (utile en combat pour que le joueur puisse toujours sprinter).

08Module — Metiers

Les metiers offrent une progression parallele au systeme de faction, axee sur le farm et l'exploitation de ressources. Chaque joueur peut avoir un metier actif (possibilite d'en changer avec un cooldown de 48h).

MetierActivite principaleBoutique unique
MineurMiner des blocs et mineraisHammer (mine en zone), pioche amplifiee, explosifs de minage
FarmerRecolter des culturesHoues de recolte zonale, fertilisant, semences rares
BucheronCouper des arbresHache sylvestre, scie, amplificateur de drop bois
AlchimisteBrasser des potions, collecter des ingredientsIngredients rares, ingredients de potion amplifies, cauldron ameliore
EleveurTuer et gerer des mobs d'elevageNourriture d'elevage amplifiee, cage de transport, attracteur de mob

Systeme de progression (100 paliers)

Chaque metier possede 100 paliers de progression. Chaque action metier (miner un bloc, couper un arbre, etc.) rapporte des points de metier. A chaque palier franchi, une recompense est accordee (items, argent, points de metier bonus). Le palier 100 deverrouille un titre cosmetique de metier.

Boutique de metier

Chaque metier a un PNJ boutique dedie pres du spawn. Les items y sont achetes avec des points de metier (non-echangeables contre des syscoins). Les items proposes sont propres a chaque metier et offrent des avantages significatifs pour l'exploitation du metier (pas disponibles ailleurs).

Shop de vente par metier

Un shop de vente dedie accepte les ressources liees au metier (blocs pour le mineur, cultures pour le farmer, etc.). La vente rapporte moins de syscoins qu'au /shop global, mais rapporte des points de metier supplementaires. Cela incite a specialiser son activite.

i
Implementation
Les points de metier sont stockes dans un champ supplementaire de SPlayer ou dans une table dediee en MySQL. Le metier actif est un identifiant stocke de meme. Les listeners Bukkit associes au metier sont actives/desactives selon le metier selectionne.
09Module — Defis Horaires

Toutes les heures, un nouveau defi est lance automatiquement et accessible a tous les joueurs. Le classement est visible en temps reel via /defi ou /challenge.

ParametreDescription
FrequenceNouveau defi toutes les heures. Le defi precedent se termine a l'annonce du suivant.
Duree1 heure pour farmer/recolter/tuer un maximum.
TypesFarm d'une ressource precise, kills de joueurs, kills de mobs specifiques, minerais mines, arbres coupes, etc.
ClassementTop 5 recompense a la fin. Recompenses progressives (1er place > 2e > ... > 5e).
AnnonceMessage global au demarrage et a 10/5/1 minutes avant la fin.

Commandes

/defi → Voir le defi en cours, sa progression, le classement live /challenge → Alias de /defi

Le suivi de progression est en temps reel : chaque action pertinente incremente un compteur en Map memoire (uuid → score). A la fin de l'heure, le classement est fige et les recompenses versees via MoneyManager.

10Module — Contrats (Bounty)
ParametreDescription
PoseUn joueur peut mettre un contrat sur la tete d'un autre joueur via /contrat <joueur> <montant>. Le montant est preleve immediatement des syscoins du poseur.
Limite par cibleUn seul contrat actif par cible a la fois.
DureeValidite maximale : 2 jours. Apres expiration, le montant est rembourse au poseur.
Cooldown repose1 semaine avant de pouvoir remettre un contrat sur le meme joueur (par poseur).
ResolutionTout joueur qui tue la cible remporte le montant du contrat (via addSyscoins()). Le poseur recoit une notification.
AnnulationLe poseur peut annuler son contrat (remboursement si la cible n'est pas encore morte).
/contrat <joueur> <montant> → Poser un contrat /contrat list → Voir tous les contrats actifs /contrat annuler <joueur> → Annuler son contrat sur un joueur
11Module — Micro-Events Warzone

Des micro-evenements apparaissent aleatoirement dans la warzone toutes les 20 a 45 minutes (interval aleatoire). Un seul evenement actif a la fois. Les recompenses s'adaptent au nombre de joueurs participants (plus il y a de joueurs, plus la recompense est elevee).

Zone Radio-Active
Type: Zone persistante
Une zone circulaire de 20-30 blocs de rayon apparait dans la warzone. Les joueurs a l'interieur subissent des degats constants. Le joueur ayant passe le plus de temps dans la zone au bout de 5 minutes remporte la recompense. Un holograme au centre affiche le classement en temps reel.
Pluie de Coffres
Type: Loot aleatoire
Pendant 60 secondes, des coffres tombent du ciel a des positions aleatoires dans la warzone. Chaque coffre contient aleatoirement : argent, items utiles, effets instant (potions piege), ou rare chance d'un cosmetique/grade. Les coffres piege appliquent l'effet immediatement a l'ouverture.
Argent a Foison
Type: Zone de gain
Une zone mobile de 15 blocs de rayon se deplace lentement dans la warzone (deplace toutes les 5 secondes vers une position aleatoire proche). Les joueurs a l'interieur gagnent des syscoins toutes les 3 secondes. Plus ils sont proches du centre, plus le gain est eleve.
Prime Sauvage
Type: Bonus PVP temporaire
Pendant 10 minutes, chaque kill effectue en warzone offre des recompenses en syscoins significativement augmentees. Annonce globale au debut. Le multiplicateur de recompense est affiche en ActionBar pour les joueurs en warzone.
Chasse au Mob Rare
Type: Boss mobile
Un mob rare (nom en OR, stats amplifiees) spawn en warzone. Ses coordonnees approximatives sont affichees toutes les 30 secondes dans le chat (a 10 blocs pres). Le joueur qui porte le coup fatal recoit la recompense : argent + item unique.
Sac d'Or
Type: Hot Potato
Un sac d'or (item special) spawn en warzone avec les coordonnees annoncees. Le joueur qui le prend gagne des syscoins toutes les 5 secondes. Toutes les 10 secondes, la position du porteur est annoncee. Quitter la warzone, mourir ou se teleporter droppe le sac sur place. L'evenement dure 3 minutes ou jusqu'a ce que le porteur soit tue.
12Module — Economie
SP
Shop (Systeme de Bourse)
fr.nam2sy.shopsell
v

Le shop global n'est pas a prix fixe : il fonctionne comme une bourse. Plus un item est vendu souvent, moins son prix d'achat et de vente augmente/diminue en consequence. Les prix sont stabilises par un plancher et un plafond configurable.

Prix_actuel = Prix_base × (1 - (ventes_dernieres_24h / volume_critique) × facteur_impact) Le prix ne peut pas descendre sous Prix_min ni monter au-dessus de Prix_max. Les prix sont recalcules toutes les 30 minutes et persistes en MySQL (table shop_prices).

Commandes

CommandeDescription
/shopOuvre le menu principal du shop (categories).
/shop info <item>Affiche le prix actuel, la tendance (hausse/baisse), et le volume echange.
/sellOuvre le menu de vente rapide. Bouton "Tout vendre" scanne l'inventaire.

Le StickSellAll (item custom, baton avec NBT special) permet de vendre d'un clic droit sur un coffre tout le contenu du coffre aux prix actuels du shop.

HV
Hotel de Vente & Achat
fr.nam2sy.hotel
v

Marche entre joueurs (Auction House). Un joueur peut mettre un item en vente a un prix fixe. Un autre joueur peut publier une annonce d'achat a un prix propose.

CommandeDescription
/hotel vente <prix>Met en vente l'item en main au prix indique. Taxe de depot configurable (ex: 5% du prix).
/hotel achat <item> <prix> <qte>Publie une annonce d'achat. Le montant est bloque jusqu'a resolution.
/hotelOuvre le menu de l'hotel de vente (liste paginee, filtres par categorie/prix).
/hotel meslotsVoir ses annonces en cours (vente et achat).
/hotel annuler <id>Annuler une annonce et recuperer l'item/l'argent.

Duree des annonces : 48 heures max. Apres expiration, l'item est renvoye en notification au vendeur. Notifications : Une notification est envoyee au joueur concernerned lors d'une vente ou d'un achat realise (via NotificationManager).

TD
Trade & Encheres
fr.nam2sy.trade
v

Systeme de Trade (/trade)

Echange securise d'items entre deux joueurs en temps reel. Chaque joueur voit les items proposes par l'autre dans un menu d'inventaire partage. Les deux joueurs doivent confirmer avant que les items s'echangent. Aucun argent n'est implique directement (pure echange d'items).

/trade <joueur> → Envoyer une demande de trade /trade accept → Accepter la demande en attente

Encheres

Systeme d'enchere sur un item unique. Le joueur qui initie met un item en enchere avec un prix de depart et une duree. Tous les joueurs peuvent encherir. A la fin du temps, le plus offrant remporte l'item et son argent est preleve. L'enchere active est visible via /enchere.

KT
Kits
fr.nam2sy.kits
v

Plusieurs types de kits accessibles via /kit.

TypeDescription
Kit achetable (achat unique)Le joueur paye une fois en syscoins et peut reclamer le kit avec un cooldown (ex: 24h). Disponible depuis le menu /kit.
Kit achetable (abonnement)Kit disponible a vie apres un achat avec des Points Boutique. Cooldown de reclamation plus court.
Kit de grade joueurDeblocable uniquement si le grade du joueur l'autorise. Cooldown selon le grade.
Kit de grade faction (/f kit)Disponible si le grade de la faction autorise [Kit]. Contenu defini a venir.
BP
Backpack
fr.nam2sy.backpack
v

Inventaire supplementaire portable par le joueur. Le nombre de backpacks autorises et leur taille sont definis par le grade du joueur. Ameliorable contre des syscoins.

ParametreDescription
Acces/backpack ou /bp — Ouvre le backpack actif.
Taille de depart9 slots (1 rang d'inventaire).
AmeliorationAchat de rangs supplementaires contre syscoins (+9 slots par amelioration). Limite selon grade.
Perte a la mortLe contenu du backpack est droppe a la mort (comme l'inventaire principal).
StockageContenu persiste en MySQL (serialisation Base64 de l'inventaire Bukkit).
/bp → Ouvrir son backpack principal /bp <slot> → Ouvrir un backpack specifique (si plusieurs) /bp upgrade → Menu d'amelioration du backpack
13Module — Casino

Le casino propose 9 jeux distincts accessibles les dimanche et lundi (configurable). L'acces se fait via un batiment dedie au spawn ou la commande /casino. Tous les gains et pertes transitent par MoneyManager.

!
Securite economique
Toutes les transactions casino utilisent la sequence securisee de MoneyManager (verif solde → debit → credit avec rollback). Aucune mise ne peut etre acceptee si le joueur n'a pas les fonds. Les mises sont preleves avant le debut du jeu.
CoinFlip PVP
PVP direct
Deux joueurs s'affrontent dans une cage. Le perdant meurt et droppe son inventaire. Le gagnant recupère le stuff du perdant. Aucune mise en argent : la mise, c'est son inventaire.
Mise : Inventaire complet
Duel
Matchmaking + mise
Choix du kit (Diamant / Archer / Potion) + mise en syscoins. Matchmaking automatique avec un adversaire de mise similaire. Le gagnant emporte les deux mises.
Mise : Personnalisable
Course de Mobs
Pari passif
Chaque joueur parie sur un mob (Poulet, Cochon, Vache, Cheval, Mouton). Les mobs courent sur une piste generee aleatoirement via leur IA. Le mob gagnant determine les vainqueurs. Cote calcule selon le nombre de mises par mob.
Mise : Personnalisable + cote
Puissant 4
1v1 GUI
Jeu de Puissance 4 en interface GUI Bukkit (6 lignes, 7 colonnes en items). Tour par tour. Le gagnant emporte la mise totale.
Mise : Personnalisable par les deux joueurs
Morpion
1v1 GUI
Morpion classique en interface GUI Bukkit (3x3). Tour par tour. Le gagnant emporte la mise totale. Egalite = remboursement.
Mise : Personnalisable par les deux joueurs
Tir a l'Arc
Multijoueurs (2-5)
Session ouverte par un joueur hote qui definit la mise. De 2 a 5 joueurs. Cibles mouvantes sur une carte dediee. Tour par tour. Score cumule. Le vainqueur emporte les mises de tous.
Mise fixe definie par l'hote
Chest Gamble
Solo, chance
20 coffres. 1 Jackpot (x10), 4 Moyens (x4), 5 Faibles (x2), 10 Perdants. Le joueur choisit un coffre. Une seule tentative par session (il faut repayer pour rejouer).
Mise : Personnalisable
Vague de Mobs
PVE collectif (1-20)
Vagues de mobs de plus en plus difficiles. Nombre de mobs multiplie selon le nombre de participants. Chaque vague passee = 10% de la mise recuperee. Le tout est perdu si tous les joueurs meurent avant la fin.
Mise individuelle = pot commun
Jackpot
Automatique, serveur
Lance automatiquement toutes les heures. Mise min/max definies. La mise influe sur le pourcentage de chance au tirage. Le gagnant (1er) remporte 80% du pot. Puis 4 autres gagnants aleatoires (non-gagnant 1er) recoivent chacun 5%.
Min/Max configurable

Implementation du Jackpot

// Tirage pondete par la mise total_tickets = somme(mises de tous les participants) ticket_gagnant = random(0, total_tickets) // On parcourt les participants et leurs "plages de tickets" // Plus la mise est grande, plus la plage est large gagnant_1 = joueur dont la plage contient le ticket_gagnant pot = somme(toutes les mises) gagnant_1 → api.getMoneyManager().addSyscoins(uuid_1, pot * 0.80) 4 × gagnants_bonus → addSyscoins(uuid_n, pot * 0.05) // tirage parmi non-gagnants
14Module — Mob Farm & Enclos

Dans les mondes ressource (Nether, End, Custom), des enclos de farm permettent aux joueurs de tuer des mobs de maniere privee. Chaque mob spawne dans un enclos "appartient" au joueur dont c'est la zone.

MecaniqueDescription
AppartenanceLorsqu'un joueur entre dans un enclos, les mobs qui spawn ont son nom afin de les distinguer. Seul ce joueur peut les tuer (detection via EntityDamageByEntityEvent).
Taux de dropLe taux de drop de ressources des mobs (emeraudes, items rares) varie selon le grade joueur. Configurable en YAML.
ProtectionLes mobs d'un enclos ne peuvent pas etre attaques par d'autres joueurs. Evenement annule si le tueur n'est pas le proprietaire.
EmeraudesLes poulets de l'ensemble des mondes (et enclos) ont une probabilite configurable de dropper une Emeraude a la mort.
15Module — Items Custom

Tous les items custom sont identifies par un tag NBT custom_item:<id>. Leur comportement est gere par des listeners dedies qui detectent cet identifiant avant d'executer l'action speciale.

HO
Houes Custom (Agriculture)
v
Faucheuse Florissante
ID: hoe_replant_1x1
Recolte ET replante automatiquement la culture ciblee (1x1). Remplace le contenu de la main par la recolte.
Griffe Fertile
ID: hoe_replant_2x2
Recolte et replante en zone 2x2 centree sur le bloc cible.
Sceptre Agricole
ID: hoe_replant_3x3
Recolte et replante en zone 3x3 centree sur le bloc cible.
Houe Sylvestre
ID: hoe_replant_16x1
Recolte et replante sur une ligne de 16 blocs dans la direction du regard du joueur.
Etoile du Mineur
ID: hoe_star
Probabilite configurable de dropper une Emeraude supplementaire a chaque recolte de culture.
HA
Haches Custom (Bucheronnage)
v
Hache Sylvestre
ID: axe_treefell
Abat l'arbre complet d'un seul coup (tronc + feuilles). Detection recursive des blocs de tronc connectes.
Coupe-Chene
ID: axe_double
Brise 2 blocs simultanément (le cible et le suivant dans la meme direction). Equivalent au "cloneur" pour les arbres.
Etoile du Bucheron
ID: axe_star
Probabilite configurable de dropper une Emeraude lors de l'abattage d'un arbre (compatible avec Hache Sylvestre).
PI
Pioches Custom (Minage)
v
Pioche d'Extraction
ID: pick_2x1
Mine en zone 2x1 (bloc cible + bloc adjacent dans la direction du regard horizontal).
Pioche Sylvestre
ID: pick_3x1
Mine en zone 3x1 dans la direction du regard.
Pioche Brise-Gemme
ID: pick_3x3
Mine en zone 3x3 perpendiculaire a la direction du regard (excavatrice).
Etoile du Mineur
ID: pick_star
Probabilite de dropper une Emeraude par minerai mine. La probabilite varie selon le type de minerai (Diamant > Or > Fer > Charbon).
EP2
Epees & Enchantements Custom
v
Epee OneShot
ID: sword_oneshot
Attaque unique capable de tuer un mob en un coup (degats massivement amplifies contre les mobs uniquement, pas les joueurs).
Etoile du Chasseur
ID: sword_star
Probabilite de dropper une Emeraude a chaque kill de mob.

Enchantements au-dela des limites vanilla

EnchantementNiveaux customApplication
Looting5, 7, 12Epee — Augmente le nombre de drops de mob
Fortune5, 7, 12Pioche/Hache — Multiplie les drops de minerai
Efficacite6, 7, 8Pioche/Hache — Vitesse de minage amplifiee
Chatiment7, 10Epee — Degats amplifies contre undead

Les enchantements custom sont appliques via NbtTagCompound (tag ench) avec des niveaux au-dela des limites Bukkit normales. Leurs effets sont calcules manuellement dans les listeners d'evenements.

TL
TerraLift (Batisseurs)
v

Items speciaux qui placent des blocs en masse dans la direction du regard sur clic droit. L'item a une durabilite limitee (charges). Chaque utilisation consume une charge.

Batisseur Obsidienne
ID: terra_obsidian
Place une colonne / couche d'obsidienne (4x4 blocs de large, configurable).
Batisseur Lava
ID: terra_lava
Verse de la lave sur une zone configurable.
Batisseur Eau
ID: terra_water
Verse de l'eau sur une zone configurable.
Batisseur Fer
ID: terra_iron
Place des blocs de fer en masse.
Batisseur Sable
ID: terra_sand
Place du sable en masse (utile pour construire rapidement des defensdes).
SC
Items Divers Custom
v
Stick Sell-All
ID: stick_sellall
Clic droit sur un coffre : vend tout le contenu du coffre aux prix actuels du /shop. Affiche un recapitulatif du gain total.
TNT Chunk
ID: tnt_chunk
Explose et detruit un chunk complet (16x16) sur une profondeur configurable. Resets completement le chunk vise.
Replanteur Auto
ID: replanter_auto
Place dans un slot specifique d'inventaire, replante automatiquement chaque culture recoltee si les semences sont dans l'inventaire.
/bottlexp
Commande
Convertit l'XP du joueur en flacons d'experience (Bottle o' Enchanting). Calcul : X XP → N flacons. Stockable et echangeable.
16Module — Blocs Custom
AC
AgroCore
ID: agrocore
v

Un bloc custom (item special pose dans le monde) qui accelere la croissance des cultures dans le chunk ou il est place. Effet : les cultures poussent 2x plus rapidement (tick rate de croissance divise par 2). Un seul AgroCore actif par chunk (le second pose remplace le premier). Visible via un holograme au-dessus indiquant son effet et son proprietaire.

HP
Hoppers Custom
v
MegaHopper
ID: mega_hopper
Transfere les items 2x plus rapidement qu'un hopper standard (tick de transfert divise par 2). Identifie par NBT.
ChunkHopper
ID: chunk_hopper
Collecte automatiquement les ressources droppees dans l'ensemble du chunk (rayon = 1 chunk entier). Filtre uniquement les ressources de type Farm/Mob (configurable). Ne collecte pas les items de construction.
TN
TNT Custom
v
TNT Omega
ID: tnt_omega
TNT a puissance d'explosion 2x superieure a la TNT normale. Rayon de destruction amplifie. Reste soumise au systeme ObsidianBreaker.
TNT Chunk
ID: tnt_chunk
Detruit un chunk complet. La destruction est progressive (animations visuelles) pour eviter les lags serveur. La destruction passe outre ObsidianBreaker si la durabilite du bloc est inferieure au seuil.
FM
Filtre Minage
fr.nam2sy.minefilter
v

Le filtre minage permet a un joueur de definir une liste blanche de minerais. Lors du minage, seuls les minerais selectionnes sont ramasses dans l'inventaire. Les autres ne droppent pas (sont detruits sur place). Cela evite de ramasser de la roche ou du charbon quand on cherche des diamants.

/filtre → Ouvrir le menu de filtre (interface GUI avec tous les minerais) /filtre reset → Desactiver le filtre (tout est recolte)

Le filtre actif est stocke en Map memoire (uuid → Set de Material). Il est reinitialise a la deconnexion (optionnellement persiste en Redis).

17Module — Cosmetiques

Les cosmetiques sont le seul systeme d'achat reel sur SyperCraft. Le serveur est 100% Farm-to-Win : aucun avantage de gameplay n'est derriere un paywall. Les cosmetiques sont purement visuels.

Principe fondateur
Aucun cosmetique ne confere d'avantage de gameplay. Tout gain de performance (grade faction, atouts, items) s'obtient uniquement en jouant. Les cosmetiques s'achetent avec les Points Boutique (PB).
TX
CustomText — Texte personnalise
v

Texte personalise affiche en permanence au-dessus du pseudo du joueur (ligne supplementaire dans le nametag). Le joueur choisit son texte librement (50 caracteres max, avec couleurs Minecraft autorisees).

OptionCooldown de modification
Formule HebdomadaireModification possible 1 fois par semaine
Formule JournaliereModification possible 1 fois par jour
Formule HoraireModification possible 1 fois par heure
TG
Tags & Suffix d'abonnement
v

Tags visuels dans le chat, au-dessus du pseudo (nametag) et dans la tablist. Lies a un abonnement PB.

AbonnementTag chatSuffix tablist
Plus[+] couleur griseSuffix distinctif gris
Pro[PRO] couleur bleueSuffix distinctif bleu
Ultra[ULTRA] couleur orSuffix distinctif or avec animation
PT
Particules & Effets visuels
v

Auras (20 effets)

Effets de particules permanents autour du joueur : Couronne, Rayon, Aura spirale, Cercle, Trainees de pas, Papillons, Etoiles filantes, Nuage, Flammes, Glace, Foudre, Pluie de confettis, Ange, Demon, Arc-en-ciel, Explosion lente, Cristaux, Bulles, Feuilles, Runes. Chaque joueur voit les auras de tous les joueurs porteurs (sauf option de desactivation).

Effet de kill (20 effets)

Declenche a chaque kill de joueur : Feu d'artifice (3 types de couleur), Explosion de particules colorees, Particules de sang, Tourbillon de feuilles, Explosion de confettis, Eclair fantome, Eruption de flammes, Nuage de fumee, etc.

Effet de victoire d'event

Grand effet visible par tous dans un rayon de 100 blocs lors d'une victoire d'evenement : mega feu d'artifice + spirale de particules + broadcast dans le chat.

Effet de minerai au sol

Particules d'items de minerai (Diamant, Or, Emeraude, Nether Star, Pepite d'or) qui orbitent autour des pieds du joueur. Un seul type actif a la fois.

AI
Ailes & Pets
v

Ailes (10 types)

Simulates via ArmorStand invisible ancre dans le dos du joueur avec un item en main (texture en fonction de la ressource pack, ou items en main visibles en 1.8). Types : Papillon, Aigle, Oiseau, Petites, Demon, Ange, Membrane, Libellule, Rayons, Neige. Se cachent automatiquement en combat ou en interieur.

Pets (animaux de compagnie)

Mob miniature (taille reduite via NMS) qui suit le joueur. Customisable : nom (affiche en holograme), couleur (pour mouton et slime). Types : tous les mobs passifs classiques + mobs hostiles reduits. Le pet teleporte aupres du joueur si distance superieure a 30 blocs. Disparait en combat.

CS
Cosmetiques Divers
v
CosmetiqueDescription
Message kill/mort custom3 colorations possibles + 20 textes au choix. Configurable si le joueur veut afficher/masquer ses messages de mort. La tete du joueur tue est attribuable (option on/off).
Hologrammes en claimLe joueur peut placer un nombre limite d'hologrammes dans ses claims (persiste tant qu'il est dans la faction et que le territoire est claim). 50 caracteres max, couleurs Minecraft autorisees.
Animation s'asseoirClic droit avec un item dedie → Spawn d'un escalier en bois invisible + montage du joueur dessus. Annule si le joueur bouge.
Canon a moutonClic droit → Ejection d'un mouton RGB a haute vitesse. Apres 1 seconde de vol, le mouton explose en feu d'artifice multicolore. Cooldown de 10 secondes.
Message join/quit custom3 colorations + 20 textes au choix pour les messages de connexion/deconnexion.
Fly safezone cosmetiqueVol autorise uniquement dans la safezone (spawn). Particules de nuage sous les pieds. Desactive automatiquement si le joueur sort de la safezone.
MascotteArmorStand miniature positionne sur l'epaule droite ou gauche du joueur. Tete du joueur visible, armure en cuir (couleur personnalisable). Se met a jour avec les deplacements.
Crates (Caisses)Systeme de caisses a ouvrir avec des cles correspondantes. Les cles s'obtiennent via events, recompenses, ou PB. Chaque caisse a un pool de recompenses configure.
18Module — Classements

Cinq classements distincts, chacun represente par un NPC au spawn avec une GUI de visualisation et un holograme Top 3. Acces via /classement ou clic sur les NPC.

ClassementMetriqueAcces
Points FactionPoints totaux de la faction (balises, missions, guerres). Grade Conquete minimum requis ([Classement]).NPC + /top factions
Points PVPNombre de kills PVP du joueur (anti-farm : meme cible = cooldown de 30 min).NPC + /top pvp
Points FarmRessources farmees (calcul pondère par type de ressource).NPC + /top farm
Points PVEMobs tues toutes categories confondues (pondère par difficulte du mob).NPC + /top pve
Points EventPoints gagnes lors des micro-events warzone et evenements mondes.NPC + /top event

Les classements sont mis a jour toutes les 5 minutes et caches en Redis (cle LEADERBOARD:<type> avec TTL). Le Top 3 est affiche en holograme permanent au spawn (ArmorStands mis a jour a la meme frequence).

19Module — Scoreboard & Tablist
SB
Scoreboard lateral
fr.nam2sy.scoreboard
v

Scoreboard affiche en permanence a droite de l'ecran. Utilise l'API Scoreboard Bukkit (1.8 compatible) avec des equipes pour colorer les lignes. Mis a jour toutes les 2 secondes.

╔══════════════════╗ ║ S Y P E R C R A F T ║ ╠══════════════════╣ ║ Faction: [NomFaction] ║ ║ Power: 45 / 60 ║ ║ Balance: 1.2M coins ║ ╠══════════════════╣ ║ Classement: #3 ║ ║ Points: 8 400 ║ ╠══════════════════╣ ║ Syscoins: 2,340,000 ║ ║ Rang: Coalition ║ ╠══════════════════╣ ║ Zone: [Nom Zone] ║ ║ date.mc.sypercraft.fr ║ ╚══════════════════╝

Si le joueur n'a pas de faction, les lignes faction/power sont remplacees par une incitation a en rejoindre une. La zone affichee est determinee par la position du joueur (claim faction, zone nommee, warzone, safezone, libre).

TL
Tablist personnalisee
fr.nam2sy.tablist
v

La tablist (TAB) affiche les joueurs en ligne avec leur grade, leur faction et leur ping. Les joueurs sont ordonnes par grade (staff en premier, puis par grade joueur). Le header et footer de la tablist sont personnalises :

Header: ═══════ SYPERCRAFT ═══════ [Joueurs en ligne: N] Footer: mc.sypercraft.fr ─ Discord: discord.gg/XXX

Chaque ligne joueur : [PREFIX_GRADE] [TAG_FACTION] Pseudo avec les couleurs associees. Les tags cosmetiques (Plus/Pro/Ultra) apparaissent en suffix.

20Systemes Divers
PF
Pass Fidelite
fr.nam2sy.passfidelite
v

Recompenses de connexion quotidienne incitant les joueurs a se connecter regulierement. La recompense s'ameliore selon la serie de jours consecutifs.

PalierRecompense
Jour 1Petit montant de syscoins
Jours 2-6Montant progressivement croissant
Jour 7Recompense hebdomadaire (montant eleve + item bonus)
Jour 14Recompense bimensuelle (item rare)
Jour 30Recompense mensuelle (cosmetique exclusif ou grade temporaire)

La serie est reinitalisee si le joueur ne se connecte pas un jour. Le pass est revendiquer automatiquement a la connexion (pas de commande necessaire). Notification via ActionBar a la connexion.

CL2
Clear Lag par Item
fr.nam2sy.clearlag
v

Systeme de clear lag cible par type d'item (pas un clear global). Seuls les items en dehors des inventaires (droppes sur le sol) d'un type specifique sont supprimes. Un holograme au-dessus de chaque item en attente de suppression affiche le temps restant avant le clear.

/clearlag <item> [delai] → Programme le clear d'un type d'item dans X secondes /clearlag list → Voir les clears programmes actifs /clearlag cancel <item> → Annuler un clear programme

Le delai par defaut est configurable (suggere : 5 minutes). Le holograme (ArmorStand avec nom visible) est place au-dessus de chaque entite Item correspondante et mis a jour chaque seconde.

NR
Commande /near
v

Affiche les joueurs a proximite dans un rayon de 200 blocs (configurable). Par defaut, cooldown de 10 minutes entre deux utilisations. Des permissions de grade joueur peuvent reduire ce cooldown :

Grade joueurCooldown /near
Vagabond (defaut)10 minutes
Clan (joueur)7 minutes
Coalition (joueur)5 minutes
Conquete (joueur)3 minutes
Suprematie (joueur)1 minute
EN
Enclumes incassables
v

En 1.8, les enclumes ont une probabilite de se degrader a chaque utilisation. Ce comportement est annule via l'evenement InventoryClickEvent ou PrepareAnvilEvent : la durabilite de l'enclume est preventivment remise a son etat initial apres chaque usage.

RH
ChatGame (refonte)
v

Mini-jeux dans le chat lances automatiquement toutes les 15-45 minutes (interval aleatoire). La recompense n'est pas fixe : elle est calculee selon un pourcentage de l'economie actuelle du joueur gagnant. Formule :

recompense = max(recompense_minimum, syscoins_du_gagnant × pourcentage_chatgame) Exemple: si le gagnant a 500 000 coins et % = 1% → 5 000 coins de recompense. Ce systeme evite de rendre les chatgames ininteressants pour les joueurs riches.

Types de jeux

Question/Reponse, TextLess (mot obscurci), WordPuzzle (lettres melangees). Temps de reponse limite a 30 secondes. Si personne ne repond, aucune recompense.

GD
Grades Joueur
fr.nam2sy.grades
v

Les grades joueur (distincts des grades faction) se debloquent en jeu via des ressources craftees ou accumulees. Accessible via /grade qui ouvre un menu d'upgrade. Chaque grade joueur offre des avantages de gameplay (cooldown /near reduit, taux de drop ameliore, etc.).

Les grades joueur correspondent aux memes noms que les grades faction (Vagabond, Clan, Coalition, Conquete, Suprematie) mais sont des progressions independantes liees au joueur individuel, pas a sa faction.

/grade → Ouvrir le menu de grade (voir grade actuel, prochain, cout) /grade upgrade → Payer les ressources pour passer au grade superieur
21Contraintes techniques
ContrainteSpecification
Version MinecraftSpigot 1.8.8 (NMS v1_8_R3). Toute implementation NMS doit etre compatible avec cette version uniquement.
Dependance SyperAPIdepend: [SyperAPI] dans plugin.yml. Si SyperAPI n'est pas charge, SyperCore s'arrete.
ThreadingZero acces aux donnees sur le main thread. Toujours utiliser les methodes *Async() de SyperAPI. Les callbacks retournent sur le main thread.
Pas de SQL directSyperCore ne cree aucune connexion SQL ou Redis. Exception : tables supplementaires (faction_logs, metiers, etc.) peuvent etre creees via la DatabaseService de SyperAPI.
Configs YAMLToutes les valeurs numeriques (prix, cooldowns, limites, taux de drop) sont dans des fichiers YAML de configuration. Aucune valeur en dur dans le code.
NBT ItemsNbtTagManager (NMS) pour tous les tags custom sur items. Compatible 1.8.8.
MonnaieToujours stocker en long (centimes ou valeur directe). Jamais de float ou double pour les montants.
Nom faction3 a 20 caracteres, regex [\\p{L}\\p{N} ]. Pas de couleurs, pas de caracteres speciaux.
TeleportationCooldown universel de 5 secondes sur toutes les teleportations. Reduit a 2 secondes avec l'atout Teleporteur.
Protection base offlineTimer de 30 minutes gere par une tache periodique (BukkitRunnable, toutes les minutes). Stocker le timestamp de derniere deconnexion par faction dans Redis.
Limite MobStackRespecter la limite [MobStack] du grade de faction. Verification dans EntitySpawn.
Limites chunkSpawner, Hopper, Dropper, Redstone : checker les limites dans les evenements BlockPlaceEvent correspondants. Lire les limites depuis la config selon le grade de la faction proprietaire du chunk.
22Glossaire
TermeDefinition
SyperAPIPlugin d'infrastructure. Gere Redis, MySQL, cache JVM. Expose l'interface API publique.
SyperCorePlugin de jeu. Logique metier, commandes, menus, evenements. Depend de SyperAPI.
SPlayerObjet thread-safe representant un joueur reseau (SyperAPI).
Grade factionNiveau de progression de la faction (Vagabond→Suprematie). Definit les limites de ressources.
Grade joueurNiveau personnel du joueur. Definit cooldowns /near, taux de drop enclos, acces aux zones.
SyscoinsMonnaie principale obtenue en jouant.
PB (Points Boutique)Devise premium pour les cosmetiques uniquement.
PowerScore de puissance joueur → nombre de claims que sa faction peut posseder.
FChunkChunk Minecraft revendique, avec type (0=normal, 2=warzone, 3=safezone).
FactionRankRang interne faction. Hierarchy 0=owner, valeur plus elevee=rang inferieur.
RelationLien unilateral entre deux factions avec permissions customisees (remplace alliance/treve).
AtoutItem special (NBT) conferant un bonus. Un actif a la fois, 10min cooldown de changement, perdu si tue par joueur.
Combat TagEtat PVP actif. Dure 15s. Bloque les teleportations. Deco en combat = mort instantanee.
BaliseBloc custom craft (Emeraude + Nether Star) generant des points de faction par minute.
DirtyObjet modifie non encore persiste en MySQL. Flush batch toutes les 30s par SyperAPI.
SPlayerJoinedEventEvenement custom SyperAPI : SPlayer entierement charge apres connexion. SyperCore ecoute cet evenement.
TerraLiftItems custom qui placent des blocs en masse dans une direction.
ChunkHopperHopper custom collectant les ressources droppees sur tout le chunk.
AgroCoreBloc custom accelerant la croissance des cultures dans son chunk (x2).
Hotel de venteMarche entre joueurs (Auction House). Annonces de vente et d'achat avec prix fixes.
Filtre minageListe blanche de minerais. Seuls les minerais selectionnes sont ramasses lors du minage.
Offline shieldProtection des claims 30 minutes apres la deconnexion du dernier membre de la faction.
SYPERCRAFT — CDC Plugin Faction — v2.0
Operateur : Nam2Sy — Base : SyperCoreOLD + SyperAPI — Modules : 35+