Compare commits

..

2 Commits

Author SHA1 Message Date
felden.r@grenoble.archi.fr 83c3059ca3 Professional website improvements
- Boidelo: Replaced "alcool" with "jeu de société" throughout
- GeoRealmCraft: Reframed as public server infrastructure project with focus on system administration and community management
- Removed incomplete "Recherche" section from CVs
- Added CurseForge link to Custom Ore Gen mod
- Added CLAUDE.md documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-12 09:51:45 +01:00
felden.r@grenoble.archi.fr 1af353253a first commit 2026-01-05 15:35:14 +01:00
29 changed files with 3269 additions and 83 deletions
+457
View File
@@ -0,0 +1,457 @@
# Analyse Complète du Code - BoideloV3
## 📋 Table des Matières
1. [Présentation du Projet](#présentation-du-projet)
2. [Structure du Projet](#structure-du-projet)
3. [Fichiers Principaux](#fichiers-principaux)
4. [Fonctionnalités](#fonctionnalités)
5. [Technologies et Dépendances](#technologies-et-dépendances)
6. [Architecture](#architecture)
7. [Composants et Leurs Relations](#composants-et-leurs-relations)
8. [Configuration](#configuration)
9. [Changelog et Améliorations Récentes](#changelog-et-améliorations-récentes)
---
## 🎮 Présentation du Projet
**BoideloV3** est une application Android de jeu d'alcool (similaire à "King's Cup" ou "Never Have I Ever"). L'application permet à un groupe de joueurs de répondre à des questions aléatoires avec des consommations de boissons associées.
### Caractéristiques Principales
- **Jeu multijoueur** (minimum 3 joueurs, sans maximum)
- **150 questions préchargées** depuis un fichier JSON
- **Interface en français** avec Material Design 3
- **Défis multi-manches** avec système de gestion
- **Paramètres personnalisables** (nombre de questions, ajout de gorgées, durée des défis)
- **Générateur aléatoire optimisé** pour une vraie randomisation
- **Intégration OpenAI** (en développement)
- **Connexion PostgreSQL** (prête)
---
## 📁 Structure du Projet
```
D:\boidelo\
├── .gradle/ # Cache de construction Gradle
├── .idea/ # Configuration IntelliJ IDEA
├── app/
│ ├── build.gradle # Configuration de build app-level
│ ├── libs/ # Librairies JAR externes
│ │ ├── postgresql-42.2.27.jre7.jar
│ │ └── postgresql-42.6.0.jar
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ ├── assets/
│ │ └── question.json # Base de données questions (150 questions)
│ ├── java/com/example/boidelov3/
│ │ ├── MainActivity.java # Écran principal avec ajout dynamique de joueurs
│ │ ├── Jeux.java # Activité principale du jeu avec gestion des défis
│ │ ├── Jeuxold.java # Implémentation héritée
│ │ ├── JeuxParametres.java # Paramètres du jeu avec sliders
│ │ ├── EndGameActivity.java # Écran de fin de partie
│ │ ├── ChatGPTTask.java # Intégration OpenAI (commenté)
│ │ ├── DatabaseConnection.java # Connexion PostgreSQL
│ │ ├── data/
│ │ │ ├── Question.java # Modèle de données Question
│ │ │ └── QuestionRepository.java # Repository des questions
│ │ ├── game/
│ │ │ └── GameEngine.java # Moteur de jeu
│ │ └── utils/
│ │ ├── BoideloAnimationUtils.java # Animations UI
│ │ └── OnBoardingActivity.java # Page d'accueil
│ └── res/
│ ├── anim/ # Animations
│ ├── drawable/ # Icônes et graphiques
│ ├── layout/ # Layouts UI
│ │ ├── activity_main.xml # Écran principal
│ │ ├── activity_jeux.xml # Jeu en cours
│ │ ├── activity_jeux_parametres.xml # Paramètres
│ │ └── activity_end_game.xml # Fin de partie
│ ├── mipmap-*/ # Icônes pour différentes densités
│ ├── values/ # Chaînes, couleurs, thèmes
│ │ └── strings.xml # Textes localisés
│ ├── values-night/ # Ressources mode nuit
│ └── xml/ # Fichiers de configuration XML
├── build.gradle # Configuration de build projet-level
├── gradle.properties # Propriétés Gradle
├── settings.gradle # Paramètres du projet
├── gradlew, gradlew.bat # Exécutables Gradle wrapper
└── .gitignore # Fichier Git ignore
```
---
## 📄 Fichiers Principaux
### Activités Principales
#### `MainActivity.java`
**Point d'entrée principal** de l'application avec ajout dynamique de joueurs.
**Responsabilités :**
- Gestion de la saisie des noms de joueurs (3 champs fixes + ajouts dynamiques)
- Validation du minimum de 3 joueurs
- Génération dynamique de l'interface utilisateur avec TextInputLayout cohérents
- Persistence des noms avec SharedPreferences
- Compteur de joueurs en temps réel
**Améliorations récentes :**
- ✅ Correction de l'UI pour les champs dynamiques (bordure visible, espacement cohérent)
- ✅ Bouton suppression plus petit et mieux positionné
- ✅ Icône de suppression (poubelle) optimisée
#### `Jeux.java`
**Cœur du jeu**, gère l'affichage des questions, les mécaniques de jeu et les défis.
**Responsabilités :**
- Chargement des questions depuis le JSON
- Sélection aléatoire sans répétition
- Gestion des tours de joueurs
- Gestion des défis multi-manches
- Feedback visuel avec arrière-plans colorés
- Remplacement dynamique des variantes et joueurs
**Améliorations récentes :**
-**Générateur aléatoire optimisé** : une seule instance `Random partagée` pour toute l'activité
-**Empêcher nouveaux défis quand un défi est en cours** : filtrage des questions avec `<manches>`
-**Bug fix fin de jeu** : flag `isFinishingGame` pour éviter les clics multiples
-**Offset durée des défis** : applique le paramètre `durationDefis` au nombre de manches (5-14 + offset)
#### `JeuxParametres.java`
**Écran de configuration** des paramètres du jeu avec sliders interactifs.
**Responsabilités :**
- Configuration du nombre de questions (20-150, par pas de 10)
- Gestion des ajouts de gorgées (0-20) avec paliers de difficulté
- Configuration du ratio BDD/OPENAI (1/1 à 1/15)
- **Configuration de la durée des défis** (-5 à +15, par défaut 0)
- Gestion de la clé API OpenAI
- Test de connexion API
**Améliorations récentes :**
- ✅ Correction des sliders : affichage en temps réel des valeurs
- ✅ Slider durée des défis avec valeurs négatives autorisées (offset de -5 à +15)
#### `EndGameActivity.java`
**Écran de fin de partie** avec statistiques.
**Responsabilités :**
- Affichage des statistiques de partie
- Boutons pour rejouer ou retourner au menu
### Modèles de Données
#### `Question.java`
**Modèle de données** pour une question individuelle.
```java
public class Question {
private int id; // Identifiant unique
private String question; // Texte de la question
private int gorger; // Nombre de gorgées
private boolean distribution; // Flag de distribution
private boolean recois; // Flag de réception
private List<String> variante; // Variantes de la question
private int manchesRestantes; // Nombre de manches restantes
private String arretMessageManche; // Message de fin de défi
}
```
#### `QuestionRepository.java`
**Repository** pour la gestion des questions avec filtrage.
---
## ⚡ Fonctionnalités
### Gestion des Joueurs
- **3 champs fixes** pour les premiers joueurs
- **Ajout dynamique** de joueurs avec bouton de suppression
- **Minimum 3 joueurs** requis pour commencer
- **Support illimité** de nombre de joueurs
- **Persistance** avec SharedPreferences
- **Compteur en temps réel** : "Joueurs: X / min. 3"
### Système de Questions
- **150 questions préchargées** depuis JSON
- **Sélection aléatoire optimisée** sans répétition
- **Variantes** avec remplacement dynamique de contenu
- **Questions à manches** avec mécanique de compte à rebours
- **Filtrage intelligent** : pas de nouveau défi si un défi est en cours
### Mécaniques de Jeu
- **Ajustement dynamique** du nombre de gorgées via slider (0-20)
- **Randomisation optimisée** des joueurs pour les questions
- **Feedback visuel** avec arrière-plans colorés
- **Défis multi-manches** avec affichage du compteur
- **Système de paliers** : de "Grosse merde" à "L'ENDER DRAGON"
### Paramètres de Partie
| Paramètre | Plage | Défaut | Description |
|-----------|-------|--------|-------------|
| **Nombre de questions** | 20-150 (par 10) | 50 | Nombre de questions avant fin de partie |
| **Ajout de gorgées** | 0-20 | 0 | Gorgées supplémentaires à chaque consommation |
| **Ratio BDD/OPENAI** | 1/1 à 1/15 | 1/8 | Ratio entre questions locales et IA |
| **Durée des défis (offset)** | -5 à +15 | 0 | Offset appliqué au nombre de manches |
### Interface Utilisateur
- **Material Design 3** avec composants modernes
- **Animations fluides** (fade in, slide out, pop in)
- **Feedback haptique** sur les interactions
- **Localisation en français** entièrement corrigée
- **Mode sombre** avec thèmes adaptés
---
## 🛠 Technologies et Dépendances
### Technologies Principales
| Technologie | Version | Usage |
|-------------|---------|-------|
| **Android SDK** | 33 (compile) | Développement Android natif |
| **Java** | 17 | Langage principal |
| **Gradle** | 8.2 | Automatisation de build |
### Bibliothèques Principales
```gradle
dependencies {
// Material Design
implementation 'com.google.android.material:material:1.12.0'
// Cœur AndroidX
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
// Réseau
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
// Base de données
implementation 'com.impossibl.pgjdbc-ng:pgjdbc-ng:0.8.3'
// Traitement JSON
implementation 'com.google.code.gson:gson:2.10.1'
// Tests
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}
```
---
## 🏗 Architecture
### Pattern MVC (Model-View-Controller)
```
┌─────────────────────────────────────────────────┐
│ Model │
│ • Question.java │
│ • QuestionRepository.java │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ Controller │
│ • MainActivity.java │
│ • Jeux.java │
│ • JeuxParametres.java │
│ • EndGameActivity.java │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ View │
│ • XML Layouts │
│ • Resources (drawable, strings, colors) │
│ • Animations │
└─────────────────────────────────────────────────┘
```
### Flux des Activités
```
MainActivity (Saisie joueurs)
↓ validation (min. 3 joueurs)
JeuxParametres (Configuration)
↓ paramètres configurés
Jeux (Partie en cours)
↓ toutes les questions posées OU fin manches
EndGameActivity (Stats et fin)
MainActivity (Retour menu)
```
---
## 🔗 Composants et Leurs Relations
### Flux de Données
```
┌────────────────────────────────────────────────────────────┐
│ MainActivity │
│ - 3 champs fixes + ajouts dynamiques │
│ - Compteur temps réel : "Joueurs: X / min. 3" │
│ - UI cohérente pour tous les champs │
└────────────────────┬───────────────────────────────────────┘
│ Intent avec liste joueurs
┌────────────────────────────────────────────────────────────┐
│ JeuxParametres │
│ - Slider questions : 20-150 (pas de 10) │
│ - Slider gorgées : 0-20 avec paliers │
│ - Slider ratio BDD/OPENAI : 1-15 │
│ - Slider durée défis : -5 à +15 (offset) │
│ - Toggle OpenAI + champ clé API │
└────────────────────┬───────────────────────────────────────┘
│ Intent avec tous les paramètres
┌────────────────────────────────────────────────────────────┐
│ Jeux │
│ - Charge questions depuis JSON (150 questions) │
│ - Générateur Random optimisé (instance unique) │
│ - Filtre questions <manches> si défi en cours │
│ - Applique offset durée défis au nombre de manches │
│ - Gère défis multi-manches │
│ - Flag isFinishingGame pour éviter bugs fin de partie │
└────────────────────┬───────────────────────────────────────┘
│ Fin de partie
┌────────────────────────────────────────────────────────────┐
│ EndGameActivity │
│ - Affiche statistiques │
│ - Boutons Rejouer / Retour │
└────────────────────────────────────────────────────────────┘
```
---
## ⚙️ Configuration
### Configuration de Build
| Propriété | Valeur |
|-----------|--------|
| **Compile SDK** | 33 |
| **Min SDK** | 24 |
| **Target SDK** | 33 |
| **Version Code** | 1 |
| **Version Name** | "1.0" |
| **Package** | com.example.boidelov3 |
### Configuration Base de Données
```
Hôte : 82.65.214.214
Port : 5432
Base de données : boidelo
Utilisateur : android
```
---
## 🔄 Changelog et Améliorations Récentes
### Version Actuelle - 2025
#### ✅ Corrections Orthographe (2025)
- **MainActivity.java** : "ne peux pas" → "ne peut pas"
- **question.json** : "diferentes" → "différentes", "veritable" → "véritable", "tu a" → "tu as", etc.
- **strings.xml** : "c ki" → "C'est qui", "komment" → "comment", "Prenom" → "Prénom"
- **Jeuxold.java** : nombreuses corrections (tour de rôle, choisissant, défie, etc.)
#### ✅ Optimisation Aléatoire (2025)
- **Problème** : `new Random()` créé à chaque appel causait des répétitions
- **Solution** : Instance unique `private final Random random = new Random()` partagée dans toute l'activité
- **Fichiers modifiés** : `Jeux.java`, `Jeuxold.java`
- **Résultat** : Vraie randomisation des joueurs et questions
#### ✅ Interface Utilisateur Cohérente (2025)
- **Problème** : Champs dynamiques avaient un style différent des 3 premiers
- **Solution** : Application complète du style Material3
- Bordure visible avec `setBoxStrokeColorStateList()`
- Couleur de fond `@color/surface`
- Largeur bordure 2dp
- Icône de suppression (X) pour effacer
- **Bouton suppression** : Taille réduite (36dp), espacement optimisé (68dp marge)
- **Résultat** : UI uniforme entre tous les champs de saisie
#### ✅ Slider Durée des Défis (2025)
- **Nouveau paramètre** : Offset pour la durée des défis
- **Plage** : -5 à +15 manches
- **Défaut** : 0 (pas d'offset)
- **Affichage** : Signe +/- pour les valeurs non nulles (-3, +5, etc.)
- **Application** : `nbaleatoiremanches = (5-14) + durationDefis`
- **Minimum garanti** : 1 manche (même avec offset négatif)
#### ✅ Gestion Intelligente des Défis (2025)
- **Problème** : Nouveaux défis pouvaient s'accumuler même quand un défi était en cours
- **Solution** : Filtrage des questions avec `<manches>` dans `getRandomQuestion()`
- **Résultat** : Plus d'accumulation de défis, un seul défi à la fois
#### ✅ Bug Fix Fin de Jeu (2025)
- **Problème** : Quand un défi était en cours à la fin des questions, il fallait cliquer plusieurs fois
- **Solution** : Flag `isFinishingGame` + désactivation bouton "Suivant"
- **Résultat** : Fin de jeu fluide sans clics multiples
#### ✅ Expansion Contenu (2025)
- **Ajout de 50 nouvelles questions** (passage de 100 à 150 questions)
- **Nouvelles catégories** :
- Questions de groupe (ski, tatouage, iPhone, etc.)
- Questions de classement (le plus drôle, le plus susceptible, etc.)
- Questions couples/amour (ghosting, premier baiser, etc.)
- Défis avec manches (accents, interdictions, mini-jeux)
- Questions interactives J1/J2/J3 (bras de fer, devinettes, mimes)
- Questions variante (activités, fandoms, musique)
---
## 🔮 Statut des Fonctionnalités
| Fonctionnalité | Statut | Détails |
|----------------|--------|---------|
| Jeu multijoueur | ✅ Terminé | Support illimité, UI cohérente |
| Questions JSON | ✅ Terminé | 150 questions, orthographe corrigée |
| Interface UI | ✅ Terminé | Material Design 3, animations |
| Sliders paramètres | ✅ Terminé | Affichage temps réel, 4 sliders actifs |
| Défis multi-manches | ✅ Terminé | Gestion optimisée, pas d'accumulation |
| Générateur aléatoire | ✅ Optimisé | Instance unique Random partagée |
| Durée défis (offset) | ✅ Terminé | -5 à +15 manches |
| Orthographe | ✅ Corrigée | Tous fichiers vérifiés |
| PostgreSQL | 🔧 Prêt | Connexion configurée |
| OpenAI ChatGPT | 🚧 En développement | Interface prête |
---
## 📝 Conclusion
Le codebase représente une **application Android de jeu d'alcool mature et bien structurée** avec des patterns d'architecture modernes. Les améliorations récentes ont considérablement amélioré l'expérience utilisateur :
- **Randomisation fiable** grâce au générateur optimisé
- **Interface cohérente** pour tous les champs de saisie
- **Défis gérés intelligemment** sans accumulation
- **Paramètres flexibles** pour personnaliser les parties
- **Contenu enrichi** avec 150 questions variées
- **Orthographe parfaite** dans tout le projet
L'architecture est propre, modulaire et facilement extensible pour de futures améliorations.
---
*Document mis à jour - Janvier 2025* 🍺
+678
View File
@@ -0,0 +1,678 @@
# Custom Ore Gem Mod
## Description
Custom Ore Gem est un mod Minecraft développé avec MCreator pour Forge 1.20.1. Ce mod modifie la distribution des ressources dans Minecraft en ajoutant de nouvelles variantes de minerais avec des drops configurables et des outils personnalisés.
> **Note importante** : Ce mod est conçu pour être utilisé avec KubeJS et ne doit pas être utilisé seul.
## Informations Techniques
- **Version de Minecraft** : 1.20.1
- **Mod Loader** : Forge (version 47.3.0)
- **Version de Java** : Java 17
- **Mod ID** : `custom_ore_gen`
- **Version** : 1.0.0
- **Auteur** : Aulyrius (créé via MCreator)
- **Site web** : https://lanro.eu
## Avant garde
Il est recommandé pour la bonne utilisation du mods d'utilisé des mods complémentaire :
* **Biomes O' Plenty** - Pour profiter des biomes supplémentaires (69 biomes BOP supportés)
* **Biome Replacer** pour supprimer les biomes caves, qui n'ont pas de sens de température et d'un point de vue joueur est pas logique.
biome_replacer.properties :
```javascript
minecraft:deep_dark > null
minecraft:dripstone_caves > null
minecraft:lush_caves > null
```
* KubeJS pour supprimer la génération de base avec le script suivant :
*remove.js*
```javascript
// priority: 0
WorldgenEvents.remove(event => {
var minecraftOreList = [
'minecraft:coal_ore',
'minecraft:deepslate_coal_ore',
'minecraft:copper_ore',
'minecraft:deepslate_copper_ore',
'minecraft:iron_ore',
'minecraft:deepslate_iron_ore',
'minecraft:gold_ore',
'minecraft:deepslate_gold_ore',
'minecraft:redstone_ore',
'minecraft:deepslate_redstone_ore',
'minecraft:emerald_ore',
'minecraft:deepslate_emerald_ore',
'minecraft:diamond_ore',
'minecraft:deepslate_diamond_ore',
'minecraft:lapis_ore',
'minecraft:deepslate_lapis_ore'
];
event.removeOres(props => {
props.blocks = minecraftOreList
});
});
```
## Fonctionnalités Principales
### Nouveaux Minerais (16 blocs)
Le mod ajoute plusieurs variantes de minerais personnalisés :
#### Variantes de Diamant
- **Deepslate Shard Diamond Ore** (`deepslatesharddiamondore`) : Un minerai de diamant qui droppe des éclats de diamant
- Se génère dans tous les biomes (forge:any)
- Se génère uniquement en profondeur (deepslate)
- Taille des filons : 16 blocs
- Drop : 1-2 Diamond Shards (Fortune supporté)
- **Concentrated Diamond Ore** (`concentrateddiamondore`) : Un minerai de diamant plus concentré
- Se génère dans les biomes froids (cold_biomes)
- Drop : 1-2 Diamants (Fortune supporté)
#### Variantes d'Or
- **Pure Golden Ore** (`puregoldenore`) : Un minerai d'or pur de haute qualité
- Se génère dans les biomes chauds (hot_biomes)
- Hauteur : 0 à 256
- Drop : 2-4 Pépites d'or
- **Deepslate Pure Golden Ore** (`deepslatepuregoldenore`) : Version deepslate du minerai d'or pur
#### Variantes de Charbon
- **Concentrated Coal Ore** (`concentratedcoalore`) : Charbon plus concentré
- Se génère dans les biomes tempérés (tempered_biomes)
- Drop : 2-4 Charbons
#### Variantes de Fer
- **Iron Ore** (`ironore`) : Variante personnalisée du minerai de fer
- Se génère dans les biomes tempérés (tempered_biomes)
- **Deepslate Iron Ore** (`deepslateironore`) : Version deepslate du minerai de fer
#### Variantes d'Émeraude
- **High Emerald Ore** (`highemeraldore`) : Émeraude de haute qualité
- Se génère dans les biomes de montagne (mountain_biomes)
- **Lower Emerald Ore** (`loweremeraldore`) : Émeraude de basse qualité
- Se génère dans les biomes très rares (rare_biomes : mushroom_fields, ice_spikes)
#### Variantes de Redstone
- **Redstone Ore** (`redstoneore`) : Variante personnalisée du minerai de redstone
- **Deepslate Redstone Ore** (`deepslateredstoneore`) : Version deepslate
#### Variantes de Lapis
- **Lapis Ore** (`lapisore`) : Variante personnalisée du minerai de lapis
- **Deepslate Lapis Ore** (`deepslatelapisore`) : Version deepslate
#### Variantes de Cuivre
- **Copper High Ore** (`copperhighore`) : Variante haute du minerai de cuivre
- Se génère dans les biomes chauds (hot_biomes)
- **Copper Lower Ore** (`copperlowerore`) : Variante basse du minerai de cuivre
- Nom affiché : "deepslate copper ore"
### Nouveaux Objets
#### Diamond Shard (Éclat de Diamant) (`diamondshard`)
- **Description** : "Diamond sparkle, to create tools or to create a diamond"
- **Rareté** : RARE
- **Stack** : 64
- **Utilisation** :
- Permet de créer des outils en éclats de diamant
- Peut être crafté en diamant complet (9 éclats = 1 diamant)
#### Ore Biome Finder (`ore_biome_finder`)
- **Description** : Un outil permettant d'identifier les minerais présents dans le biome actuel
- **Stack** : 1 (non stackable)
- **Utilisation** : Clic droit pour afficher les informations du biome actuel
- **Informations affichées** :
- Nom du biome et ID
- Tags du mod applicables au biome (cold_biomes, hot_biomes, etc.)
- Liste des minerais trouvables dans ce biome
- **Craft** : Compass + Diamond Shards (voir recettes ci-dessous)
### Outils en Diamond Shard
Le mod introduit une nouvelle catégorie d'outils située entre le fer et le diamant :
#### Pioche en Éclat de Diamant (`sharddiamondpickaxe`)
- **Durabilité** : 200 utilisations
- **Vitesse de minage** : 7.0
- **Dégâts d'attaque** : 1
- **Réparation** : Utilise des Diamond Shards
#### Pelle en Éclat de Diamant (`sharddiamondshovel`)
- **Durabilité** : 200 utilisations
- **Vitesse de minage** : 4.0
- **Dégâts d'attaque** : 2
#### Hache en Éclat de Diamant (`sharddiamondaxe`)
- **Durabilité** : 200 utilisations
- **Vitesse de minage** : 7.0
- **Dégâts d'attaque** : 6
#### Paxel en Éclat de Diamant (`sharddiamondpaxel`)
- **Description** : Outil combiné pioche + pelle + hache, tout-en-un pour le minage
- **Durabilité** : 1000 utilisations
- **Vitesse de minage** : 6.5
- **Dégâts d'attaque** : 1 (pas fait pour le combat)
- **Réparation** : Utilise des Diamond Shards
- **Fonctionnalités** :
- Mine tous les blocs (pierre, bois, terre, etc.)
- Efficace sur tous les types de blocs
- Remplace les 3 outils séparés
### Armure en Diamond Shard
Le mod introduit une armure intermédiaire située entre le fer et le diamant :
| Pièce | Protection | Durabilité | Craft |
|-------|-----------|------------|-------|
| Casque | 3 | 250 | 5 Diamond Shards |
| Plastron | 7 | 300 | 8 Diamond Shards + 1 Diamant |
| Jambières | 5 | 280 | 7 Diamond Shards + 1 Diamant |
| Bottes | 2 | 230 | 4 Diamond Shards |
| **Total** | **17** | **1060** | **24 Shards + 2 Diamants** |
**Comparaison** : Fer (15 armure, 535 durabilité) | Diamond Shard (17 armure, 1060 durabilité) | Diamant (20 armure, 2048 durabilité)
## Distribution des Minerais par Biomes
Le mod utilise une classification logique des biomes pour la génération des minerais via les biome modifiers de Forge. Le support de **Biomes O' Plenty** est inclus avec 69 biomes supplémentaires.
### Vue d'ensemble
| Catégorie | Minerais | Biomes Vanilla | Biomes BOP |
|-----------|----------|:--------------:|:----------:|
| **Cold** | Lapis, Deepslate Lapis, Concentrated Diamond | 22 | 11 |
| **Hot** | Pure Gold, Deepslate Pure Gold, Copper High, Copper Lower, Redstone, Deepslate Redstone | 20 | 15 |
| **Mountain** | High Emerald | 22 | 10 |
| **Rare** | Lower Emerald | 10 | 10 |
| **Tempered** | Iron, Deepslate Iron, Concentrated Coal | 23 | 23 |
| **All** | Deepslate Shard Diamond | - | - |
---
### 🔷 forge:any (Tous les biomes)
**Minerais** : Deepslate Shard Diamond Ore
- **TOUS** les biomes (vanilla + mods)
- **Se génère uniquement en profondeur (deepslate)**
---
### ❄️ cold_biomes (Biomes Froids)
**Minerais** : Lapis Ore, Deepslate Lapis Ore, Concentrated Diamond Ore
**Biomes Vanilla (22)** :
| Nom du Biome | Traduction |
|--------------|------------|
| snowy_slopes | Pentes enneigées |
| snowy_beach | Plage enneigée |
| snowy_plains | Plaines enneigées |
| snowy_taiga | Taïga enneigée |
| ice_spikes | Pics de glace |
| old_growth_pine_taiga | Taïga ancienne de pins |
| old_growth_spruce_taiga | Taïga ancienne d'épicéas |
| taiga | Taïga |
| cold_ocean | Océan froid |
| deep_cold_ocean | Océan profond froid |
| frozen_ocean | Océan gelé |
| deep_frozen_ocean | Océan profond gelé |
| frozen_peaks | Pics gelés |
| jagged_peaks | Pics déchiquetés |
| stony_peaks | Pics pierreux |
| dripstone_caves | Grottes de spéléothèmes |
| deep_dark | Deep Dark |
| frozen_river | Rivière gelée |
| grove | Bosquet |
**Biomes BOP (11)** :
| Nom du Biome | Traduction |
|--------------|------------|
| snowy_coniferous_forest | Forêt de conifères enneigée |
| snowy_maple_woods | Bois d'érables enneigés |
| snowy_orchard | Verger enneigé |
| snowy_fir_clearing | Clairière de sapins enneigée |
| alpine_foothills | Contreforts alpins |
| alpine | Alpin |
| snowy_tundra | Toundra enneigée |
| snowy_plains | Plaines enneigées |
| glacier | Glacier |
| ice_spikes | Pics de glace |
| icy_beach | Place verglacée |
---
### 🔥 hot_biomes (Biomes Chauds)
**Minerais** : Pure Golden Ore, Deepslate Pure Golden Ore, Copper High Ore, Copper Lower Ore, Redstone Ore, Deepslate Redstone Ore
**Biomes Vanilla (20)** :
| Nom du Biome | Traduction |
|--------------|------------|
| desert | Désert |
| badlands | Badlands |
| eroded_badlands | Badlands érodés |
| wooded_badlands | Badlands boisés |
| deep_lukewarm_ocean | Océan profond tiède |
| lukewarm_ocean | Océan tiède |
| warm_ocean | Océan chaud |
| mangrove_swamp | Marais de mangroves |
| bamboo_jungle | Jungle de bambous |
| jungle | Jungle |
| sparse_jungle | Jungle clairsemée |
| savanna | Savane |
| savanna_plateau | Plateau de savane |
| windswept_savanna | Savane balayée par le vent |
| basalt_deltas | Deltas de basalte |
| crimson_forest | Forêt écarlate |
| nether_wastes | Déserts du Nether |
| soul_sand_valley | Vallée de sable des âmes |
| warped_forest | Forêt distordue |
| deep_dark | Deep Dark |
**Biomes BOP (15)** :
| Nom du Biome | Traduction |
|--------------|------------|
| tropical_rainforest | Forêt tropicale |
| tropics | Tropiques |
| bayou | Bayou |
| arid_highlands | Hautes terres arides |
| scrubland | Broussailles |
| volcano | Volcan |
| wasteland | Terres désolées |
| wasteland_steppe | Steppe désolée |
| oasis | Oasis |
| outback | Outback |
| rocky_rainforest | Forêt tropicale rocheuse |
| rocky_shrubland | Broussailles rocheuses |
| seasonal_forest | Forêt saisonnière |
| temperate_rainforest | Forêt tempérée humide |
---
### ⛰️ mountain_biomes (Biomes Montagneux)
**Minerais** : High Emerald Ore
**Biomes Vanilla (22)** :
| Nom du Biome | Traduction |
|--------------|------------|
| windswept_hills | Collines balayées par le vent |
| windswept_gravelly_hills | Collines graveleuses balayées |
| snowy_slopes | Pentes enneigées |
| frozen_peaks | Pics gelés |
| jagged_peaks | Pics déchiquetés |
| stony_peaks | Pics pierreux |
| meadow | Prairie |
| extreme_hills | Collines extrêmes |
| extreme_hills_edge | Bord des collines extrêmes |
| extreme_hills_plus | Collines extrêmes plus |
| extreme_hills_plus_trees | Collines extrêmes arborees |
| modified_wooded_badlands_plateau | Plateau badlands boisé modifié |
| modified_badlands_plateau | Plateau badlands modifié |
| badlands_plateau | Plateau badlands |
| wooded_badlands_plateau | Plateau badlands boisé |
| eroded_badlands | Badlands érodés |
| modified_gravelly_mountains | Montagnes graveleuses modifiées |
| gravelly_mountains | Montagnes graveleuses |
| modified_gravelly_mountains_plus | Montagnes graveleuses plus modifiées |
| gravelly_mountains_plus | Montagnes graveleuses plus |
| sunflower_plains | Plaines de tournesols |
**Biomes BOP (10)** :
| Nom du Biome | Traduction |
|--------------|------------|
| highland | Hautes terres |
| highland_moor | Landes de haute altitude |
| alpine_foothills | Contreforts alpins |
| alpine | Alpin |
| mountain | Montagne |
| mountain_foothills | Contreforts montagneux |
| overgrown_cliffs | Falaises envahies |
| cliffs | Falaises |
| rocky_mountains | Montagnes rocheuses |
| rocky_peak | Pic rocheux |
---
### ✨ rare_biomes (Biomes Rares)
**Minerais** : Lower Emerald Ore
**Biomes Vanilla (10)** :
| Nom du Biome | Traduction |
|--------------|------------|
| mushroom_fields | Champignonnières |
| sparse_jungle | Jungle clairsemée |
| savanna_plateau | Plateau de savane |
| sunflower_plains | Plaines de tournesols |
| windswept_gravelly_hills | Collines graveleuses balayées |
| cherry_grove | Bosquet de cerisiers |
| flower_forest | Forêt fleurie |
| deep_dark | Deep Dark |
| old_growth_birch_forest | Forêt de bouleaux ancienne |
| ice_spikes | Pics de glace |
**Biomes BOP (10)** :
| Nom du Biome | Traduction |
|--------------|------------|
| rainbow_hills | Collines arc-en-ciel |
| origin_valley | Vallée d'origine |
| tropics | Tropiques |
| volcano | Volcan |
| mystic_grove | Bosquet mystique |
| bamboo_grove | Bosquet de bambous |
| jade_cliffs | Falaises de jade |
| visceral_heap | Tas viscéral |
| crystalline_chasm | Abîme cristallin |
| withered_abyss | Abîme flétri |
---
### 🌳 tempered_biomes (Biomes Tempérés)
**Minerais** : Iron Ore, Deepslate Iron Ore, Concentrated Coal Ore
**Biomes Vanilla (23)** :
| Nom du Biome | Traduction |
|--------------|------------|
| plains | Plaines |
| sunflower_plains | Plaines de tournesols |
| river | Rivière |
| beach | Plage |
| stony_shore | Rivage pierreux |
| birch_forest | Forêt de bouleaux |
| dark_forest | Forêt sombre |
| flower_forest | Forêt fleurie |
| forest | Forêt |
| old_growth_birch_forest | Forêt de bouleaux ancienne |
| windswept_forest | Forêt balayée par le vent |
| swamp | Marais |
| mushroom_fields | Champignonnières |
| cherry_grove | Bosquet de cerisiers |
| old_growth_pine_taiga | Taïga ancienne de pins |
| windswept_gravelly_hills | Collines graveleuses balayées |
| deep_ocean | Océan profond |
| ocean | Océan |
| lush_caves | Grottes luxuriantes |
| deep_dark | Deep Dark |
| dripstone_caves | Grottes de spéléothèmes |
**Biomes BOP (23)** :
| Nom du Biome | Traduction |
|--------------|------------|
| maple_woods | Bois d'érables |
| maple_forest | Forêt d'érables |
| orchard | Verger |
| flower_meadow | Prairie fleurie |
| deciduous_forest | Forêt de feuillus |
| deciduous_forest_cleared | Forêt de feuillus défrichée |
| shrubland | Broussailles |
| lush_grassland | Pâturage luxuriant |
| lush_swamp | Marais luxuriant |
| marsh | Marais |
| moor | Landes |
| bog | Tourbière |
| dead_forest | Forêt morte |
| dead_swamp | Marais mort |
| mediterranean_forest | Forêt méditerranéenne |
| mediterranean_woodland | Bois méditerranéen |
| dense_forest | Forêt dense |
| woodland | Bois |
| coniferous_forest | Forêt de conifères |
| fir_clearing | Clairière de sapins |
| spruce_woods | Bois d'épicéas |
| field | Champ |
| prairie | Prairie |
---
## Support Biomes O' Plenty
Le mod inclut un support complet pour **Biomes O' Plenty** avec des biome modifiers dédiés pour chaque catégorie :
- `cold_bop_biomes` (11 biomes)
- `hot_bop_biomes` (15 biomes)
- `mountain_bop_biomes` (10 biomes)
- `rare_bop_biomes` (10 biomes)
- `tempered_bop_biomes` (23 biomes)
Les minerais se génèrent automatiquement dans les biomes BOP correspondants à leur catégorie vanilla.
## Mécaniques de Jeu
### Génération du Monde
- **Distribution des minerais** : Utilise le système de biome modifiers de Forge avec des tags de biomes personnalisés
- **Profondeur** : Configurable pour chaque type de minerai via le fichier de configuration
- **Taille des filons** : Configurable via le fichier de configuration
### Mécaniques de Drop
Le mod utilise un système de drops configurable (`ConfigurableOreDropsProcedure`) :
- **Expérience** : Tous les minerais personnalisés dropent 2 orbes d'expérience (configurable)
- **Silk Touch** : Supporté - les minerais peuvent être minés avec l'enchantement Silk Touch
- **Fortune** : Supporté pour Shard Diamond Ore et Concentrated Diamond Ore (configurable)
### Caractéristiques des Blocs
- **Light Block** : 15 (les minerais bloquent la lumière)
- **Sound Type** : STONE
- **Resistance** : Variable selon le type (3f pour Concentrated Diamond/Coal, 1.3f pour Shard Diamond)
- **Requires Correct Tool** : Tous les minerais nécessitent l'outil approprié pour être minés
## Recettes de Craft
### Ore Biome Finder
```
[DiamantShard] [Compas] [DiamantShard]
[Compas] [ ] [Compas]
[DiamantShard] [Compas] [DiamantShard]
= 1 Ore Biome Finder
```
### Diamant à partir d'Éclats
```
[Éclat] [Éclat] [Éclat]
[Éclat] [Éclat] [Éclat]
[Éclat] [Éclat] [Éclat]
= 1 Diamant
```
### Outils en Diamond Shard
Les recettes suivent le pattern standard des outils Minecraft :
- **Pioche** : 2 Diamond Shards + 3 bâtons
- **Pelle** : 1 Diamond Shard + 2 bâtons
- **Hache** : 3 Diamond Shards + 2 bâtons
### Paxel en Diamond Shard
```
[Hache] [Pelle] [Pioche]
[Bâton] [ ] [Bâton]
= 1 Paxel en Diamond Shard
```
### Armure en Diamond Shard
Les recettes suivent le pattern standard des armures Minecraft :
- **Casque** : 5 Diamond Shards
- **Plastron** : 8 Diamond Shards + 1 Diamant
- **Jambières** : 7 Diamond Shards + 1 Diamant
- **Bottes** : 4 Diamond Shards
## Commandes
### `/ores` ou `/ore`
Une commande permettant d'identifier les minerais présents dans le biome actuel.
**Utilisation** :
- Jouez uniquement (doit être exécutée par un joueur)
- Affiche les mêmes informations que l'Ore Biome Finder
**Informations affichées** :
- Nom du biome et ID (ex: `minecraft:plains`)
- Tags du mod applicables au biome (cold_biomes, hot_biomes, mountain_biomes, tempered_biomes, rare_biomes)
- Liste des minerais trouvables dans le biome actuel
**Exemple de sortie** :
```
=== Minerais dans: plains ===
Biome ID: minecraft:plains
Tags du mod: tempered_biomes
Minerais trouvables:
* Charbon Concentre
* Fer (stone)
* Fer (deepslate)
* Diamant Shard (deepslate)
* Bloc Diamant Shard
```
## Intégration
### Mode Créatif
Les items sont organisés dans les onglets créatifs via `CustomOreGenModTabs` :
- **INGREDIENTS** : Diamond Shards et blocs de minerais
- **TOOLS_AND_UTILITIES** : Pioche, pelle, hache, paxel et Ore Biome Finder
- **COMBAT** : Armure complète en Diamond Shard (casque, plastron, jambières, bottes)
### Langue
Le mod inclut des fichiers de localisation en anglais (`en_us.json`) avec des noms descriptifs pour tous les blocs et objets.
## Configuration
Le mod inclut un système de configuration complet (`ModConfigs.java` avec `ConfigHelper.java`) qui permet aux utilisateurs et aux pack makers de personnaliser de nombreux aspects.
### Emplacement du Fichier de Configuration
Après le premier lancement du mod, un fichier de configuration est généré à :
```
config/custom_ore_gen-common.toml
```
### Options de Configuration
#### Génération des Minerais [ore_generation]
- **shard_diamond_ore** : Hauteur min/max, filons par chunk, taille des filons
- **concentrated_diamond_ore** : Filons par chunk, taille des filons
- **pure_golden_ore** : Filons par chunk, hauteur min/max
- **concentrated_coal_ore** : Filons par chunk
- **impure_ores** : Filons de fer/or par chunk
- **emerald_ores** : Filons high/lower par chunk
- **copper_ores** : Filons high/lower par chunk
#### Stats des Outils [tool_stats]
- **shard_diamond_tools** : Durabilité, vitesse, dégâts pour pioche, hache et pelle
#### Drops des Minerais [drops]
- **shard_diamond_ore** : Min/max drops, activation Fortune
- **concentrated_diamond_ore** : Min/max drops, activation Fortune
- **concentrated_coal_ore** : Min/max drops
- **pure_golden_ore** : Min/max drops
- **ash_coal_ore** : Min/max drops
- **impure_ores** : Min/max drops pour fer et or
- **oreExperience** : Expérience droppée par les minerais personnalisés
#### Activation des Fonctionnalités [features]
- **enableShardDiamondTools** : Active les outils en éclats de diamant
- **enableShardDiamondOre** : Active la génération du minerai d'éclats
- **enableConcentratedOres** : Active les minerais concentrés (Diamant, Charbon)
- **enableImpureOres** : Active les minerais impurs (Fer, Or)
- **enableAshCoalOre** : Active le minerai de charbon de cendre
- **enablePureGoldenOre** : Active le minerai d'or pur
- **enableCustomEmeraldOres** : Active les minerais d'émeraude personnalisés
- **enableCustomCopperOres** : Active les minerais de cuivre personnalisés
- **enableVanillaOreVariants** : Active les variantes de minerais vanilla
## Installation
1. Assurez-vous d'avoir Minecraft 1.20.1 installé avec Forge 47.3.0+
2. Placez le fichier .jar du mod dans le dossier `mods` de votre installation Minecraft
3. Lancez le jeu avec le profil Forge
> **Important** : Ce mod est conçu pour être utilisé avec KubeJS et ne doit pas être utilisé seul.
## Architecture du Code
### Structure des Paquets
```
net.mcreator.customoregen/
├── CustomOreGenMod.java # Classe principale du mod
├── OresCommand.java # Commande /ores pour détecter les minerais
├── block/ # Classes des blocs (16 minerais)
│ ├── SharddiamondblockoreBlock.java
│ ├── ConcentrateddiamondoreBlock.java
│ ├── ConcentratedcoaloreBlock.java
│ ├── PuregoldenoreBlock.java
│ ├── DeepslatepuregoldenoreBlock.java
│ ├── IronoreBlock.java
│ ├── DeepslateironoreBlock.java
│ ├── LapisoreBlock.java
│ ├── DeepslatelapisoreBlock.java
│ ├── RedstoneoreBlock.java
│ ├── DeepslateredstoneoreBlock.java
│ ├── CopperhighoreBlock.java
│ ├── CopperloweroreBlock.java
│ ├── HighemeraldoreBlock.java
│ ├── LoweremeraldoreBlock.java
│ └── DeepslatesharddiamondoreBlock.java
├── config/ # Système de configuration
│ ├── ModConfigs.java # Configuration Forge
│ └── ConfigHelper.java # Helper pour la configuration
├── item/ # Classes des items
│ ├── DiamondshardItem.java # Item Diamond Shard (RARE)
│ ├── OreBiomeFinderItem.java # Item Ore Biome Finder
│ ├── SharddiamondpickaxeItem.java
│ ├── SharddiamondshovelItem.java
│ ├── SharddiamondaxeItem.java
│ ├── SharddiamondpaxelItem.java # Paxel (outil combiné)
│ ├── SharddiamondhelmetItem.java # Casque en Diamond Shard
│ ├── SharddiamondchestplateItem.java # Plastron en Diamond Shard
│ ├── SharddiamondleggingsItem.java # Jambières en Diamond Shard
│ └── SharddiamondbootsItem.java # Bottes en Diamond Shard
├── procedures/ # Procédures et logique
│ ├── ConfigurableOreDropsProcedure.java # Drops configurables
│ └── OreexperienceProcedure.java # Drops d'XP
└── init/ # Registres Forge
├── CustomOreGenModBlocks.java # 16 blocs
├── CustomOreGenModItems.java # Items + BlockItems
└── CustomOreGenModTabs.java # Onglets créatifs
```
### Classes Principales
- **CustomOreGenMod** : Point d'entrée du mod, gère l'initialisation et le réseau
- **OresCommand** : Commande `/ores` pour identifier les minerais du biome actuel
- **OreBiomeFinderItem** : Item utilisable pour détecter les minerais du biome (clic droit)
- **SharddiamondpaxelItem** : Paxel combinant pioche + pelle + hache en un seul outil
- **Sharddiamondhelmet/chestplate/leggings/bootsItem** : Armure en Diamond Shard
- **ModConfigs** : Configuration complète avec 4 sections (ore_generation, tool_stats, drops, features)
- **ConfigurableOreDropsProcedure** : Gère les drops des minerais avec support Fortune/Silk Touch
- **OreexperienceProcedure** : Gère les drops d'expérience lors du minage
## Philosophie du Mod
Custom Ore Gem est conçu pour :
- **Modifier la distribution des ressources** Minecraft avec de nouvelles variantes de minerais
- **Fournir un système de drops configurable** pour les pack makers et moddeurs
- **Introduire une progression intermédiaire** à travers les Diamond Shards (outils et armure)
- **Offrir des outils d'exploration** avec l'Ore Biome Finder et la commande `/ores`
- **Proposer un outil tout-en-un** avec le Paxel en Diamond Shard (1000 durabilité)
- **Fournir une armure intermédiaire** entre fer et diamant (17 protection, 1060 durabilité)
- **S'intégrer avec KubeJS** pour permettre des modifications avancées
- **Supporter Biomes O' Plenty** avec 69 biomes supplémentaires classés par température
## Crédits
- **Auteur** : Aulyrius
- **Outil de développement** : MCreator (https://mcreator.net/about)
- **Site web** : https://lanro.eu
- **Framework** : Minecraft Forge 1.20.1 (version 47.3.0)
---
**Version** : 1.0.0
**Pour Minecraft** : 1.20.1
**Mod ID** : custom_ore_gen
**License** : Not specified
+79
View File
@@ -0,0 +1,79 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is a personal portfolio website for Roman Felden, a French IT security and systems coordinator based in Grenoble. The site is a static website built with plain HTML and inline CSS - no build tools, frameworks, or external dependencies (other than Google Fonts and inline SVG icons).
## Site Structure
The website consists of 4 pages:
- **index.html** - Landing page with hero section, about info, key skills, and project previews
- **cv.html** - Full resume/CV page with professional experience, education, skills, languages, and interests
- **cv-roman-felden.html** - Alternate standalone CV version with a different visual style (gradient background, no navbar)
- **projets.html** - Detailed project pages (Homelab Proxmox, Boidelo Android app, Custom Ore Gen Minecraft mod, GeoRealmCraft modpack)
All pages are self-contained with embedded CSS in `<style>` tags.
## Design System
The site uses a consistent design system with CSS custom properties defined in `:root`:
- **Primary color**: `#4f46e5` (indigo)
- **Secondary color**: `#0ea5e9` (sky blue)
- **Accent color**: `#f59e0b` (amber)
- **Typography**: Plus Jakarta Sans (Google Fonts), falling back to system fonts
- **Border radius**: Variable (6px/12px/20px/28px depending on element)
- **Shadows**: 4 levels (sm/md/lg/xl)
Key visual patterns:
- Gradient backgrounds for hero sections
- Card-based layouts with hover lift effects
- Inline SVG icons (Heroicons style)
- Consistent navbar with brand logo "RF"
- Responsive design with mobile breakpoints at 768px
## Common Editing Tasks
When modifying this site:
1. **Update content** - All content is directly in HTML. Text is in French throughout.
2. **Add new projects** - Copy an existing `.project-section` block in projets.html and add a corresponding preview card in index.html
3. **Update CV** - Edit experience items in cv.html. Each job has an `.experience-item` with header, company, location, date badge, and description list.
4. **Modify colors** - Change CSS custom properties in `:root` of any page
5. **Add pages** - Follow the existing structure: navbar, main container, footer
## Navigation Structure
The navbar is consistent across main pages (index, cv, projets) with:
- Brand link to index.html
- Three menu items: Accueil, CV, Projets
- Active state highlighting for current page
## Language & Content
- **Primary language**: French (fr)
- **Target audience**: Recruiters and professional contacts in France
- **Tone**: Professional, showcasing technical skills and projects
## File Organization
```
lanro.eu/
├── index.html # Homepage
├── cv.html # Main CV with navbar
├── cv-roman-felden.html # Standalone CV (no navbar, different style)
├── projets.html # Projects detail page
└── CLAUDE.md # This file
```
## Important Notes
- All CSS is inline in `<style>` tags - no external stylesheets
- No JavaScript required (site is fully static)
- Icons are inline SVGs from Heroicons
- Font loaded from Google Fonts (Plus Jakarta Sans)
- Site is designed to work without a server - can be opened directly in browser
- cv-roman-felden.html is a standalone version meant to be shared/downloaded separately
@@ -1107,18 +1107,6 @@
</div> </div>
</div> </div>
<div class="skill-category">
<div class="skill-category-header">
<div class="skill-icon">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z"/>
</svg>
</div>
<h4 class="skill-category-title">Recherche</h4>
</div>
<div class="skill-tags">
<span class="skill-tag">Jailbreak Captcha LLM</span>
</div>
</div> </div>
</div> </div>
</section> </section>
-12
View File
@@ -1071,18 +1071,6 @@
</div> </div>
</div> </div>
<div class="skill-category">
<div class="skill-category-header">
<div class="skill-icon">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z"/>
</svg>
</div>
<h4 class="skill-category-title">Recherche</h4>
</div>
<div class="skill-tags">
<span class="skill-tag">Jailbreak Captcha LLM</span>
</div>
</div> </div>
</div> </div>
</section> </section>
+2 -2
View File
@@ -516,7 +516,7 @@
</svg> </svg>
</div> </div>
<h3>Boidelo</h3> <h3>Boidelo</h3>
<p>Application Android de jeu d'alcool multijoueur avec 150 questions, interface Material Design 3 et paramètres personnalisables.</p> <p>Application Android de jeu de société multijoueur avec 150 questions, interface Material Design 3 et paramètres personnalisables.</p>
<a href="projets.html#boidelo" class="card-link"> <a href="projets.html#boidelo" class="card-link">
En savoir plus En savoir plus
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor">
@@ -546,7 +546,7 @@
</svg> </svg>
</div> </div>
<h3>GeoRealmCraft</h3> <h3>GeoRealmCraft</h3>
<p>Modpack Minecraft avec 345 mods, génération de monde réaliste, colonies, machineries Create et véhicules.</p> <p>Serveur Minecraft public avec infrastructure scalable, gestion de communauté et maintenance de modpack technique.</p>
<a href="projets.html#georealmcraft" class="card-link"> <a href="projets.html#georealmcraft" class="card-link">
En savoir plus En savoir plus
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor">
+27 -57
View File
@@ -454,7 +454,7 @@
</div> </div>
<div class="project-title"> <div class="project-title">
<h2>Boidelo</h2> <h2>Boidelo</h2>
<p class="project-subtitle">Application Android de jeu d'alcool</p> <p class="project-subtitle">Application Android de jeu de société</p>
</div> </div>
</div> </div>
<div class="project-badges"> <div class="project-badges">
@@ -464,7 +464,7 @@
<span class="badge">Jeu</span> <span class="badge">Jeu</span>
</div> </div>
<div class="project-description"> <div class="project-description">
<p>Boidelo est une application Android de jeu d'alcool similaire à "King's Cup" ou "Never Have I Ever". L'application permet à un groupe de joueurs de répondre à des questions aléatoires avec des consommations de boissons associées. Elle inclut 150 questions préchargées, une interface Material Design 3, et des paramètres personnalisables.</p> <p>Boidelo est une application Android de jeu de société multijoueur similaire à "King's Cup" ou "Never Have I Ever". L'application permet à un groupe de joueurs de répondre à des questions aléatoires et de relever des défis. Elle inclut 150 questions préchargées, une interface Material Design 3, et des paramètres personnalisables.</p>
</div> </div>
<div class="project-features"> <div class="project-features">
<div class="feature-item"> <div class="feature-item">
@@ -616,6 +616,12 @@
<span class="tech-item">MCreator</span> <span class="tech-item">MCreator</span>
<span class="tech-item">Java 17</span> <span class="tech-item">Java 17</span>
<span class="tech-item">KubeJS</span> <span class="tech-item">KubeJS</span>
<a href="https://www.curseforge.com/minecraft/mc-mods/custom-ore-gen" target="_blank" rel="noopener" class="tech-item" style="text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); color: white; border-color: transparent;">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/>
</svg>
CurseForge
</a>
</div> </div>
</section> </section>
@@ -629,17 +635,17 @@
</div> </div>
<div class="project-title"> <div class="project-title">
<h2>GeoRealmCraft</h2> <h2>GeoRealmCraft</h2>
<p class="project-subtitle">Modpack Minecraft moddé</p> <p class="project-subtitle">Serveur Minecraft public & Infrastructure</p>
</div> </div>
</div> </div>
<div class="project-badges"> <div class="project-badges">
<span class="badge badge-primary">Minecraft</span> <span class="badge badge-primary">Infrastructure</span>
<span class="badge">Modpack</span> <span class="badge">Serveur Public</span>
<span class="badge">345 Mods</span> <span class="badge">Administration</span>
<span class="badge">Serveur</span> <span class="badge">Minecraft</span>
</div> </div>
<div class="project-description"> <div class="project-description">
<p>GeoRealmCraft est un modpack Minecraft révolutionnaire avec 345 mods qui transforme l'expérience de jeu. Le modpack offre une génération de monde épique avec une répartition réaliste des ressources, des graphismes retravaillés, et des fonctionnalités avancées comme les colonies, les machineries Create, et les véhicules.</p> <p>GeoRealmCraft est un serveur Minecraft public avec infrastructure complète. Projet technique d'administration système et de gestion de communauté, incluant maintenance de serveur, modpack technique, gestion des utilisateurs et monitoring. Expérience concrète en gestion d'infrastructure et de communauté en ligne.</p>
</div> </div>
<div class="project-features"> <div class="project-features">
<div class="feature-item"> <div class="feature-item">
@@ -647,8 +653,8 @@
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
</svg> </svg>
<div class="feature-content"> <div class="feature-content">
<h4>Génération de monde épique</h4> <h4>Administration serveur</h4>
<p>Immensité des biomes, verticalité des massifs, répartition réaliste des ressources</p> <p>Gestion complète de serveur, configuration, maintenance et mise à jour</p>
</div> </div>
</div> </div>
<div class="feature-item"> <div class="feature-item">
@@ -656,8 +662,8 @@
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
</svg> </svg>
<div class="feature-content"> <div class="feature-content">
<h4>345 mods</h4> <h4>Gestion de communauté</h4>
<p>Graphisme, audio, animation retravaillés avec des mods d'ambiance</p> <p>Moderation, support utilisateur, gestion des conflits et animation</p>
</div> </div>
</div> </div>
<div class="feature-item"> <div class="feature-item">
@@ -665,8 +671,8 @@
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
</svg> </svg>
<div class="feature-content"> <div class="feature-content">
<h4>Système de colonies</h4> <h4>Infrastructure scalable</h4>
<p>Colonies évolutives avec Minecolonies pour gérer des NPC</p> <p>Configuration technique optimisée, performance et gestion de la charge</p>
</div> </div>
</div> </div>
<div class="feature-item"> <div class="feature-item">
@@ -674,53 +680,17 @@
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
</svg> </svg>
<div class="feature-content"> <div class="feature-content">
<h4>Machineries Create 6.0</h4> <h4>Maintenance & monitoring</h4>
<p>Système d'automation avancé avec Create pour créer des usines complexes</p> <p>Sauvegardes automatisées, surveillance des performances et résolution d'incidents</p>
</div>
</div>
<div class="feature-item">
<svg class="feature-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
</svg>
<div class="feature-content">
<h4>Véhicules</h4>
<p>Trains, avions, voitures, bateaux pour explorer le monde</p>
</div>
</div>
<div class="feature-item">
<svg class="feature-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
</svg>
<div class="feature-content">
<h4>Nourriture stratégique</h4>
<p>Système de nutrition nécessitant une alimentation variée et équilibrée</p>
</div>
</div>
<div class="feature-item">
<svg class="feature-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
</svg>
<div class="feature-content">
<h4>Combat tactique</h4>
<p>Refonte complète du système de combat avec styles d'attaques</p>
</div>
</div>
<div class="feature-item">
<svg class="feature-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
</svg>
<div class="feature-content">
<h4>Économie dynamique</h4>
<p>Marché basé sur les joueurs avec monnaie non duplicable</p>
</div> </div>
</div> </div>
</div> </div>
<div class="tech-stack"> <div class="tech-stack">
<span class="tech-item">Minecraft</span> <span class="tech-item">Administration Système</span>
<span class="tech-item">Forge</span> <span class="tech-item">Gestion de Communauté</span>
<span class="tech-item">Create</span> <span class="tech-item">Monitoring</span>
<span class="tech-item">Minecolonies</span> <span class="tech-item">Maintenance</span>
<span class="tech-item">Biomes O' Plenty</span> <span class="tech-item">Backup</span>
</div> </div>
</section> </section>
</div> </div>
+8
View File
@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
+59
View File
@@ -0,0 +1,59 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<HTMLCodeStyleSettings>
<option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
</HTMLCodeStyleSettings>
<JSCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
</JSCodeStyleSettings>
<TypeScriptCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
</TypeScriptCodeStyleSettings>
<VueCodeStyleSettings>
<option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
<option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
</VueCodeStyleSettings>
<codeStyleSettings language="HTML">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="Vue">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>
+5
View File
@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/georealmscraftweb.iml" filepath="$PROJECT_DIR$/.idea/georealmscraftweb.iml" />
</modules>
</component>
</project>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PrettierConfiguration">
<option name="myConfigurationMode" value="AUTOMATIC" />
</component>
</project>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
File diff suppressed because one or more lines are too long
@@ -0,0 +1,21 @@
/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,::after,::before{box-sizing:border-box}html{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}
/*
FILE ARCHIVED ON 16:47:06 May 20, 2024 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 15:15:39 Mar 27, 2025.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
*/
/*
playback timings (ms):
captures_list: 0.508
exclusion.robots: 0.024
exclusion.robots.policy: 0.011
esindex: 0.012
cdx.remote: 24.784
LoadShardBlock: 203.681 (3)
PetaboxLoader3.datanode: 211.028 (5)
load_resource: 901.208 (2)
PetaboxLoader3.resolve: 790.541 (2)
*/
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 411 KiB

File diff suppressed because one or more lines are too long
+508
View File
@@ -0,0 +1,508 @@
:root {
--wm-toolbar-height: 65px;
}
#wm-ipp-base {
height:65px;/* initial height just in case js code fails */
padding:0;
margin:0;
border:none;
background:none transparent;
}
#wm-ipp {
z-index: 2147483647;
}
#wm-ipp, #wm-ipp * {
font-family:Lucida Grande, Helvetica, Arial, sans-serif;
font-size:12px;
line-height:1.2;
letter-spacing:0;
width:auto;
height:auto;
max-width:none;
max-height:none;
min-width:0 !important;
min-height:0;
outline:none;
float:none;
text-align:left;
border:none;
color: #000;
text-indent: 0;
position: initial;
background: none;
}
#wm-ipp div, #wm-ipp canvas {
display: block;
}
#wm-ipp div, #wm-ipp tr, #wm-ipp td, #wm-ipp a, #wm-ipp form {
padding:0;
margin:0;
border:none;
border-radius:0;
background-color:transparent;
background-image:none;
/*z-index:2147483640;*/
height:auto;
}
#wm-ipp table {
border:none;
border-collapse:collapse;
margin:0;
padding:0;
width:auto;
font-size:inherit;
}
#wm-ipp form input {
padding:1px !important;
height:auto;
display:inline;
margin:0;
color: #000;
background: none #fff;
border: 1px solid #666;
}
#wm-ipp form input[type=submit] {
padding:0 8px !important;
margin:1px 0 1px 5px !important;
width:auto !important;
border: 1px solid #000 !important;
background: #fff !important;
color: #000 !important;
}
#wm-ipp form input[type=submit]:hover {
background: #eee !important;
cursor: pointer !important;
}
#wm-ipp form input[type=submit]:active {
transform: translateY(1px);
}
#wm-ipp a {
display: inline;
}
#wm-ipp a:hover{
text-decoration:underline;
}
#wm-ipp a.wm-btn:hover {
text-decoration:none;
color:#ff0 !important;
}
#wm-ipp a.wm-btn:hover span {
color:#ff0 !important;
}
#wm-ipp #wm-ipp-inside {
margin: 0 6px;
border:5px solid #000;
border-top:none;
background-color:rgba(255,255,255,0.9);
-moz-box-shadow:1px 1px 4px #333;
-webkit-box-shadow:1px 1px 4px #333;
box-shadow:1px 1px 4px #333;
border-radius:0 0 8px 8px;
}
/* selectors are intentionally verbose to ensure priority */
#wm-ipp #wm-logo {
padding:0 10px;
vertical-align:middle;
min-width:100px;
flex: 0 0 100px;
}
#wm-ipp .c {
padding-left: 4px;
}
#wm-ipp .c .u {
margin-top: 4px !important;
}
#wm-ipp .n {
padding:0 0 0 5px !important;
vertical-align: bottom;
}
#wm-ipp .n a {
text-decoration:none;
color:#33f;
font-weight:bold;
}
#wm-ipp .n .b {
padding:0 6px 0 0 !important;
text-align:right !important;
overflow:visible;
white-space:nowrap;
color:#99a;
vertical-align:middle;
}
#wm-ipp .n .y .b {
padding:0 6px 2px 0 !important;
}
#wm-ipp .n .c {
background:#000;
color:#ff0;
font-weight:bold;
padding:0 !important;
text-align:center;
}
#wm-ipp.hi .n td.c {
color:#ec008c;
}
#wm-ipp .n td.f {
padding:0 0 0 6px !important;
text-align:left !important;
overflow:visible;
white-space:nowrap;
color:#99a;
vertical-align:middle;
}
#wm-ipp .n tr.m td {
text-transform:uppercase;
white-space:nowrap;
padding:2px 0;
}
#wm-ipp .c .s {
padding:0 5px 0 0 !important;
vertical-align:bottom;
}
#wm-ipp #wm-nav-captures {
white-space: nowrap;
}
#wm-ipp .c .s a.t {
color:#33f;
font-weight:bold;
line-height: 1.8;
}
#wm-ipp .c .s div.r {
color: #666;
font-size:9px;
white-space:nowrap;
}
#wm-ipp .c .k {
padding-bottom:1px;
}
#wm-ipp .c .s {
padding:0 5px 2px 0 !important;
}
#wm-ipp td#displayMonthEl {
padding: 2px 0 !important;
}
#wm-ipp td#displayYearEl {
padding: 0 0 2px 0 !important;
}
div#wm-ipp-sparkline {
position:relative;/* for positioning markers */
white-space:nowrap;
background-color:#fff;
cursor:pointer;
line-height:0.9;
}
#sparklineImgId, #wm-sparkline-canvas {
position:relative;
z-index:9012;
max-width:none;
}
#wm-ipp-sparkline div.yt {
position:absolute;
z-index:9010 !important;
background-color:#ff0 !important;
top: 0;
}
#wm-ipp-sparkline div.mt {
position:absolute;
z-index:9013 !important;
background-color:#ec008c !important;
top: 0;
}
#wm-ipp .r {
margin-left: 4px;
}
#wm-ipp .r a {
color:#33f;
border:none;
position:relative;
background-color:transparent;
background-repeat:no-repeat !important;
background-position:100% 100% !important;
text-decoration: none;
}
#wm-ipp #wm-capinfo {
/* prevents notice div background from sticking into round corners of
#wm-ipp-inside */
border-radius: 0 0 4px 4px;
}
#wm-ipp #wm-capinfo .c-logo {
display:block;
float:left;
margin-right:3px;
width:90px;
min-height:90px;
max-height: 290px;
border-radius:45px;
overflow:hidden;
background-position:50%;
background-size:auto 90px;
box-shadow: 0 0 2px 2px rgba(208,208,208,128) inset;
}
#wm-ipp #wm-capinfo .c-logo span {
display:inline-block;
}
#wm-ipp #wm-capinfo .c-logo img {
height:90px;
position:relative;
left:-50%;
}
#wm-ipp #wm-capinfo .wm-title {
font-size:130%;
}
#wm-ipp #wm-capinfo a.wm-selector {
display:inline-block;
color: #aaa;
text-decoration:none !important;
padding: 2px 8px;
}
#wm-ipp #wm-capinfo a.wm-selector.selected {
background-color:#666;
}
#wm-ipp #wm-capinfo a.wm-selector:hover {
color: #fff;
}
#wm-ipp #wm-capinfo.notice-only #wm-capinfo-collected-by,
#wm-ipp #wm-capinfo.notice-only #wm-capinfo-timestamps {
display: none;
}
#wm-ipp #wm-capinfo #wm-capinfo-notice .wm-capinfo-content {
background-color:#ff0;
padding:5px;
font-size:14px;
text-align:center;
}
#wm-ipp #wm-capinfo #wm-capinfo-notice .wm-capinfo-content * {
font-size:14px;
text-align:center;
}
#wm-ipp #wm-expand {
right: 1px;
bottom: -1px;
color: #ffffff;
background-color: #666 !important;
padding:0 5px 0 3px !important;
border-radius: 3px 3px 0 0 !important;
}
#wm-ipp #wm-expand span {
color: #ffffff;
}
#wm-ipp #wm-expand #wm-expand-icon {
display: inline-block;
transition: transform 0.5s;
transform-origin: 50% 45%;
}
#wm-ipp #wm-expand.wm-open #wm-expand-icon {
transform: rotate(180deg);
}
#wm-ipp #wmtb {
text-align:right;
}
#wm-ipp #wmtb #wmtbURL {
width: calc(100% - 45px);
}
#wm-ipp #wm-graph-anchor {
border-right:1px solid #ccc;
}
/* time coherence */
html.wb-highlight {
box-shadow: inset 0 0 0 3px #a50e3a !important;
}
.wb-highlight {
outline: 3px solid #a50e3a !important;
}
#wm-ipp-print {
display:none !important;
}
@media print {
#wm-ipp-base {
display:none !important;
}
#wm-ipp-print {
display:block !important;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
@media (max-width:414px) {
#wm-ipp .xxs {
display:none !important;
}
}
@media (min-width:1055px) {
#wm-ipp #wm-graph-anchor {
display:block !important;
}
}
@media (max-width:1054px) {
#wm-ipp #wm-graph-anchor {
display:none !important;
}
}
@media (max-width:1163px) {
#wm-logo {
display:none !important;
}
}
#wm-btns {
white-space: nowrap;
margin-top: -2px;
}
#wm-btns #wm-save-snapshot-open {
margin-right: 7px;
top: -6px;
}
#wm-btns #wm-sign-in {
box-sizing: content-box;
display: none;
margin-right: 7px;
top: -8px;
/*
round border around sign in button
*/
border: 2px #000 solid;
border-radius: 14px;
padding-right: 2px;
padding-bottom: 2px;
width: 11px;
height: 11px;
}
#wm-btns #wm-sign-in>.iconochive-person {
font-size: 12.5px;
}
#wm-save-snapshot-open > .iconochive-web {
color:#000;
font-size:160%;
}
#wm-ipp #wm-share {
display: flex;
align-items: flex-end;
justify-content: space-between;
}
#wm-share > #wm-screenshot {
display: inline-block;
margin-right: 3px;
visibility: hidden;
}
#wm-screenshot > .iconochive-image {
color:#000;
font-size:160%;
}
#wm-share > #wm-video {
display: inline-block;
margin-right: 3px;
visibility: hidden;
}
#wm-video > .iconochive-movies {
color: #000;
display: inline-block;
font-size: 150%;
margin-bottom: 2px;
}
#wm-btns #wm-save-snapshot-in-progress {
display: none;
font-size:160%;
opacity: 0.5;
position: relative;
margin-right: 7px;
top: -5px;
}
#wm-btns #wm-save-snapshot-success {
display: none;
color: green;
position: relative;
top: -7px;
}
#wm-btns #wm-save-snapshot-fail {
display: none;
color: red;
position: relative;
top: -7px;
}
.wm-icon-screen-shot {
background: url("../../../external.html?link=https://web-static.archive.org/_static/images/web-screenshot.svg") no-repeat !important;
background-size: contain !important;
width: 22px !important;
height: 19px !important;
display: inline-block;
}
#donato {
/* transition effect is disable so as to simplify height adjustment */
/*transition: height 0.5s;*/
height: 0;
margin: 0;
padding: 0;
border-bottom: 1px solid #999 !important;
}
body.wm-modal {
height: auto !important;
overflow: hidden !important;
}
#donato #donato-base {
width: 100%;
height: 100%;
/*bottom: 0;*/
margin: 0;
padding: 0;
position: absolute;
z-index: 2147483639;
}
body.wm-modal #donato #donato-base {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 2147483640;
}
.wb-autocomplete-suggestions {
font-family: Lucida Grande, Helvetica, Arial, sans-serif;
font-size: 12px;
text-align: left;
cursor: default;
border: 1px solid #ccc;
border-top: 0;
background: #fff;
box-shadow: -1px 1px 3px rgba(0,0,0,.1);
position: absolute;
display: none;
z-index: 2147483647;
max-height: 254px;
overflow: hidden;
overflow-y: auto;
box-sizing: border-box;
}
.wb-autocomplete-suggestion {
position: relative;
padding: 0 .6em;
line-height: 23px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 1.02em;
color: #333;
}
.wb-autocomplete-suggestion b {
font-weight: bold;
}
.wb-autocomplete-suggestion.selected {
background: #f0f0f0;
}
+116
View File
@@ -0,0 +1,116 @@
@font-face{font-family:'Iconochive-Regular';src:url('../../../external.html?link=https://web-static.archive.org/_static/fonts/Iconochive-Regular.eot');src:url('../../../external.html?link=https://web-static.archive.org/_static/fonts/Iconochive-Regular.eot') format('embedded-opentype'),url('../../../external.html?link=https://web-static.archive.org/_static/fonts/Iconochive-Regular.woff') format('woff'),url('../../../external.html?link=https://web-static.archive.org/_static/fonts/Iconochive-Regular.ttf') format('truetype'),url('../../../external.html?link=https://web-static.archive.org/_static/fonts/Iconochive-Regular.svg#Iconochive-Regular') format('svg');font-weight:normal;font-style:normal}
[class^="iconochive-"],[class*=" iconochive-"]{font-family:'Iconochive-Regular'!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.iconochive-Uplevel:before{content:"\21b5"}
.iconochive-exit:before{content:"\1f6a3"}
.iconochive-beta:before{content:"\3b2"}
.iconochive-logo:before{content:"\1f3db"}
.iconochive-audio:before{content:"\1f568"}
.iconochive-movies:before{content:"\1f39e"}
.iconochive-software:before{content:"\1f4be"}
.iconochive-texts:before{content:"\1f56e"}
.iconochive-etree:before{content:"\1f3a4"}
.iconochive-image:before{content:"\1f5bc"}
.iconochive-web:before{content:"\1f5d4"}
.iconochive-collection:before{content:"\2211"}
.iconochive-folder:before{content:"\1f4c2"}
.iconochive-data:before{content:"\1f5c3"}
.iconochive-tv:before{content:"\1f4fa"}
.iconochive-article:before{content:"\1f5cf"}
.iconochive-question:before{content:"\2370"}
.iconochive-question-dark:before{content:"\3f"}
.iconochive-info:before{content:"\69"}
.iconochive-info-small:before{content:"\24d8"}
.iconochive-comment:before{content:"\1f5e9"}
.iconochive-comments:before{content:"\1f5ea"}
.iconochive-person:before{content:"\1f464"}
.iconochive-people:before{content:"\1f465"}
.iconochive-eye:before{content:"\1f441"}
.iconochive-rss:before{content:"\221e"}
.iconochive-time:before{content:"\1f551"}
.iconochive-quote:before{content:"\275d"}
.iconochive-disc:before{content:"\1f4bf"}
.iconochive-tv-commercial:before{content:"\1f4b0"}
.iconochive-search:before{content:"\1f50d"}
.iconochive-search-star:before{content:"\273d"}
.iconochive-tiles:before{content:"\229e"}
.iconochive-list:before{content:"\21f6"}
.iconochive-list-bulleted:before{content:"\2317"}
.iconochive-latest:before{content:"\2208"}
.iconochive-left:before{content:"\2c2"}
.iconochive-right:before{content:"\2c3"}
.iconochive-left-solid:before{content:"\25c2"}
.iconochive-right-solid:before{content:"\25b8"}
.iconochive-up-solid:before{content:"\25b4"}
.iconochive-down-solid:before{content:"\25be"}
.iconochive-dot:before{content:"\23e4"}
.iconochive-dots:before{content:"\25a6"}
.iconochive-columns:before{content:"\25af"}
.iconochive-sort:before{content:"\21d5"}
.iconochive-atoz:before{content:"\1f524"}
.iconochive-ztoa:before{content:"\1f525"}
.iconochive-upload:before{content:"\1f4e4"}
.iconochive-download:before{content:"\1f4e5"}
.iconochive-favorite:before{content:"\2605"}
.iconochive-heart:before{content:"\2665"}
.iconochive-play:before{content:"\25b6"}
.iconochive-play-framed:before{content:"\1f3ac"}
.iconochive-fullscreen:before{content:"\26f6"}
.iconochive-mute:before{content:"\1f507"}
.iconochive-unmute:before{content:"\1f50a"}
.iconochive-share:before{content:"\1f381"}
.iconochive-edit:before{content:"\270e"}
.iconochive-reedit:before{content:"\2710"}
.iconochive-gear:before{content:"\2699"}
.iconochive-remove-circle:before{content:"\274e"}
.iconochive-plus-circle:before{content:"\1f5d6"}
.iconochive-minus-circle:before{content:"\1f5d5"}
.iconochive-x:before{content:"\1f5d9"}
.iconochive-fork:before{content:"\22d4"}
.iconochive-trash:before{content:"\1f5d1"}
.iconochive-warning:before{content:"\26a0"}
.iconochive-flash:before{content:"\1f5f2"}
.iconochive-world:before{content:"\1f5fa"}
.iconochive-lock:before{content:"\1f512"}
.iconochive-unlock:before{content:"\1f513"}
.iconochive-twitter:before{content:"\1f426"}
.iconochive-facebook:before{content:"\66"}
.iconochive-googleplus:before{content:"\67"}
.iconochive-reddit:before{content:"\1f47d"}
.iconochive-tumblr:before{content:"\54"}
.iconochive-pinterest:before{content:"\1d4df"}
.iconochive-popcorn:before{content:"\1f4a5"}
.iconochive-email:before{content:"\1f4e7"}
.iconochive-embed:before{content:"\1f517"}
.iconochive-gamepad:before{content:"\1f579"}
.iconochive-Zoom_In:before{content:"\2b"}
.iconochive-Zoom_Out:before{content:"\2d"}
.iconochive-RSS:before{content:"\1f4e8"}
.iconochive-Light_Bulb:before{content:"\1f4a1"}
.iconochive-Add:before{content:"\2295"}
.iconochive-Tab_Activity:before{content:"\2318"}
.iconochive-Forward:before{content:"\23e9"}
.iconochive-Backward:before{content:"\23ea"}
.iconochive-No_Audio:before{content:"\1f508"}
.iconochive-Pause:before{content:"\23f8"}
.iconochive-No_Favorite:before{content:"\2606"}
.iconochive-Unike:before{content:"\2661"}
.iconochive-Song:before{content:"\266b"}
.iconochive-No_Flag:before{content:"\2690"}
.iconochive-Flag:before{content:"\2691"}
.iconochive-Done:before{content:"\2713"}
.iconochive-Check:before{content:"\2714"}
.iconochive-Refresh:before{content:"\27f3"}
.iconochive-Headphones:before{content:"\1f3a7"}
.iconochive-Chart:before{content:"\1f4c8"}
.iconochive-Bookmark:before{content:"\1f4d1"}
.iconochive-Documents:before{content:"\1f4da"}
.iconochive-Newspaper:before{content:"\1f4f0"}
.iconochive-Podcast:before{content:"\1f4f6"}
.iconochive-Radio:before{content:"\1f4fb"}
.iconochive-Cassette:before{content:"\1f4fc"}
.iconochive-Shuffle:before{content:"\1f500"}
.iconochive-Loop:before{content:"\1f501"}
.iconochive-Low_Audio:before{content:"\1f509"}
.iconochive-First:before{content:"\1f396"}
.iconochive-Invisible:before{content:"\1f576"}
.iconochive-Computer:before{content:"\1f5b3"}
+1
View File
@@ -0,0 +1 @@
<html><head><title>C:\Users\Administrateur\WebstormProjects\georealmscraftweb</title></head><body><a href="index.html.html">index.html</a><br /><a href="postule.html.html">postule.html</a><br /></body></html>
+393
View File
@@ -0,0 +1,393 @@
<html>
<head>
<title>index.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
.s0 { color: #d5b778;}
.s1 { color: #bcbec4;}
.s2 { color: #bababa;}
.s3 { color: #6aab73;}
.s4 { color: #56a8f5;}
.s5 { color: #2aacb8;}
.s6 { color: #7a7e85;}
.s7 { color: #cf8e6d;}
</style>
</head>
<body bgcolor="#1e1f22">
<table CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#606060" >
<tr><td><center>
<font face="Arial, Helvetica" color="#000000">
index.html</font>
</center></td></tr></table>
<pre><span class="s0">&lt;!DOCTYPE </span><span class="s2">html</span><span class="s0">&gt;</span>
<span class="s0">&lt;html </span><span class="s2">lang</span><span class="s3">=&quot;fr&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;head&gt;</span>
<span class="s0">&lt;meta </span><span class="s2">charset</span><span class="s3">=&quot;UTF-8&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;meta </span><span class="s2">name</span><span class="s3">=&quot;viewport&quot; </span><span class="s2">content</span><span class="s3">=&quot;width=device-width, initial-scale=1.0&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;title&gt;</span><span class="s1">Geo Realms Craft - Serveur Minecraft Moddé</span><span class="s0">&lt;/title&gt;</span>
<span class="s0">&lt;link </span><span class="s2">href</span><span class="s3">=&quot;https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css&quot; </span><span class="s2">rel</span><span class="s3">=&quot;stylesheet&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;link </span><span class="s2">rel</span><span class="s3">=&quot;stylesheet&quot; </span><span class="s2">href</span><span class="s3">=&quot;https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;style&gt;</span>
<span class="s1">:</span><span class="s0">root </span><span class="s1">{</span>
<span class="s2">--primary-color</span><span class="s1">: </span><span class="s4">#760202</span><span class="s1">;</span>
<span class="s2">--secondary-color</span><span class="s1">: </span><span class="s4">#2c2c2c</span><span class="s1">;</span>
<span class="s2">--accent-color</span><span class="s1">: </span><span class="s4">#9d0b28</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s0">body </span><span class="s1">{</span>
<span class="s2">font-family</span><span class="s1">: </span><span class="s3">'Roboto'</span><span class="s1">, </span><span class="s3">sans-serif</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s4">#f8f9fa</span><span class="s1">;</span>
<span class="s2">color</span><span class="s1">: </span><span class="s4">#333</span><span class="s1">;</span>
<span class="s2">line-height</span><span class="s1">: </span><span class="s5">1.6</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">hero </span><span class="s1">{</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">linear-gradient</span><span class="s1">(</span><span class="s5">45</span><span class="s3">deg</span><span class="s1">, </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.9</span><span class="s1">), </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.7</span><span class="s1">)), </span><span class="s0">url</span><span class="s1">(</span><span class="s3">'background/0.jpg'</span><span class="s1">);</span>
<span class="s2">background-size</span><span class="s1">: </span><span class="s3">cover</span><span class="s1">;</span>
<span class="s2">background-position</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">min-height</span><span class="s1">: </span><span class="s5">100</span><span class="s3">vh</span><span class="s1">;</span>
<span class="s2">display</span><span class="s1">: </span><span class="s3">flex</span><span class="s1">;</span>
<span class="s2">align-items</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">justify-content</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">text-align</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">color</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">position</span><span class="s1">: </span><span class="s3">relative</span><span class="s1">;</span>
<span class="s2">overflow</span><span class="s1">: </span><span class="s3">hidden</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">20</span><span class="s3">px</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">hero</span><span class="s1">::</span><span class="s0">after </span><span class="s1">{</span>
<span class="s2">content</span><span class="s1">: </span><span class="s3">''</span><span class="s1">;</span>
<span class="s2">position</span><span class="s1">: </span><span class="s3">absolute</span><span class="s1">;</span>
<span class="s2">bottom</span><span class="s1">: -</span><span class="s5">50</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">left</span><span class="s1">: -</span><span class="s5">5</span><span class="s1">%;</span>
<span class="s2">width</span><span class="s1">: </span><span class="s5">110</span><span class="s1">%;</span>
<span class="s2">height</span><span class="s1">: </span><span class="s5">100</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--primary-color</span><span class="s1">);</span>
<span class="s2">transform</span><span class="s1">: </span><span class="s0">rotate</span><span class="s1">(-</span><span class="s5">3</span><span class="s3">deg</span><span class="s1">);</span>
<span class="s2">z-index</span><span class="s1">: </span><span class="s5">1</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">nav-wrapper </span><span class="s1">{</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--secondary-color</span><span class="s1">);</span>
<span class="s2">position</span><span class="s1">: </span><span class="s3">sticky</span><span class="s1">;</span>
<span class="s2">top</span><span class="s1">: </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">z-index</span><span class="s1">: </span><span class="s5">1000</span><span class="s1">;</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 2</span><span class="s3">px </span><span class="s5">5</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.1</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">section </span><span class="s1">{</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">80</span><span class="s3">px </span><span class="s5">20</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">opacity</span><span class="s1">: </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">transform</span><span class="s1">: </span><span class="s0">translateY</span><span class="s1">(</span><span class="s5">30</span><span class="s3">px</span><span class="s1">);</span>
<span class="s2">transition</span><span class="s1">: </span><span class="s3">all </span><span class="s5">0.8</span><span class="s3">s </span><span class="s0">cubic-bezier</span><span class="s1">(</span><span class="s5">0.4</span><span class="s1">, </span><span class="s5">0</span><span class="s1">, </span><span class="s5">0.2</span><span class="s1">, </span><span class="s5">1</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">section</span><span class="s1">.</span><span class="s0">visible </span><span class="s1">{</span>
<span class="s2">opacity</span><span class="s1">: </span><span class="s5">1</span><span class="s1">;</span>
<span class="s2">transform</span><span class="s1">: </span><span class="s0">translateY</span><span class="s1">(</span><span class="s5">0</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">highlight-card </span><span class="s1">{</span>
<span class="s2">border-radius</span><span class="s1">: </span><span class="s5">15</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">30</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">margin</span><span class="s1">: </span><span class="s5">20</span><span class="s3">px </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 10</span><span class="s3">px </span><span class="s5">30</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.08</span><span class="s1">);</span>
<span class="s2">border-left</span><span class="s1">: </span><span class="s5">5</span><span class="s3">px solid </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--accent-color</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">rule-category </span><span class="s1">{</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">25</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">margin</span><span class="s1">: </span><span class="s5">30</span><span class="s3">px </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">border-radius</span><span class="s1">: </span><span class="s5">12</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 5</span><span class="s3">px </span><span class="s5">15</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.06</span><span class="s1">);</span>
<span class="s2">transition</span><span class="s1">: </span><span class="s3">all </span><span class="s5">0.3</span><span class="s3">s ease</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">rule-category</span><span class="s1">:</span><span class="s0">hover </span><span class="s1">{</span>
<span class="s2">transform</span><span class="s1">: </span><span class="s0">translateY</span><span class="s1">(-</span><span class="s5">5</span><span class="s3">px</span><span class="s1">);</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 10</span><span class="s3">px </span><span class="s5">25</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.12</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">news-timeline </span><span class="s1">{</span>
<span class="s2">position</span><span class="s1">: </span><span class="s3">relative</span><span class="s1">;</span>
<span class="s2">padding-left</span><span class="s1">: </span><span class="s5">30</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">border-left</span><span class="s1">: </span><span class="s5">3</span><span class="s3">px solid </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--accent-color</span><span class="s1">);</span>
<span class="s2">margin-left</span><span class="s1">: </span><span class="s5">15</span><span class="s3">px</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">news-item </span><span class="s1">{</span>
<span class="s2">position</span><span class="s1">: </span><span class="s3">relative</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">25</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">margin-bottom</span><span class="s1">: </span><span class="s5">40</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">border-radius</span><span class="s1">: </span><span class="s5">10</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 3</span><span class="s3">px </span><span class="s5">6</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.05</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">news-item</span><span class="s1">::</span><span class="s0">before </span><span class="s1">{</span>
<span class="s2">content</span><span class="s1">: </span><span class="s3">''</span><span class="s1">;</span>
<span class="s2">position</span><span class="s1">: </span><span class="s3">absolute</span><span class="s1">;</span>
<span class="s2">left</span><span class="s1">: -</span><span class="s5">38</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">top</span><span class="s1">: </span><span class="s5">25</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">width</span><span class="s1">: </span><span class="s5">20</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">height</span><span class="s1">: </span><span class="s5">20</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--accent-color</span><span class="s1">);</span>
<span class="s2">border-radius</span><span class="s1">: </span><span class="s5">50</span><span class="s1">%;</span>
<span class="s2">border</span><span class="s1">: </span><span class="s5">3</span><span class="s3">px solid white</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">cta-button </span><span class="s1">{</span>
<span class="s2">display</span><span class="s1">: </span><span class="s3">inline-flex</span><span class="s1">;</span>
<span class="s2">align-items</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">16</span><span class="s3">px </span><span class="s5">45</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--primary-color</span><span class="s1">);</span>
<span class="s2">color</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">border-radius</span><span class="s1">: </span><span class="s5">50</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">text-decoration</span><span class="s1">: </span><span class="s3">none</span><span class="s1">;</span>
<span class="s2">transition</span><span class="s1">: </span><span class="s3">all </span><span class="s5">0.3</span><span class="s3">s ease</span><span class="s1">;</span>
<span class="s2">font-weight</span><span class="s1">: </span><span class="s5">600</span><span class="s1">;</span>
<span class="s2">text-transform</span><span class="s1">: </span><span class="s3">uppercase</span><span class="s1">;</span>
<span class="s2">letter-spacing</span><span class="s1">: </span><span class="s5">1</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">gap</span><span class="s1">: </span><span class="s5">10</span><span class="s3">px</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">cta-button</span><span class="s1">:</span><span class="s0">hover </span><span class="s1">{</span>
<span class="s2">transform</span><span class="s1">: </span><span class="s0">translateY</span><span class="s1">(-</span><span class="s5">2</span><span class="s3">px</span><span class="s1">);</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 8</span><span class="s3">px </span><span class="s5">20</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">118</span><span class="s1">, </span><span class="s5">2</span><span class="s1">, </span><span class="s5">2</span><span class="s1">, </span><span class="s5">0.3</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">icon </span><span class="s1">{</span>
<span class="s2">width</span><span class="s1">: </span><span class="s5">24</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">height</span><span class="s1">: </span><span class="s5">24</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">fill</span><span class="s1">: </span><span class="s3">currentColor</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s0">footer </span><span class="s1">{</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--secondary-color</span><span class="s1">);</span>
<span class="s2">color</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">60</span><span class="s3">px </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">text-align</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">margin-top</span><span class="s1">: </span><span class="s5">80</span><span class="s3">px</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s0">&lt;/style&gt;</span>
<span class="s0">&lt;/head&gt;</span>
<span class="s0">&lt;body&gt;</span>
<span class="s6">&lt;!-- En-tête héroïque --&gt;</span>
<span class="s0">&lt;header </span><span class="s2">class</span><span class="s3">=&quot;hero&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h1 </span><span class="s2">class</span><span class="s3">=&quot;animate__animated animate__fadeInDown&quot;</span><span class="s0">&gt;</span><span class="s1">Geo Realms Craft</span><span class="s0">&lt;/h1&gt;</span>
<span class="s0">&lt;p </span><span class="s2">class</span><span class="s3">=&quot;animate__animated animate__fadeInUp delay-1&quot;</span><span class="s0">&gt;</span><span class="s1">Une expérience Minecraft révolutionnée par 345 mods</span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;a </span><span class="s2">href</span><span class="s3">=&quot;#presentation&quot; </span><span class="s2">class</span><span class="s3">=&quot;cta-button animate__animated animate__zoomIn delay-2&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;svg </span><span class="s2">class</span><span class="s3">=&quot;icon&quot; </span><span class="s2">viewBox</span><span class="s3">=&quot;0 0 24 24&quot;</span><span class="s0">&gt;&lt;path </span><span class="s2">d</span><span class="s3">=&quot;M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z&quot;</span><span class="s0">/&gt;&lt;/svg&gt;</span>
<span class="s1">Commencer l'aventure</span>
<span class="s0">&lt;/a&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/header&gt;</span>
<span class="s6">&lt;!-- Navigation --&gt;</span>
<span class="s0">&lt;nav </span><span class="s2">class</span><span class="s3">=&quot;nav-wrapper&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;right hide-on-med-and-down&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;&lt;a </span><span class="s2">href</span><span class="s3">=&quot;#presentation&quot; </span><span class="s2">class</span><span class="s3">=&quot;waves-effect&quot;</span><span class="s0">&gt;</span><span class="s1">Présentation</span><span class="s0">&lt;/a&gt;&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;&lt;a </span><span class="s2">href</span><span class="s3">=&quot;#regles&quot; </span><span class="s2">class</span><span class="s3">=&quot;waves-effect&quot;</span><span class="s0">&gt;</span><span class="s1">Règles</span><span class="s0">&lt;/a&gt;&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;&lt;a </span><span class="s2">href</span><span class="s3">=&quot;#news&quot; </span><span class="s2">class</span><span class="s3">=&quot;waves-effect&quot;</span><span class="s0">&gt;</span><span class="s1">Nouveautés</span><span class="s0">&lt;/a&gt;&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;&lt;a </span><span class="s2">href</span><span class="s3">=&quot;#join&quot; </span><span class="s2">class</span><span class="s3">=&quot;waves-effect&quot;</span><span class="s0">&gt;</span><span class="s1">Rejoindre</span><span class="s0">&lt;/a&gt;&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/nav&gt;</span>
<span class="s6">&lt;!-- Section Présentation --&gt;</span>
<span class="s0">&lt;section </span><span class="s2">id</span><span class="s3">=&quot;presentation&quot; </span><span class="s2">class</span><span class="s3">=&quot;section container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;row&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;highlight-card&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h2 </span><span class="s2">class</span><span class="s3">=&quot;center-align&quot;</span><span class="s0">&gt;</span><span class="s1">Un Monde Où Minecraft Rencontre la Réalité</span><span class="s0">&lt;/h2&gt;</span>
<span class="s0">&lt;p </span><span class="s2">class</span><span class="s3">=&quot;flow-text&quot;</span><span class="s0">&gt;</span><span class="s1">Geo Realms Craft réinvente l'expérience Minecraft en donnant encore plus de liberté !</span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;row&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m6&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;rule-category&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h4&gt;</span><span class="s1">🌍 Génération de Monde Épique</span><span class="s0">&lt;/h4&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;browser-default&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Immensité des biomes et de la verticalité de certains massifs </span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Répartition réaliste des ressources minérales</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Structure entierrement retravaillé </span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m6&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;rule-category&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h4&gt;</span><span class="s1">🔧 principaux mods</span><span class="s0">&lt;/h4&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;browser-default&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Graphisme, audio, animation retravaillé</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Système de colonies évolutif avec Minecolonies</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Machineries avec Create 6.0</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Vehicules comme des trains, avions, voitures, bateaux</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;row&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h4&gt;</span><span class="s1">🌈 Fonctionnalités Clés</span><span class="s0">&lt;/h4&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;row&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m4&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h5&gt;</span><span class="s1">Nourriture Stratégique</span><span class="s0">&lt;/h5&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">Systeme de nutrition nécessitant une alimentation variée et équilibrée </span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m4&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h5&gt;</span><span class="s1">Combat Tactique</span><span class="s0">&lt;/h5&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">Refonte complète du système de combat avec styles d'attaques et équipements spécialisés</span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m4&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h5&gt;</span><span class="s1">Économie Dynamique</span><span class="s0">&lt;/h5&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">Marché basé sur les joueurs avec monnaie non duplicable</span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/section&gt;</span>
<span class="s6">&lt;!-- Section Règles --&gt;</span>
<span class="s0">&lt;section </span><span class="s2">id</span><span class="s3">=&quot;regles&quot; </span><span class="s2">class</span><span class="s3">=&quot;section container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h2 </span><span class="s2">class</span><span class="s3">=&quot;center-align&quot;</span><span class="s0">&gt;</span><span class="s1">Règles du Serveur</span><span class="s0">&lt;/h2&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;rule-category&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h4&gt;</span><span class="s1">📜 Conduite Générale</span><span class="s0">&lt;/h4&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;browser-default&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Respectez tous les joueurs et le staff.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Aucun langage offensant ou inapproprié.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Le grief et le vol sont strictement interdits.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Respectez la diversité des joueurs en évitant les commentaires discriminatoires.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Évitez les discussions politiques ou religieuses pour maintenir un environnement convivial.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Signalez tout comportement inapproprié ou harcèlement au staff pour une intervention rapide.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Les disputes entre joueurs doivent être résolues de manière calme et respectueuse.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;rule-category&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h4&gt;</span><span class="s1">⚔ Gameplay Équilibré</span><span class="s0">&lt;/h4&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;browser-default&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Ne pas tricher ou utiliser de mods qui donnent un avantage injuste.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Les constructions offensantes ou inappropriées seront supprimées.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Ne pas perturber les événements organisés par le serveur pour assurer une expérience de jeu fluide pour tous.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Évitez de monopoliser les ressources rares pour permettre à tous les joueurs de progresser équitablement.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Respectez les zones de construction des autres joueurs et ne les modifiez pas sans autorisation.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Évitez d'utiliser des bugs du jeu à votre avantage pour maintenir l'équité entre les joueurs.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;rule-category&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h4&gt;</span><span class="s1">💰 Intégrité Économique</span><span class="s0">&lt;/h4&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;browser-default&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Les transactions doivent être équitables et consenties par les deux parties.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">La manipulation de l'économie du serveur est interdite.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Ne pas escroquer d'autres joueurs lors de transactions en établissant des prix équitables.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Signalez toute activité suspecte liée à l'économie pour maintenir l'intégrité du système financier du serveur.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Évitez de monopoliser les commerces pour permettre à tous les joueurs de participer à l'économie du serveur.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Ne pas échanger des objets obtenus de manière frauduleuse pour préserver l'équilibre économique du serveur.</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s6">&lt;!-- ... Autres catégories de règles ... --&gt;</span>
<span class="s0">&lt;/section&gt;</span>
<span class="s6">&lt;!-- Section Nouveautés --&gt;</span>
<span class="s0">&lt;section </span><span class="s2">id</span><span class="s3">=&quot;news&quot; </span><span class="s2">class</span><span class="s3">=&quot;section container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h2 </span><span class="s2">class</span><span class="s3">=&quot;center-align&quot;</span><span class="s0">&gt;</span><span class="s1">Évolutions Récentes</span><span class="s0">&lt;/h2&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;news-timeline&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;news-item&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h5&gt;</span><span class="s1">Version 1.0.2 🔄</span><span class="s0">&lt;/h5&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">• Optimisation majeure des performances serveur</span><span class="s0">&lt;br&gt;</span>
<span class="s1">• Refonte audio complete du jeu</span><span class="s0">&lt;br&gt;</span>
<span class="s1">• Test en conditions réel sur le serveur</span><span class="s0">&lt;br&gt;</span>
<span class="s1">• Rajout de mods d'ambiances </span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;news-item&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h5&gt;</span><span class="s1">Version 1.0.1 🔄</span><span class="s0">&lt;/h5&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">• Optimisation majeure des performances serveur</span><span class="s0">&lt;br&gt;</span>
<span class="s1">• Correction des bugs de génération de chunks</span><span class="s0">&lt;br&gt;</span>
<span class="s1">• Mises a jour vers create 6.0 et trie dans les mods</span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;news-item&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h5&gt;</span><span class="s1">Version 1.0.0 🎉</span><span class="s0">&lt;/h5&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">• Premiere release</span><span class="s0">&lt;br&gt;</span>
<span class="s1">• Premier test serveur</span><span class="s0">&lt;br&gt;</span>
<span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/section&gt;</span>
<span class="s6">&lt;!-- Section Rejoindre --&gt;</span>
<span class="s0">&lt;section </span><span class="s2">id</span><span class="s3">=&quot;join&quot; </span><span class="s2">class</span><span class="s3">=&quot;section container center-align&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;highlight-card&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h2&gt;</span><span class="s1">Prêt à Nous Rejoindre ?</span><span class="s0">&lt;/h2&gt;</span>
<span class="s0">&lt;p </span><span class="s2">class</span><span class="s3">=&quot;flow-text&quot;</span><span class="s0">&gt;</span><span class="s1">Postule des maintenant pour nous rejoindre ! </span><span class="s0">&lt;/code&gt;&lt;/p&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;row&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m6&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;a </span><span class="s2">href</span><span class="s3">=&quot;postule.html&quot; </span><span class="s2">class</span><span class="s3">=&quot;cta-button&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;svg </span><span class="s2">class</span><span class="s3">=&quot;icon&quot; </span><span class="s2">viewBox</span><span class="s3">=&quot;0 0 24 24&quot;</span><span class="s0">&gt;&lt;path </span><span class="s2">d</span><span class="s3">=&quot;M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z&quot;</span><span class="s0">/&gt;&lt;/svg&gt;</span>
<span class="s1">Je postule!</span>
<span class="s0">&lt;/a&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m6&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;a </span><span class="s2">href</span><span class="s3">=&quot;#&quot; </span><span class="s2">class</span><span class="s3">=&quot;cta-button&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;svg </span><span class="s2">class</span><span class="s3">=&quot;icon&quot; </span><span class="s2">viewBox</span><span class="s3">=&quot;0 0 24 24&quot;</span><span class="s0">&gt;&lt;path </span><span class="s2">d</span><span class="s3">=&quot;M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z&quot;</span><span class="s0">/&gt;&lt;/svg&gt;</span>
<span class="s1">Guide d'Installation</span>
<span class="s0">&lt;/a&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/section&gt;</span>
<span class="s6">&lt;!-- Pied de page --&gt;</span>
<span class="s0">&lt;footer&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">© 2025 Geo Realms Craft - Tous droits réservés</span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">Contact : </span><span class="s0">&lt;a </span><span class="s2">href</span><span class="s3">=&quot;https://discord.gg/uP7cDES&quot; </span><span class="s2">class</span><span class="s3">=&quot;white-text&quot;</span><span class="s0">&gt;</span><span class="s1">Discord Ebony</span><span class="s0">&lt;/a&gt;&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/footer&gt;</span>
<span class="s0">&lt;script </span><span class="s2">src</span><span class="s3">=&quot;https://code.jquery.com/jquery-3.6.0.min.js&quot;</span><span class="s0">&gt;&lt;/script&gt;</span>
<span class="s0">&lt;script </span><span class="s2">src</span><span class="s3">=&quot;https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js&quot;</span><span class="s0">&gt;&lt;/script&gt;</span>
<span class="s0">&lt;script&gt;</span>
<span class="s1">document.addEventListener(</span><span class="s3">'DOMContentLoaded'</span><span class="s1">, </span><span class="s7">function</span><span class="s1">() {</span>
<span class="s7">const </span><span class="s1">observer = </span><span class="s7">new </span><span class="s1">IntersectionObserver((entries) =&gt; {</span>
<span class="s1">entries.forEach(entry =&gt; {</span>
<span class="s7">if </span><span class="s1">(entry.isIntersecting) {</span>
<span class="s1">entry.target.classList.add(</span><span class="s3">'visible'</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">}, { threshold: </span><span class="s5">0.15 </span><span class="s1">});</span>
<span class="s1">document.querySelectorAll(</span><span class="s3">'.section'</span><span class="s1">).forEach(section =&gt; {</span>
<span class="s1">observer.observe(section);</span>
<span class="s1">});</span>
<span class="s1">$(</span><span class="s3">'a[href^=&quot;#&quot;]'</span><span class="s1">).on(</span><span class="s3">'click'</span><span class="s1">, </span><span class="s7">function</span><span class="s1">(e) {</span>
<span class="s1">e.preventDefault();</span>
<span class="s7">const </span><span class="s1">target = $(</span><span class="s7">this</span><span class="s1">.getAttribute(</span><span class="s3">'href'</span><span class="s1">));</span>
<span class="s7">if </span><span class="s1">(target.length) {</span>
<span class="s1">$(</span><span class="s3">'html, body'</span><span class="s1">).animate({</span>
<span class="s1">scrollTop: target.offset().top - </span><span class="s5">70</span>
<span class="s1">}, </span><span class="s5">800</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">M.AutoInit();</span>
<span class="s1">});</span>
<span class="s0">&lt;/script&gt;</span>
<span class="s0">&lt;/body&gt;</span>
<span class="s0">&lt;/html&gt;</span></pre>
</body>
</html>
+202
View File
@@ -0,0 +1,202 @@
<html>
<head>
<title>postule.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
.s0 { color: #d5b778;}
.s1 { color: #bcbec4;}
.s2 { color: #bababa;}
.s3 { color: #6aab73;}
.s4 { color: #56a8f5;}
.s5 { color: #2aacb8;}
.s6 { color: #cf8e6d;}
</style>
</head>
<body bgcolor="#1e1f22">
<table CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#606060" >
<tr><td><center>
<font face="Arial, Helvetica" color="#000000">
postule.html</font>
</center></td></tr></table>
<pre><span class="s0">&lt;!DOCTYPE </span><span class="s2">html</span><span class="s0">&gt;</span>
<span class="s0">&lt;html </span><span class="s2">lang</span><span class="s3">=&quot;fr&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;head&gt;</span>
<span class="s0">&lt;meta </span><span class="s2">charset</span><span class="s3">=&quot;UTF-8&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;meta </span><span class="s2">name</span><span class="s3">=&quot;viewport&quot; </span><span class="s2">content</span><span class="s3">=&quot;width=device-width, initial-scale=1.0&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;title&gt;</span><span class="s1">Postuler - Geo Realms Craft</span><span class="s0">&lt;/title&gt;</span>
<span class="s0">&lt;link </span><span class="s2">href</span><span class="s3">=&quot;https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css&quot; </span><span class="s2">rel</span><span class="s3">=&quot;stylesheet&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;link </span><span class="s2">rel</span><span class="s3">=&quot;stylesheet&quot; </span><span class="s2">href</span><span class="s3">=&quot;https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;style&gt;</span>
<span class="s1">:</span><span class="s0">root </span><span class="s1">{</span>
<span class="s2">--primary-color</span><span class="s1">: </span><span class="s4">#760202</span><span class="s1">;</span>
<span class="s2">--secondary-color</span><span class="s1">: </span><span class="s4">#2c2c2c</span><span class="s1">;</span>
<span class="s2">--accent-color</span><span class="s1">: </span><span class="s4">#9d0b28</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s0">body </span><span class="s1">{</span>
<span class="s2">font-family</span><span class="s1">: </span><span class="s3">'Roboto'</span><span class="s1">, </span><span class="s3">sans-serif</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s4">#f8f9fa</span><span class="s1">;</span>
<span class="s2">color</span><span class="s1">: </span><span class="s4">#333</span><span class="s1">;</span>
<span class="s2">line-height</span><span class="s1">: </span><span class="s5">1.6</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">hero </span><span class="s1">{</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">linear-gradient</span><span class="s1">(</span><span class="s5">45</span><span class="s3">deg</span><span class="s1">, </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.9</span><span class="s1">), </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.7</span><span class="s1">)), </span><span class="s0">url</span><span class="s1">(</span><span class="s3">'background/0.jpg'</span><span class="s1">);</span>
<span class="s2">background-size</span><span class="s1">: </span><span class="s3">cover</span><span class="s1">;</span>
<span class="s2">background-position</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">min-height</span><span class="s1">: </span><span class="s5">50</span><span class="s3">vh</span><span class="s1">;</span>
<span class="s2">display</span><span class="s1">: </span><span class="s3">flex</span><span class="s1">;</span>
<span class="s2">align-items</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">justify-content</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">text-align</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">color</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">position</span><span class="s1">: </span><span class="s3">relative</span><span class="s1">;</span>
<span class="s2">overflow</span><span class="s1">: </span><span class="s3">hidden</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">20</span><span class="s3">px</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">nav-wrapper </span><span class="s1">{</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--secondary-color</span><span class="s1">);</span>
<span class="s2">position</span><span class="s1">: </span><span class="s3">sticky</span><span class="s1">;</span>
<span class="s2">top</span><span class="s1">: </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">z-index</span><span class="s1">: </span><span class="s5">1000</span><span class="s1">;</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 2</span><span class="s3">px </span><span class="s5">5</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.1</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">section </span><span class="s1">{</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">80</span><span class="s3">px </span><span class="s5">20</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">opacity</span><span class="s1">: </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">transform</span><span class="s1">: </span><span class="s0">translateY</span><span class="s1">(</span><span class="s5">30</span><span class="s3">px</span><span class="s1">);</span>
<span class="s2">transition</span><span class="s1">: </span><span class="s3">all </span><span class="s5">0.8</span><span class="s3">s </span><span class="s0">cubic-bezier</span><span class="s1">(</span><span class="s5">0.4</span><span class="s1">, </span><span class="s5">0</span><span class="s1">, </span><span class="s5">0.2</span><span class="s1">, </span><span class="s5">1</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">section</span><span class="s1">.</span><span class="s0">visible </span><span class="s1">{</span>
<span class="s2">opacity</span><span class="s1">: </span><span class="s5">1</span><span class="s1">;</span>
<span class="s2">transform</span><span class="s1">: </span><span class="s0">translateY</span><span class="s1">(</span><span class="s5">0</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">requirement-card </span><span class="s1">{</span>
<span class="s2">border-radius</span><span class="s1">: </span><span class="s5">15</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">30</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">margin</span><span class="s1">: </span><span class="s5">20</span><span class="s3">px </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 10</span><span class="s3">px </span><span class="s5">30</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0</span><span class="s1">,</span><span class="s5">0.08</span><span class="s1">);</span>
<span class="s2">border-left</span><span class="s1">: </span><span class="s5">5</span><span class="s3">px solid </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--accent-color</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">cta-button </span><span class="s1">{</span>
<span class="s2">display</span><span class="s1">: </span><span class="s3">inline-flex</span><span class="s1">;</span>
<span class="s2">align-items</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">16</span><span class="s3">px </span><span class="s5">45</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--primary-color</span><span class="s1">);</span>
<span class="s2">color</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">border-radius</span><span class="s1">: </span><span class="s5">50</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">text-decoration</span><span class="s1">: </span><span class="s3">none</span><span class="s1">;</span>
<span class="s2">transition</span><span class="s1">: </span><span class="s3">all </span><span class="s5">0.3</span><span class="s3">s ease</span><span class="s1">;</span>
<span class="s2">font-weight</span><span class="s1">: </span><span class="s5">600</span><span class="s1">;</span>
<span class="s2">text-transform</span><span class="s1">: </span><span class="s3">uppercase</span><span class="s1">;</span>
<span class="s2">letter-spacing</span><span class="s1">: </span><span class="s5">1</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">gap</span><span class="s1">: </span><span class="s5">10</span><span class="s3">px</span><span class="s1">;</span>
<span class="s2">margin-top</span><span class="s1">: </span><span class="s5">30</span><span class="s3">px</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">.</span><span class="s0">cta-button</span><span class="s1">:</span><span class="s0">hover </span><span class="s1">{</span>
<span class="s2">transform</span><span class="s1">: </span><span class="s0">translateY</span><span class="s1">(-</span><span class="s5">2</span><span class="s3">px</span><span class="s1">);</span>
<span class="s2">box-shadow</span><span class="s1">: </span><span class="s5">0 8</span><span class="s3">px </span><span class="s5">20</span><span class="s3">px </span><span class="s0">rgba</span><span class="s1">(</span><span class="s5">118</span><span class="s1">, </span><span class="s5">2</span><span class="s1">, </span><span class="s5">2</span><span class="s1">, </span><span class="s5">0.3</span><span class="s1">);</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--accent-color</span><span class="s1">);</span>
<span class="s2">color</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s0">footer </span><span class="s1">{</span>
<span class="s2">background</span><span class="s1">: </span><span class="s0">var</span><span class="s1">(</span><span class="s0">--secondary-color</span><span class="s1">);</span>
<span class="s2">color</span><span class="s1">: </span><span class="s3">white</span><span class="s1">;</span>
<span class="s2">padding</span><span class="s1">: </span><span class="s5">60</span><span class="s3">px </span><span class="s5">0</span><span class="s1">;</span>
<span class="s2">text-align</span><span class="s1">: </span><span class="s3">center</span><span class="s1">;</span>
<span class="s2">margin-top</span><span class="s1">: </span><span class="s5">80</span><span class="s3">px</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s0">&lt;/style&gt;</span>
<span class="s0">&lt;/head&gt;</span>
<span class="s0">&lt;body&gt;</span>
<span class="s0">&lt;header </span><span class="s2">class</span><span class="s3">=&quot;hero&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h1 </span><span class="s2">class</span><span class="s3">=&quot;animate__animated animate__fadeInDown&quot;</span><span class="s0">&gt;</span><span class="s1">Postuler</span><span class="s0">&lt;/h1&gt;</span>
<span class="s0">&lt;p </span><span class="s2">class</span><span class="s3">=&quot;animate__animated animate__fadeInUp delay-1&quot;</span><span class="s0">&gt;</span><span class="s1">Rejoignez l'aventure Geo Realms Craft</span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/header&gt;</span>
<span class="s0">&lt;nav </span><span class="s2">class</span><span class="s3">=&quot;nav-wrapper&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;right hide-on-med-and-down&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;&lt;a </span><span class="s2">href</span><span class="s3">=&quot;index.html&quot; </span><span class="s2">class</span><span class="s3">=&quot;waves-effect&quot;</span><span class="s0">&gt;</span><span class="s1">Retour à l'accueil</span><span class="s0">&lt;/a&gt;&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/nav&gt;</span>
<span class="s0">&lt;section </span><span class="s2">class</span><span class="s3">=&quot;section container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;requirement-card animate__animated animate__fadeIn&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h2 </span><span class="s2">class</span><span class="s3">=&quot;center-align&quot;</span><span class="s0">&gt;</span><span class="s1">Conditions requises</span><span class="s0">&lt;/h2&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;row&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m6&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h4&gt;</span><span class="s1">📋 Prérequis</span><span class="s0">&lt;/h4&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;browser-default&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Avoir au minimum 18 ans</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Avoir un PC correct</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Avoir Minecraft Java</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Être mature et responsable</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;col s12 m6&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;h4&gt;</span><span class="s1">⚠️ Important</span><span class="s0">&lt;/h4&gt;</span>
<span class="s0">&lt;ul </span><span class="s2">class</span><span class="s3">=&quot;browser-default&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Lire attentivement toutes les questions</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Répondre honnêtement</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Une candidature incomplète sera rejetée</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;li&gt;</span><span class="s1">Délai de traitement : jusqu'à 48 heures</span><span class="s0">&lt;/li&gt;</span>
<span class="s0">&lt;/ul&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;center-align&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;a </span><span class="s2">href</span><span class="s3">=&quot;https://docs.google.com/forms/d/e/1FAIpQLScsze3Xn7BdvFYn5RukknojyA1Bvy6aJU51p6DWzOE2iRzlbQ/viewform?usp=sf_link&quot; </span><span class="s2">target</span><span class="s3">=&quot;_blank&quot; </span><span class="s2">class</span><span class="s3">=&quot;cta-button&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;svg </span><span class="s2">class</span><span class="s3">=&quot;icon&quot; </span><span class="s2">viewBox</span><span class="s3">=&quot;0 0 24 24&quot; </span><span class="s2">style</span><span class="s3">=&quot;</span><span class="s2">width</span><span class="s1">: </span><span class="s5">24</span><span class="s3">px</span><span class="s1">; </span><span class="s2">height</span><span class="s1">: </span><span class="s5">24</span><span class="s3">px</span><span class="s1">; </span><span class="s2">fill</span><span class="s1">: </span><span class="s3">currentColor</span><span class="s1">;</span><span class="s3">&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;path </span><span class="s2">d</span><span class="s3">=&quot;M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z&quot;</span><span class="s0">/&gt;</span>
<span class="s0">&lt;/svg&gt;</span>
<span class="s1">Remplir le formulaire</span>
<span class="s0">&lt;/a&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/section&gt;</span>
<span class="s0">&lt;footer&gt;</span>
<span class="s0">&lt;div </span><span class="s2">class</span><span class="s3">=&quot;container&quot;</span><span class="s0">&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">© 2025 Geo Realms Craft - Tous droits réservés</span><span class="s0">&lt;/p&gt;</span>
<span class="s0">&lt;p&gt;</span><span class="s1">Contact : </span><span class="s0">&lt;a </span><span class="s2">href</span><span class="s3">=&quot;https://discord.gg/uP7cDES&quot; </span><span class="s2">class</span><span class="s3">=&quot;white-text&quot;</span><span class="s0">&gt;</span><span class="s1">Discord Ebony</span><span class="s0">&lt;/a&gt;&lt;/p&gt;</span>
<span class="s0">&lt;/div&gt;</span>
<span class="s0">&lt;/footer&gt;</span>
<span class="s0">&lt;script </span><span class="s2">src</span><span class="s3">=&quot;https://code.jquery.com/jquery-3.6.0.min.js&quot;</span><span class="s0">&gt;&lt;/script&gt;</span>
<span class="s0">&lt;script </span><span class="s2">src</span><span class="s3">=&quot;https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js&quot;</span><span class="s0">&gt;&lt;/script&gt;</span>
<span class="s0">&lt;script&gt;</span>
<span class="s1">document.addEventListener(</span><span class="s3">'DOMContentLoaded'</span><span class="s1">, </span><span class="s6">function</span><span class="s1">() {</span>
<span class="s6">const </span><span class="s1">observer = </span><span class="s6">new </span><span class="s1">IntersectionObserver((entries) =&gt; {</span>
<span class="s1">entries.forEach(entry =&gt; {</span>
<span class="s6">if </span><span class="s1">(entry.isIntersecting) {</span>
<span class="s1">entry.target.classList.add(</span><span class="s3">'visible'</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">}, { threshold: </span><span class="s5">0.15 </span><span class="s1">});</span>
<span class="s1">document.querySelectorAll(</span><span class="s3">'.section'</span><span class="s1">).forEach(section =&gt; {</span>
<span class="s1">observer.observe(section);</span>
<span class="s1">});</span>
<span class="s1">M.AutoInit();</span>
<span class="s1">});</span>
<span class="s0">&lt;/script&gt;</span>
<span class="s0">&lt;/body&gt;</span>
<span class="s0">&lt;/html&gt;</span></pre>
</body>
</html>
+370
View File
@@ -0,0 +1,370 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Geo Realms Craft - Serveur Minecraft Moddé</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">
<style>
:root {
--primary-color: #760202;
--secondary-color: #2c2c2c;
--accent-color: #9d0b28;
}
body {
font-family: 'Roboto', sans-serif;
background: #f8f9fa;
color: #333;
line-height: 1.6;
}
.hero {
background: linear-gradient(45deg, rgba(0,0,0,0.9), rgba(0,0,0,0.7)), url('background/0.jpg');
background-size: cover;
background-position: center;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
color: white;
position: relative;
overflow: hidden;
padding: 20px;
}
.hero::after {
content: '';
position: absolute;
bottom: -50px;
left: -5%;
width: 110%;
height: 100px;
background: var(--primary-color);
transform: rotate(-3deg);
z-index: 1;
}
.nav-wrapper {
background: var(--secondary-color);
position: sticky;
top: 0;
z-index: 1000;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.section {
padding: 80px 20px;
opacity: 0;
transform: translateY(30px);
transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.section.visible {
opacity: 1;
transform: translateY(0);
}
.highlight-card {
border-radius: 15px;
padding: 30px;
margin: 20px 0;
background: white;
box-shadow: 0 10px 30px rgba(0,0,0,0.08);
border-left: 5px solid var(--accent-color);
}
.rule-category {
padding: 25px;
margin: 30px 0;
background: white;
border-radius: 12px;
box-shadow: 0 5px 15px rgba(0,0,0,0.06);
transition: all 0.3s ease;
}
.rule-category:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px rgba(0,0,0,0.12);
}
.news-timeline {
position: relative;
padding-left: 30px;
border-left: 3px solid var(--accent-color);
margin-left: 15px;
}
.news-item {
position: relative;
padding: 25px;
margin-bottom: 40px;
background: white;
border-radius: 10px;
box-shadow: 0 3px 6px rgba(0,0,0,0.05);
}
.news-item::before {
content: '';
position: absolute;
left: -38px;
top: 25px;
width: 20px;
height: 20px;
background: var(--accent-color);
border-radius: 50%;
border: 3px solid white;
}
.cta-button {
display: inline-flex;
align-items: center;
padding: 16px 45px;
background: var(--primary-color);
color: white;
border-radius: 50px;
text-decoration: none;
transition: all 0.3s ease;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
gap: 10px;
}
.cta-button:hover {
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(118, 2, 2, 0.3);
}
.icon {
width: 24px;
height: 24px;
fill: currentColor;
}
footer {
background: var(--secondary-color);
color: white;
padding: 60px 0;
text-align: center;
margin-top: 80px;
}
</style>
</head>
<body>
<!-- En-tête héroïque -->
<header class="hero">
<div class="container">
<h1 class="animate__animated animate__fadeInDown">Geo Realms Craft</h1>
<p class="animate__animated animate__fadeInUp delay-1">Une expérience Minecraft révolutionnée par 345 mods</p>
<a href="#presentation" class="cta-button animate__animated animate__zoomIn delay-2">
<svg class="icon" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>
Commencer l'aventure
</a>
</div>
</header>
<!-- Navigation -->
<nav class="nav-wrapper">
<div class="container">
<ul class="right hide-on-med-and-down">
<li><a href="#presentation" class="waves-effect">Présentation</a></li>
<li><a href="#regles" class="waves-effect">Règles</a></li>
<li><a href="#news" class="waves-effect">Nouveautés</a></li>
<li><a href="#join" class="waves-effect">Rejoindre</a></li>
</ul>
</div>
</nav>
<!-- Section Présentation -->
<section id="presentation" class="section container">
<div class="row">
<div class="col s12">
<div class="highlight-card">
<h2 class="center-align">Un Monde Où Minecraft Rencontre la Réalité</h2>
<p class="flow-text">Geo Realms Craft réinvente l'expérience Minecraft en donnant encore plus de liberté !</p>
<div class="row">
<div class="col s12 m6">
<div class="rule-category">
<h4>🌍 Génération de Monde Épique</h4>
<ul class="browser-default">
<li>Immensité des biomes et de la verticalité de certains massifs </li>
<li>Répartition réaliste des ressources minérales</li>
<li>Structure entierrement retravaillé </li>
</ul>
</div>
</div>
<div class="col s12 m6">
<div class="rule-category">
<h4>🔧 principaux mods</h4>
<ul class="browser-default">
<li>Graphisme, audio, animation retravaillé</li>
<li>Système de colonies évolutif avec Minecolonies</li>
<li>Machineries avec Create 6.0</li>
<li>Vehicules comme des trains, avions, voitures, bateaux</li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="col s12">
<h4>🌈 Fonctionnalités Clés</h4>
<div class="row">
<div class="col s12 m4">
<h5>Nourriture Stratégique</h5>
<p>Systeme de nutrition nécessitant une alimentation variée et équilibrée </p>
</div>
<div class="col s12 m4">
<h5>Combat Tactique</h5>
<p>Refonte complète du système de combat avec styles d'attaques et équipements spécialisés</p>
</div>
<div class="col s12 m4">
<h5>Économie Dynamique</h5>
<p>Marché basé sur les joueurs avec monnaie non duplicable</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Section Règles -->
<section id="regles" class="section container">
<h2 class="center-align">Règles du Serveur</h2>
<div class="rule-category">
<h4>📜 Conduite Générale</h4>
<ul class="browser-default">
<li>Respectez tous les joueurs et le staff.</li>
<li>Aucun langage offensant ou inapproprié.</li>
<li>Le grief et le vol sont strictement interdits.</li>
<li>Respectez la diversité des joueurs en évitant les commentaires discriminatoires.</li>
<li>Évitez les discussions politiques ou religieuses pour maintenir un environnement convivial.</li>
<li>Signalez tout comportement inapproprié ou harcèlement au staff pour une intervention rapide.</li>
<li>Les disputes entre joueurs doivent être résolues de manière calme et respectueuse.</li>
</ul>
</div>
<div class="rule-category">
<h4>⚔ Gameplay Équilibré</h4>
<ul class="browser-default">
<li>Ne pas tricher ou utiliser de mods qui donnent un avantage injuste.</li>
<li>Les constructions offensantes ou inappropriées seront supprimées.</li>
<li>Ne pas perturber les événements organisés par le serveur pour assurer une expérience de jeu fluide pour tous.</li>
<li>Évitez de monopoliser les ressources rares pour permettre à tous les joueurs de progresser équitablement.</li>
<li>Respectez les zones de construction des autres joueurs et ne les modifiez pas sans autorisation.</li>
<li>Évitez d'utiliser des bugs du jeu à votre avantage pour maintenir l'équité entre les joueurs.</li>
</ul>
</div>
<div class="rule-category">
<h4>💰 Intégrité Économique</h4>
<ul class="browser-default">
<li>Les transactions doivent être équitables et consenties par les deux parties.</li>
<li>La manipulation de l'économie du serveur est interdite.</li>
<li>Ne pas escroquer d'autres joueurs lors de transactions en établissant des prix équitables.</li>
<li>Signalez toute activité suspecte liée à l'économie pour maintenir l'intégrité du système financier du serveur.</li>
<li>Évitez de monopoliser les commerces pour permettre à tous les joueurs de participer à l'économie du serveur.</li>
<li>Ne pas échanger des objets obtenus de manière frauduleuse pour préserver l'équilibre économique du serveur.</li>
</ul>
</div>
<!-- ... Autres catégories de règles ... -->
</section>
<!-- Section Nouveautés -->
<section id="news" class="section container">
<h2 class="center-align">Évolutions Récentes</h2>
<div class="news-timeline">
<div class="news-item">
<h5>Version 1.0.2 🔄</h5>
<p>• Optimisation majeure des performances serveur<br>
• Refonte audio complete du jeu<br>
• Test en conditions réel sur le serveur<br>
• Rajout de mods d'ambiances </p>
</div>
<div class="news-item">
<h5>Version 1.0.1 🔄</h5>
<p>• Optimisation majeure des performances serveur<br>
• Correction des bugs de génération de chunks<br>
• Mises a jour vers create 6.0 et trie dans les mods</p>
</div>
<div class="news-item">
<h5>Version 1.0.0 🎉</h5>
<p>• Premiere release<br>
• Premier test serveur<br>
</p>
</div>
</div>
</section>
<!-- Section Rejoindre -->
<section id="join" class="section container center-align">
<div class="highlight-card">
<h2>Prêt à Nous Rejoindre ?</h2>
<p class="flow-text">Postule des maintenant pour nous rejoindre ! </code></p>
<div class="row">
<div class="col s12 m6">
<a href="postule.html" class="cta-button">
<svg class="icon" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>
Je postule!
</a>
</div>
<div class="col s12 m6">
<a href="#" class="cta-button">
<svg class="icon" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>
Guide d'Installation
</a>
</div>
</div>
</div>
</section>
<!-- Pied de page -->
<footer>
<div class="container">
<p>© 2025 Geo Realms Craft - Tous droits réservés</p>
<p>Contact : <a href="https://discord.gg/uP7cDES" class="white-text">Discord Ebony</a></p>
</div>
</footer>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.15 });
document.querySelectorAll('.section').forEach(section => {
observer.observe(section);
});
$('a[href^="#"]').on('click', function(e) {
e.preventDefault();
const target = $(this.getAttribute('href'));
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top - 70
}, 800);
}
});
M.AutoInit();
});
</script>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+180
View File
@@ -0,0 +1,180 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Postuler - Geo Realms Craft</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">
<style>
:root {
--primary-color: #760202;
--secondary-color: #2c2c2c;
--accent-color: #9d0b28;
}
body {
font-family: 'Roboto', sans-serif;
background: #f8f9fa;
color: #333;
line-height: 1.6;
}
.hero {
background: linear-gradient(45deg, rgba(0,0,0,0.9), rgba(0,0,0,0.7)), url('background/0.jpg');
background-size: cover;
background-position: center;
min-height: 50vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
color: white;
position: relative;
overflow: hidden;
padding: 20px;
}
.nav-wrapper {
background: var(--secondary-color);
position: sticky;
top: 0;
z-index: 1000;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.section {
padding: 80px 20px;
opacity: 0;
transform: translateY(30px);
transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.section.visible {
opacity: 1;
transform: translateY(0);
}
.requirement-card {
border-radius: 15px;
padding: 30px;
margin: 20px 0;
background: white;
box-shadow: 0 10px 30px rgba(0,0,0,0.08);
border-left: 5px solid var(--accent-color);
}
.cta-button {
display: inline-flex;
align-items: center;
padding: 16px 45px;
background: var(--primary-color);
color: white;
border-radius: 50px;
text-decoration: none;
transition: all 0.3s ease;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
gap: 10px;
margin-top: 30px;
}
.cta-button:hover {
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(118, 2, 2, 0.3);
background: var(--accent-color);
color: white;
}
footer {
background: var(--secondary-color);
color: white;
padding: 60px 0;
text-align: center;
margin-top: 80px;
}
</style>
</head>
<body>
<header class="hero">
<div class="container">
<h1 class="animate__animated animate__fadeInDown">Postuler</h1>
<p class="animate__animated animate__fadeInUp delay-1">Rejoignez l'aventure Geo Realms Craft</p>
</div>
</header>
<nav class="nav-wrapper">
<div class="container">
<ul class="right hide-on-med-and-down">
<li><a href="index.html" class="waves-effect">Retour à l'accueil</a></li>
</ul>
</div>
</nav>
<section class="section container">
<div class="requirement-card animate__animated animate__fadeIn">
<h2 class="center-align">Conditions requises</h2>
<div class="row">
<div class="col s12 m6">
<h4>📋 Prérequis</h4>
<ul class="browser-default">
<li>Avoir au minimum 18 ans</li>
<li>Avoir un PC correct</li>
<li>Avoir Minecraft Java</li>
<li>Être mature et responsable</li>
</ul>
</div>
<div class="col s12 m6">
<h4>⚠️ Important</h4>
<ul class="browser-default">
<li>Lire attentivement toutes les questions</li>
<li>Répondre honnêtement</li>
<li>Une candidature incomplète sera rejetée</li>
<li>Délai de traitement : jusqu'à 48 heures</li>
</ul>
</div>
</div>
<div class="center-align">
<a href="https://docs.google.com/forms/d/e/1FAIpQLScsze3Xn7BdvFYn5RukknojyA1Bvy6aJU51p6DWzOE2iRzlbQ/viewform?usp=sf_link" target="_blank" class="cta-button">
<svg class="icon" viewBox="0 0 24 24" style="width: 24px; height: 24px; fill: currentColor;">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
</svg>
Remplir le formulaire
</a>
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2025 Geo Realms Craft - Tous droits réservés</p>
<p>Contact : <a href="https://discord.gg/uP7cDES" class="white-text">Discord Ebony</a></p>
</div>
</footer>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.15 });
document.querySelectorAll('.section').forEach(section => {
observer.observe(section);
});
M.AutoInit();
});
</script>
</body>
</html>