ModernJobs
Un plugin métiers premium pour serveurs Minecraft avec interface complète, prestige, boosters, perks, classements et support PlaceholderAPI.
Vue d'ensemble du système de perks
Les perks sont des bonus de gameplay spéciaux que les joueurs débloquent en atteignant certains niveaux dans un métier. Il en existe deux types :
- Perks actives — déclenchées par des actions spécifiques (définies dans
config.ymlsousperks.features). Elles sont accordées via le champpermissionsouperksdans une récompense de niveau. - Effets passifs — effets de potion permanents appliqués tant que le joueur possède la permission requise (définis dans
config.ymlsousperks.passive-effects).
Les joueurs peuvent aussi voir leurs perks en jeu en ouvrant le menu détail d'un métier et en cliquant sur le bouton ✨ Perks.
Référence des perks actives
Ces perks sont configurées dans config.yml sous perks.features. Chaque perk est accordée en donnant au joueur la permission associée via une récompense de niveau.
Perks du Mineur
| Clé | Permission | Effet | Désactivable ? |
|---|---|---|---|
miner-stonesense | ojobs.miner.stonesense | Détecte le filon de minerai le plus proche dans un rayon configurable lors du minage. Affiche son nom dans la barre d'action. Cooldown configurable. | Oui |
miner-fortune | ojobs.miner.fortune | 25 % de chance d'obtenir un minerai supplémentaire fondu lors de la cassure d'un bloc de minerai | Oui |
miner-vein | ojobs.miner.vein | Lorsque vous cassez un minerai, tous les blocs de minerai connectés du même type (jusqu'à 24) se cassent automatiquement | Oui |
Perks du Bûcheron
| Clé | Permission | Effet | Désactivable ? |
|---|---|---|---|
woodcutter-treefeller | ojobs.woodcutter.treefeller | Casser un tronc casse l'arbre entier connecté (jusqu'à 48 troncs) | Oui |
woodcutter-leafdecay | ojobs.woodcutter.leafdecay | Les feuilles proches (rayon 3 blocs) tombent instantanément lorsque vous coupez un arbre | Oui |
Perks du Fermier
| Clé | Permission | Effet | Désactivable ? |
|---|---|---|---|
farmer-replant | ojobs.farmer.replant | Les cultures mûres cassées sont automatiquement replantées | Oui |
farmer-autoplant | ojobs.farmer.autoplant | Identique à replant mais gère aussi la canne à sucre, le cactus et le bambou | Oui |
farmer-growthboost | ojobs.farmer.growthboost | 30 % de chance que les cultures proches (rayon 2 blocs) avancent d'un stade de croissance lors de la récolte | Oui |
Perks du Artisan
| Clé | Permission | Effet | Désactivable ? |
|---|---|---|---|
crafter-massmake | ojobs.crafter.massmake | Après avoir crafté un objet, une copie bonus du résultat est ajoutée à votre inventaire | Oui |
Perks du Pêcheur
| Clé | Permission | Effet | Désactivable ? |
|---|---|---|---|
fisher-doublecast | ojobs.fisher.doublecast | Chaque prise fait apparaître une deuxième copie de l'objet pêché dans le monde | Oui |
fisher-luckofthesea | ojobs.fisher.luckofthesea | 30 % de chance de recevoir aussi une Coquille de Nautile lors de la pêche de poissons | Oui |
fisher-treasuresense | ojobs.fisher.treasuresense | Affiche un message dans la barre d'action lorsque vous pêchez un objet trésor (non-poisson) | Oui |
Perks du Chasseur
| Clé | Permission | Effet | Nécessite |
|---|---|---|---|
hunter-lootboost | ojobs.hunter.lootboost | Le premier drop d'un kill est dupliqué et ajouté au butin | — |
hunter-swiftkill | ojobs.hunter.swiftkill | Les coups critiques contre les mobs hostiles infligent des dégâts bonus (défaut +2,5). Un coup critique nécessite de tomber sans être au sol, en vol, en planeur ou en nage. | — |
hunter-tracking | ojobs.hunter.tracking | Votre boussole pointe automatiquement vers le monstre le plus proche à 64 blocs. Clic droit avec une boussole pour déclencher manuellement. | Boussole en main |
hunter-mobsense | ojobs.hunter.mobsense | Les monstres proches (rayon 20 blocs) reçoivent l'effet Incandescence chaque seconde — visibles à travers les murs | Boussole + Accroupi |
Perks du Forgeron
| Clé | Permission | Effet | Nécessite |
|---|---|---|---|
autosmelt | ojobs.blacksmith.autosmelt | Casser des blocs de minerai vous donne automatiquement le résultat fondu (minerai de fer → lingot de fer, etc.) au lieu du minerai brut | — |
blacksmith-repair | ojobs.blacksmith.repair | Accroupi + clic droit pour réparer l'outil en main principale de 50 points de durabilité, en consommant 1 lingot de fer | Accroupi + Lingot de fer |
blacksmith-netherite | ojobs.blacksmith.netherite | Clic droit sur une Table de Forge en tenant un outil/armure en diamant pour le mettre à niveau en Netherite, en consommant 1 Lingot de Netherite | Lingot de Netherite |
Perks du Constructeur
| Clé | Permission | Effet | Nécessite |
|---|---|---|---|
builder-steadyhands | ojobs.builder.steadyhands | 20 % de chance (configurable) de récupérer le bloc que vous venez de poser — il est automatiquement rendu à votre inventaire | — |
builder-scaffold | ojobs.builder.scaffold | Accroupi + clic droit pour placer un bloc directement sous vous lorsque vous êtes en l'air. Consomme un bloc de votre inventaire. | Accroupi + Bloc posable |
builder-lineplace | ojobs.builder.lineplace | Accroupi + clic droit sur une face de bloc pour étendre une ligne de blocs dans cette direction (3 blocs supplémentaires par défaut). Consomme des blocs de l'inventaire. | Accroupi + Bloc posable |
builder-areafill | ojobs.builder.areafill | Accroupi + clic droit sur une surface pour remplir une zone 3×3 avec votre bloc en main (rayon configurable). Fonctionne sur les sols, murs et plafonds. Consomme des blocs de l'inventaire. | Accroupi + Bloc posable |
Perks du Fondeur
| Clé | Permission | Effet | Nécessite |
|---|---|---|---|
supersmelt | ojobs.smelter.supersmelt | Lorsque l'auto-fonte se déclenche, 2 objets fondus sont obtenus au lieu de 1 | Fonctionne avec autosmelt |
smelter-autofuel | ojobs.smelter.autofuel | Un clic droit sur un four vide ajoute automatiquement 1 charbon depuis votre inventaire | Charbon dans l'inventaire |
smelter-masssmelt | ojobs.smelter.masssmelt | Lorsque vous retirez un grand lot d'un four (≥16 objets par défaut), 35 % de chance de recevoir une production bonus proportionnelle à la taille du lot | — |
Perks de l'Explorateur
| Clé | Permission | Effet | Nécessite |
|---|---|---|---|
explorer-dimensionwarp | ojobs.explorer.dimensionwarp | Accroupi + clic droit en tenant une Boussole pour se téléporter dans la dimension suivante (Surface → Nether → End → Surface) | Boussole + Accroupi |
Configuration des perks
Chaque perk définie dans config.yml sous perks.features supporte ces options universelles :
perks: features: miner-vein: enabled: true # false = perk désactivée pour tout le monde toggleable: true # true = les joueurs peuvent la désactiver avec /jobs perk <clé> permission: "ojobs.miner.vein" display-name: "Vein Miner" description: - "<gray>Casse les filons de minerai connectés." require-sneaking: false # true = ne se déclenche que si le joueur est accroupi require-item: "" # Nom du matériau — ne se déclenche que si cet objet est en main
Paramètres configurables par perk
Certaines perks ont des paramètres numériques supplémentaires réglables :
| Perk | Paramètre | Défaut | Contrôle |
|---|---|---|---|
miner-stonesense | search-radius | 4 | Rayon de détection des minerais (en blocs) |
miner-stonesense | cooldown-ticks | 40 | Ticks entre deux pulses stone-sense (20 ticks = 1 seconde) |
hunter-swiftkill | bonus-damage | 2.5 | Dégâts supplémentaires lors d'un coup critique |
builder-steadyhands | refund-chance | 0.20 | Probabilité (0.0–1.0) de récupérer un bloc posé |
builder-lineplace | length | 3 | Nombre de blocs supplémentaires dans la ligne |
builder-areafill | radius | 1 | Rayon de la zone de remplissage (1 = 3×3, 2 = 5×5) |
smelter-masssmelt | min-batch-size | 16 | Nombre minimum d'objets dans un lot pour déclencher le bonus |
smelter-masssmelt | trigger-chance | 0.35 | Probabilité (0.0–1.0) que le bonus se déclenche |
smelter-masssmelt | bonus-per-items | 16 | Objets bonus = taille du lot ÷ cette valeur |
miner-vein | blocks-per-tick | 4 | Blocs de filon cassés par tick (performance) |
woodcutter-treefeller | blocks-per-tick | 6 | Troncs cassés par tick (performance) |
Effets passifs (effets de potion permanents)
Les effets passifs appliquent un effet de potion à un joueur tant qu'il possède la permission requise. Le système se rafraîchit chaque seconde pour éviter tout scintillement.
perks: passive-effects: enabled: true effects: miner-nightvision: # Clé unique de votre choix enabled: true permanent: true # true = tâche de rafraîchissement (sans scintillement) permission: "ojobs.miner.nightvision" type: "NIGHT_VISION" # Nom PotionEffectType de Bukkit amplifier: 0 # 0 = niveau I, 1 = niveau II, etc. refresh-threshold: 100 # Réapplique quand les ticks restants passent sous ce seuil apply-duration: 500 # Ticks à appliquer à chaque rafraîchissement (doit être > refresh-threshold) ambient: true # true = particules subtiles (ou aucune si particles: false) particles: false # Afficher les particules de potion ? icon: true # Afficher l'icône dans le HUD ?
Ajouter votre propre effet permanent
Ajoutez une nouvelle entrée sous effects: et donnez la permission au joueur via une récompense de niveau :
# Dans config.yml : hunter-speed: enabled: true permanent: true permission: "ojobs.hunter.speed" type: "SPEED" amplifier: 0 refresh-threshold: 100 apply-duration: 500 ambient: true particles: false icon: true # Puis dans les récompenses de hunter.yml, accorder la permission : 10: permissions: - "ojobs.hunter.speed"
Définir les perks dans les fichiers métier (pour l'affichage GUI)
Chaque fichier yml de métier peut avoir une section perks:. Elle est purement informative pour la GUI — elle permet aux joueurs de voir quelles perks ils débloquent et à quel niveau. Elle n'accorde pas les perks elle-même ; les permissions sont accordées via level-rewards.
perks: 5: # Niveau auquel cette perk se débloque name: "Vein Miner" feature-key: miner-vein # Lie à la perk fonctionnelle dans config.yml icon: DIAMOND_PICKAXE # Matériau affiché dans la GUI quand déverrouillée description: - "Mine un filon entier d'un coup." 10: name: "Fortune des Minerais" feature-key: miner-fortune icon: EMERALD description: - "Chance d'obtenir un minerai supplémentaire."
Dans la GUI, les perks déverrouillées brillent et affichent leur icône. Les perks verrouillées apparaissent comme un objet gris avec le niveau requis.
Créer des perks personnalisées
ModernJobs supporte quatre niveaux de perks personnalisées, du zéro code à une mécanique Java complète :
Type 1 — Perk déclencheur de commandes (config complète, aucun code)
L'option la plus puissante sans code. Définissez une perk dans config.yml sous perks.features avec un bloc trigger. Quand l'événement se produit et que le joueur a la permission, ModernJobs exécute vos commandes, affiche un message dans la barre d'action et joue un son — avec support de chance et de temps de recharge.
# config.yml perks: features: lucky-miner: enabled: true toggleable: true permission: "ojobs.miner.lucky" trigger: event: "block-break" # block-break · block-place · mob-kill · fish # craft · smelt · interact · damage chance: 0.20 # 20% de chance par déclenchement cooldown: 10 # secondes entre deux déclenchements par joueur commands: - "give %player% diamond 1" player-commands: [] # commandes exécutées EN TANT QUE le joueur action-bar: "<gold>Lucky Miner<gray>: <white>diamant bonus !" sound: "ENTITY_EXPERIENCE_ORB_PICKUP" sound-volume: 1.0 sound-pitch: 1.2
Liez-la ensuite à la GUI dans le yml du métier et accordez-la via une récompense de niveau :
# jobs/miner.yml perks: 10: name: "<gold>🍀 Lucky Miner" icon: DIAMOND feature-key: "lucky-miner" description: - "<gray>20% de chance d'obtenir un diamant bonus" - "<gray>en cassant un bloc." rewards: 0: 10: perks: - "lucky-miner"
Placeholders disponibles
| Placeholder | Valeur | Disponible dans |
|---|---|---|
%player% | Nom du joueur | Tous les événements |
%block% | Matériau du bloc (ex. DIAMOND_ORE) | block-break, block-place |
%mob% | Type d'entité (ex. ZOMBIE) | mob-kill, damage |
%item% | Matériau de l'objet (ex. IRON_INGOT) | craft, smelt |
%catch% | Matériau de la prise | fish |
Type 2 — Effet de potion passif (config, aucun code)
Tout effet de potion permanent ou temporaire conditionné par une permission. Configuré dans config.yml sous perks.passive-effects.effects.
Type 3 — Lier une perk à une mécanique intégrée
Ajoutez un feature-key correspondant à l'un des identifiants intégrés ci-dessous. La mécanique se déclenche pour tout joueur ayant la permission requise.
perks: 15: name: "<aqua>⛏ Vein Miner" icon: DIAMOND_PICKAXE feature-key: "miner-vein" description: - "<gray>Sneak + casser pour miner tout le filon." rewards: 0: 15: perks: - "miner-vein"
Type 4 — Mécanique entièrement personnalisée via l'API Java
Pour des mécaniques de jeu totalement nouvelles, implémentez CustomPerkHandler dans votre propre plugin et enregistrez-le auprès de ModernJobs au démarrage. Votre handler est appelé automatiquement par ModernJobs pour les événements que vous surchargez, uniquement quand le joueur possède la permission de la perk — les vérifications enabled/toggleable/require-sneaking de config.yml s'appliquent toujours.
// Dans le onEnable() de votre plugin : OJobsProvider.get().ifPresent(api -> api.registerPerkHandler(new MaPerkPersonnalisee())); // Désenregistrer au disable : OJobsProvider.get().ifPresent(api -> api.unregisterPerkHandler("monplugin-maperk"));
public class MaPerkPersonnalisee implements CustomPerkHandler {
@Override
public String getKey() {
return "monplugin-maperk"; // Doit correspondre au feature-key dans le yml du métier
}
@Override
public void onBlockBreak(Player player, BlockBreakEvent event) {
// Votre mécanique ici — ne se déclenche que si le joueur a la permission
player.sendMessage("Perk personnalisée déclenchée !");
}
// Surchargez uniquement les événements dont vous avez besoin :
// onBlockPlace, onInteract, onMobKill, onFish, onCraft, onFurnaceExtract, onDamage
}
Définissez ensuite la perk dans le yml du métier pour qu'elle s'affiche dans la GUI :
# Dans jobs/monmetier.yml perks: 20: name: "<red>🔥 Ma Perk Personnalisée" icon: BLAZE_ROD feature-key: "monplugin-maperk" description: - "<gray>Fait quelque chose d'incroyable." rewards: 0: 20: perks: - "monplugin-maperk"
Optionnellement, ajoutez une section de configuration pour bénéficier gratuitement du support enabled/toggleable/require-sneaking :
# Dans config.yml
perks:
features:
monplugin-maperk:
enabled: true
permission: "monmetier.maperk"
toggleable: true
require-sneaking: false
CustomPerkHandler se trouve dans le package fr.oreo.modernjobs.api. Déclarez ModernJobs comme dépendance souple dans votre plugin.yml et ajoutez ModernJobs à votre classpath de compilation.Tous les feature-key intégrés
| Feature key | Mécanique |
|---|---|
miner-vein | Mine tout le filon (sneak + casser) |
miner-fortune | Drops de minerais supplémentaires |
miner-stonesense | Détection de minerais à proximité |
autosmelt | Auto-fusion des blocs minés |
supersmelt | Double sortie de fusion |
woodcutter-treefeller | Abat tout l'arbre d'un coup |
woodcutter-leafdecay | Décomposition instantanée des feuilles |
farmer-replant | Re-plantation automatique des cultures |
farmer-autoplant | Plantation automatique depuis l'inventaire |
farmer-growthboost | Bonus de farine d'os à la récolte |
crafter-massmake | Craft d'une pile entière d'un coup |
fisher-doublecast | Double récompenses de pêche |
fisher-luckofthesea | Bonus de trésors à la pêche |
fisher-treasuresense | Détection de trésors proches |
hunter-lootboost | Drops de mobs supplémentaires |
hunter-swiftkill | Bonus de dégâts en sneakant |
hunter-tracking | Voir les positions des mobs proches |
hunter-mobsense | Détecter les mobs hostiles à proximité |
blacksmith-repair | Réparation des outils au craft |
blacksmith-netherite | Bonus d'amélioration en Nétherite |
builder-steadyhands | Pas de perte de durabilité en construisant |
builder-scaffold | Pose un pilier comme échafaudage en sneakant |
builder-lineplace | Pose une ligne de blocs (sneak + clic droit) |
builder-areafill | Remplit une zone 3×3 (sneak + clic droit) |
explorer-dimensionwarp | Téléportation entre dimensions |
smelter-autofuel | Insertion automatique de combustible dans les fours |
smelter-masssmelt | Fusion de plusieurs piles simultanément |
feature-key (ou avec une clé non reconnue) est traitée comme une perk de permission pure — elle s'affiche dans la GUI et accorde la permission, mais ne déclenche aucune mécanique spéciale. C'est intentionnel et utile pour l'intégration avec d'autres plugins.
ModernJobs — Plugin Minecraft Métiers Premium
Documentation générée pour les administrateurs et les joueurs.