From 72c25f9d7611937b7102ae29e8d1dfff18d3f96e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Oct 2025 13:58:14 +0000 Subject: [PATCH 1/5] Initial plan From 0f41e73ceaad914e5b143b8ca3ff10ebff7e8a6e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Oct 2025 14:05:04 +0000 Subject: [PATCH 2/5] Add documentation website structure with home and commands pages Co-authored-by: MatisseAD <84678307+MatisseAD@users.noreply.github.com> --- docs/assets/css/style.css | 614 ++++++++++++++++++++++++++++++++++++++ docs/assets/js/main.js | 187 ++++++++++++ docs/commands.html | 401 +++++++++++++++++++++++++ docs/index.html | 324 ++++++++++++++++++++ 4 files changed, 1526 insertions(+) create mode 100644 docs/assets/css/style.css create mode 100644 docs/assets/js/main.js create mode 100644 docs/commands.html create mode 100644 docs/index.html diff --git a/docs/assets/css/style.css b/docs/assets/css/style.css new file mode 100644 index 0000000..12a0da8 --- /dev/null +++ b/docs/assets/css/style.css @@ -0,0 +1,614 @@ +/* Reset and Base Styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary-color: #e74c3c; + --secondary-color: #3498db; + --dark-color: #2c3e50; + --light-color: #ecf0f1; + --success-color: #27ae60; + --warning-color: #f39c12; + --danger-color: #e74c3c; + --text-color: #333; + --text-light: #7f8c8d; + --border-color: #ddd; + --shadow: 0 2px 10px rgba(0,0,0,0.1); + --shadow-hover: 0 4px 20px rgba(0,0,0,0.15); +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + line-height: 1.6; + color: var(--text-color); + background-color: #f8f9fa; +} + +/* Navbar */ +.navbar { + background: linear-gradient(135deg, var(--primary-color), #c0392b); + box-shadow: var(--shadow); + position: sticky; + top: 0; + z-index: 1000; +} + +.nav-container { + max-width: 1200px; + margin: 0 auto; + padding: 1rem 2rem; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-brand { + color: white; + font-size: 1.5rem; + font-weight: bold; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.nav-brand i { + font-size: 1.8rem; +} + +.nav-links { + display: flex; + gap: 2rem; +} + +.nav-links a { + color: white; + text-decoration: none; + font-weight: 500; + transition: opacity 0.3s; + padding: 0.5rem 1rem; + border-radius: 5px; +} + +.nav-links a:hover, +.nav-links a.active { + background-color: rgba(255, 255, 255, 0.2); +} + +.language-selector { + display: flex; + align-items: center; + gap: 0.5rem; + color: white; +} + +.language-selector select { + background-color: rgba(255, 255, 255, 0.2); + color: white; + border: 1px solid rgba(255, 255, 255, 0.3); + padding: 0.5rem 1rem; + border-radius: 5px; + cursor: pointer; + font-size: 0.9rem; +} + +.language-selector select option { + background-color: var(--dark-color); + color: white; +} + +/* Hero Section */ +.hero { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 5rem 2rem; + text-align: center; +} + +.hero-content { + max-width: 900px; + margin: 0 auto; +} + +.hero-title { + font-size: 3.5rem; + margin-bottom: 1rem; + font-weight: 800; + text-shadow: 2px 2px 4px rgba(0,0,0,0.2); +} + +.hero-subtitle { + font-size: 1.8rem; + margin-bottom: 1.5rem; + font-weight: 300; +} + +.hero-description { + font-size: 1.1rem; + margin-bottom: 2rem; + opacity: 0.95; + line-height: 1.8; +} + +.hero-buttons { + display: flex; + gap: 1rem; + justify-content: center; + margin-bottom: 3rem; +} + +.btn { + padding: 1rem 2rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + transition: all 0.3s; + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +.btn-primary { + background-color: var(--primary-color); + color: white; +} + +.btn-primary:hover { + background-color: #c0392b; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(0,0,0,0.3); +} + +.btn-secondary { + background-color: rgba(255, 255, 255, 0.2); + color: white; + border: 2px solid white; +} + +.btn-secondary:hover { + background-color: white; + color: var(--primary-color); +} + +.hero-stats { + display: flex; + justify-content: center; + gap: 3rem; + margin-top: 3rem; +} + +.stat { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.5rem; +} + +.stat i { + font-size: 2rem; + opacity: 0.9; +} + +.stat-value { + font-size: 1.3rem; + font-weight: 700; +} + +.stat-label { + font-size: 0.9rem; + opacity: 0.8; +} + +/* Container and Sections */ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 2rem; +} + +.section { + padding: 4rem 0; +} + +.section-title { + text-align: center; + font-size: 2.5rem; + margin-bottom: 3rem; + color: var(--dark-color); + position: relative; +} + +.section-title::after { + content: ''; + display: block; + width: 80px; + height: 4px; + background: linear-gradient(to right, var(--primary-color), var(--secondary-color)); + margin: 1rem auto; + border-radius: 2px; +} + +.bg-light { + background-color: white; + margin: 0 -2rem; + padding: 4rem 2rem; +} + +/* Features Grid */ +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: white; + padding: 2rem; + border-radius: 12px; + box-shadow: var(--shadow); + transition: all 0.3s; + text-align: center; +} + +.feature-card:hover { + transform: translateY(-5px); + box-shadow: var(--shadow-hover); +} + +.feature-icon { + width: 80px; + height: 80px; + margin: 0 auto 1.5rem; + background: linear-gradient(135deg, var(--primary-color), #c0392b); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: white; + font-size: 2rem; +} + +.feature-card h3 { + margin-bottom: 1rem; + color: var(--dark-color); + font-size: 1.3rem; +} + +.feature-card p { + color: var(--text-light); + line-height: 1.6; +} + +/* Quick Start */ +.quick-start-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; +} + +.quick-start-step { + background: white; + padding: 2rem; + border-radius: 12px; + box-shadow: var(--shadow); + text-align: center; + position: relative; +} + +.step-number { + width: 50px; + height: 50px; + background: linear-gradient(135deg, var(--primary-color), #c0392b); + color: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.5rem; + font-weight: bold; + margin: 0 auto 1rem; +} + +.quick-start-step h3 { + margin-bottom: 1rem; + color: var(--dark-color); +} + +.quick-start-step code { + background-color: var(--light-color); + padding: 0.3rem 0.6rem; + border-radius: 4px; + font-family: 'Courier New', monospace; + color: var(--primary-color); +} + +/* Gameplay Section */ +.gameplay-content { + display: grid; + gap: 2rem; +} + +.gameplay-item { + background: white; + padding: 2rem; + border-radius: 12px; + box-shadow: var(--shadow); +} + +.gameplay-item h3 { + color: var(--dark-color); + margin-bottom: 1rem; + font-size: 1.4rem; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.gameplay-item h3 i { + color: var(--primary-color); +} + +.gameplay-item ul, +.gameplay-item ol { + margin-left: 2rem; + margin-top: 1rem; +} + +.gameplay-item li { + margin-bottom: 0.5rem; + color: var(--text-light); +} + +/* Compatibility Section */ +.compatibility-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.compatibility-card { + background: white; + padding: 2rem; + border-radius: 12px; + box-shadow: var(--shadow); +} + +.compatibility-card h3 { + color: var(--dark-color); + margin-bottom: 1.5rem; + font-size: 1.3rem; + border-bottom: 2px solid var(--light-color); + padding-bottom: 0.5rem; +} + +.compatibility-list { + list-style: none; +} + +.compatibility-list li { + padding: 0.5rem 0; + color: var(--text-light); +} + +.compatibility-list i { + margin-right: 0.5rem; +} + +.compatibility-list .fa-check-circle { + color: var(--success-color); +} + +.compatibility-list .fa-info-circle { + color: var(--secondary-color); +} + +.compatibility-list .fa-star { + color: var(--warning-color); +} + +/* Resources Grid */ +.resources-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; +} + +.resource-card { + background: white; + padding: 2rem; + border-radius: 12px; + box-shadow: var(--shadow); + text-decoration: none; + color: var(--text-color); + text-align: center; + transition: all 0.3s; + display: block; +} + +.resource-card:hover { + transform: translateY(-5px); + box-shadow: var(--shadow-hover); +} + +.resource-card i { + font-size: 3rem; + color: var(--primary-color); + margin-bottom: 1rem; +} + +.resource-card h3 { + margin-bottom: 0.5rem; + color: var(--dark-color); +} + +.resource-card p { + color: var(--text-light); + font-size: 0.9rem; +} + +/* Footer */ +.footer { + background-color: var(--dark-color); + color: white; + padding: 3rem 2rem 1rem; + margin-top: 4rem; +} + +.footer-content { + max-width: 1200px; + margin: 0 auto; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + margin-bottom: 2rem; +} + +.footer-section h4 { + margin-bottom: 1rem; + color: var(--primary-color); +} + +.footer-section ul { + list-style: none; +} + +.footer-section ul li { + margin-bottom: 0.5rem; +} + +.footer-section a { + color: #bdc3c7; + text-decoration: none; + transition: color 0.3s; +} + +.footer-section a:hover { + color: white; +} + +.version { + color: var(--text-light); + font-size: 0.9rem; +} + +.footer-bottom { + text-align: center; + padding-top: 2rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + color: #95a5a6; +} + +/* Responsive Design */ +@media (max-width: 768px) { + .nav-container { + flex-direction: column; + gap: 1rem; + } + + .nav-links { + flex-direction: column; + gap: 0.5rem; + text-align: center; + } + + .hero-title { + font-size: 2.5rem; + } + + .hero-subtitle { + font-size: 1.3rem; + } + + .hero-stats { + flex-direction: column; + gap: 1.5rem; + } + + .hero-buttons { + flex-direction: column; + } + + .features-grid, + .quick-start-grid, + .compatibility-grid, + .resources-grid { + grid-template-columns: 1fr; + } +} + +/* Code Blocks */ +pre { + background-color: #f4f4f4; + padding: 1rem; + border-radius: 8px; + overflow-x: auto; + margin: 1rem 0; +} + +code { + font-family: 'Courier New', Courier, monospace; + background-color: var(--light-color); + padding: 0.2rem 0.4rem; + border-radius: 4px; + font-size: 0.9em; +} + +/* Tables */ +table { + width: 100%; + border-collapse: collapse; + margin: 2rem 0; + background: white; + border-radius: 8px; + overflow: hidden; + box-shadow: var(--shadow); +} + +thead { + background: linear-gradient(135deg, var(--primary-color), #c0392b); + color: white; +} + +th, td { + padding: 1rem; + text-align: left; +} + +tbody tr:nth-child(even) { + background-color: var(--light-color); +} + +tbody tr:hover { + background-color: #e8f4f8; +} + +/* Utility Classes */ +.text-center { + text-align: center; +} + +.mt-2 { + margin-top: 2rem; +} + +.mb-2 { + margin-bottom: 2rem; +} + +/* Animations */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.fade-in { + animation: fadeIn 0.6s ease-out; +} diff --git a/docs/assets/js/main.js b/docs/assets/js/main.js new file mode 100644 index 0000000..5b82f8f --- /dev/null +++ b/docs/assets/js/main.js @@ -0,0 +1,187 @@ +// Language switcher functionality +function changeLanguage(lang) { + const currentPage = window.location.pathname.split('/').pop() || 'index.html'; + const pageName = currentPage.replace('.html', ''); + + // Store language preference + localStorage.setItem('preferredLanguage', lang); + + // Redirect to language-specific page + if (lang !== 'en') { + window.location.href = `${lang}/${pageName}.html`; + } else { + // English is the default, no subfolder + window.location.href = `${pageName}.html`; + } +} + +// Set language selector to current language on page load +document.addEventListener('DOMContentLoaded', function() { + const preferredLang = localStorage.getItem('preferredLanguage') || 'en'; + const langSelect = document.getElementById('lang-select'); + + if (langSelect) { + // Detect current language from URL + const currentPath = window.location.pathname; + const langMatch = currentPath.match(/\/(en|fr|es|de|it|ru|zh|kr|pt)\//); + const currentLang = langMatch ? langMatch[1] : 'en'; + + langSelect.value = currentLang; + } + + // Add smooth scrolling to all links + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + const target = document.querySelector(this.getAttribute('href')); + if (target) { + target.scrollIntoView({ + behavior: 'smooth', + block: 'start' + }); + } + }); + }); + + // Add fade-in animation to sections on scroll + const observerOptions = { + threshold: 0.1, + rootMargin: '0px 0px -50px 0px' + }; + + const observer = new IntersectionObserver(function(entries) { + entries.forEach(entry => { + if (entry.isIntersecting) { + entry.target.classList.add('fade-in'); + observer.unobserve(entry.target); + } + }); + }, observerOptions); + + document.querySelectorAll('.section').forEach(section => { + observer.observe(section); + }); + + // Mobile menu toggle (if needed in future) + const navToggle = document.querySelector('.nav-toggle'); + const navLinks = document.querySelector('.nav-links'); + + if (navToggle) { + navToggle.addEventListener('click', function() { + navLinks.classList.toggle('active'); + }); + } + + // Copy code blocks on click + document.querySelectorAll('pre code').forEach(block => { + block.addEventListener('click', function() { + const text = this.textContent; + navigator.clipboard.writeText(text).then(function() { + // Show copied notification + const notification = document.createElement('div'); + notification.textContent = 'Copied!'; + notification.style.cssText = 'position:fixed;top:20px;right:20px;background:#27ae60;color:white;padding:1rem 2rem;border-radius:8px;z-index:9999;'; + document.body.appendChild(notification); + setTimeout(() => notification.remove(), 2000); + }); + }); + }); +}); + +// Search functionality (basic implementation) +function initSearch() { + const searchInput = document.getElementById('search-input'); + if (!searchInput) return; + + searchInput.addEventListener('input', function(e) { + const query = e.target.value.toLowerCase(); + const searchResults = document.getElementById('search-results'); + + if (query.length < 2) { + searchResults.innerHTML = ''; + return; + } + + // Simple search implementation - can be enhanced with a proper search library + const allContent = document.querySelectorAll('section, .feature-card, .resource-card'); + const results = []; + + allContent.forEach(element => { + const text = element.textContent.toLowerCase(); + if (text.includes(query)) { + const title = element.querySelector('h2, h3')?.textContent || 'Result'; + results.push({ + title: title, + element: element + }); + } + }); + + displaySearchResults(results, searchResults); + }); +} + +function displaySearchResults(results, container) { + if (results.length === 0) { + container.innerHTML = '

No results found

'; + return; + } + + container.innerHTML = results.slice(0, 5).map(result => ` +
+

${result.title}

+
+ `).join(''); +} + +function scrollToElement(id) { + const element = document.getElementById(id); + if (element) { + element.scrollIntoView({ behavior: 'smooth' }); + } +} + +// Initialize search when DOM is ready +document.addEventListener('DOMContentLoaded', initSearch); + +// Back to top button +function addBackToTopButton() { + const button = document.createElement('button'); + button.innerHTML = ''; + button.className = 'back-to-top'; + button.style.cssText = ` + position: fixed; + bottom: 20px; + right: 20px; + width: 50px; + height: 50px; + border-radius: 50%; + background: linear-gradient(135deg, #e74c3c, #c0392b); + color: white; + border: none; + cursor: pointer; + display: none; + align-items: center; + justify-content: center; + font-size: 1.2rem; + box-shadow: 0 4px 10px rgba(0,0,0,0.2); + z-index: 1000; + transition: all 0.3s; + `; + + button.addEventListener('click', function() { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + + window.addEventListener('scroll', function() { + if (window.pageYOffset > 300) { + button.style.display = 'flex'; + } else { + button.style.display = 'none'; + } + }); + + document.body.appendChild(button); +} + +document.addEventListener('DOMContentLoaded', addBackToTopButton); diff --git a/docs/commands.html b/docs/commands.html new file mode 100644 index 0000000..443ffcd --- /dev/null +++ b/docs/commands.html @@ -0,0 +1,401 @@ + + + + + + Commands - ReanimateMC Documentation + + + + + + +
+
+

Commands Reference

+

+ Complete list of all available commands in ReanimateMC +

+ +
+

Command Overview

+

+ All ReanimateMC commands start with /reanimatemc or the shorter alias /rmc. + Commands are organized by category: Administrative, Player Management, NPC System, and Utility commands. +

+
+ +
+

Administrative Commands

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandDescriptionPermissionUsage
/reanimatemc reloadReload plugin configuration and language filesreanimatemc.admin/reanimatemc reload
/reanimatemc configOpen GUI configuration interfacereanimatemc.admin/reanimatemc config
/reanimatemc setupMark initial setup as completereanimatemc.admin/reanimatemc setup
+ +
+

Administrative Commands Details

+ +

/reanimatemc reload

+

Purpose: Reloads all configuration files and language files without restarting the server.

+

When to use: After making changes to config.yml or language files.

+

Example:

+
/reanimatemc reload
+

Output: "Configuration and language reloaded!"

+ +

/reanimatemc config

+

Purpose: Opens an interactive GUI where you can configure all plugin settings.

+

Features:

+
    +
  • Toggle features on/off
  • +
  • Modify numeric values (durations, cooldowns, etc.)
  • +
  • Change required items
  • +
  • Real-time configuration preview
  • +
  • Save/Reset functionality
  • +
+

Example:

+
/reanimatemc config
+
+
+ +
+

Player Management Commands

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandDescriptionPermissionUsage
/reanimatemc reviveForcefully revive a KO'd playerreanimatemc.admin/reanimatemc revive <player>
/reanimatemc knockoutForce a player into KO statereanimatemc.admin/reanimatemc knockout <player> [duration]
/reanimatemc statusCheck a player's current statereanimatemc.status/reanimatemc status <player>
/reanimatemc crawlToggle crawling mode (KO'd players only)reanimatemc.crawl/reanimatemc crawl
+ +
+

Player Management Commands Details

+ +

/reanimatemc revive <player>

+

Purpose: Instantly revives a knocked-out player without requiring items or time.

+

Parameters:

+
    +
  • <player> - The name of the KO'd player to revive (required)
  • +
+

Examples:

+
/reanimatemc revive Steve
+/rmc revive PlayerName
+ +

/reanimatemc knockout <player> [duration]

+

Purpose: Forces a player into KO state, useful for testing or punishment.

+

Parameters:

+
    +
  • <player> - The name of the player to KO (required)
  • +
  • [duration] - KO duration in seconds (optional, defaults to config value)
  • +
+

Examples:

+
/reanimatemc knockout Steve
+/reanimatemc knockout Steve 60
+/rmc knockout PlayerName 45
+ +

/reanimatemc status <player>

+

Purpose: Displays whether a player is currently in KO state or alive.

+

Parameters:

+
    +
  • <player> - The name of the player to check (required)
  • +
+

Examples:

+
/reanimatemc status Steve
+/rmc status PlayerName
+

Output: "Steve is K.O." or "Steve is Alive/Normal"

+ +

/reanimatemc crawl

+

Purpose: Allows KO'd players to toggle between immobilized and crawling states.

+

Note: Can only be used by players who are currently KO'd.

+

Examples:

+
/reanimatemc crawl
+/rmc crawl
+

Output: "Crawl mode enabled" or "Crawl mode disabled"

+
+
+ +
+

NPC System Commands

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandDescriptionPermissionUsage
/reanimatemc summonSummon an NPC reanimatorreanimatemc.summon/reanimatemc summon <type> [player]
/reanimatemc dismissDismiss your NPCsreanimatemc.summon/reanimatemc dismiss all
/reanimatemc npcsList your active NPCsreanimatemc.summon/reanimatemc npcs
+ +
+

NPC System Commands Details

+ +

/reanimatemc summon <type> [player]

+

Purpose: Summons an AI-controlled NPC that can revive KO'd players.

+

Parameters:

+
    +
  • <type> - NPC type: golem, healer, or protector (required)
  • +
  • [player] - Target player to revive (optional)
  • +
+

NPC Types:

+
    +
  • golem - Standard reanimator, follows owner and revives KO'd players
  • +
  • healer - Specialized reanimator with healing focus
  • +
  • protector - Reanimator that also attacks hostile mobs
  • +
+

Examples:

+
/reanimatemc summon golem
+/reanimatemc summon healer Steve
+/reanimatemc summon protector
+/rmc summon golem PlayerName
+

Requirements:

+
    +
  • Specific permission for each NPC type
  • +
  • Respects cooldowns (default 5 minutes)
  • +
  • Maximum summons per player (default: 1)
  • +
  • May require specific item if configured
  • +
+ +

/reanimatemc dismiss all

+

Purpose: Dismisses all your active NPCs.

+

Examples:

+
/reanimatemc dismiss all
+/rmc dismiss all
+

Output: "Dismissed X NPC(s)."

+ +

/reanimatemc npcs

+

Purpose: Shows a list of all your currently active NPCs with their types and ages.

+

Examples:

+
/reanimatemc npcs
+/rmc npcs
+
+
+ +
+

Utility Commands

+ + + + + + + + + + + + + + + + + + +
CommandDescriptionPermissionUsage
/reanimatemc removeGlowingEffectRemove glowing effect from a playerreanimatemc.removeGlowingEffect/reanimatemc removeGlowingEffect <player>
+ +
+

Utility Commands Details

+ +

/reanimatemc removeGlowingEffect <player>

+

Purpose: Removes the glowing effect from a player if they're stuck with it.

+

Parameters:

+
    +
  • <player> - The name of the player (required)
  • +
+

Examples:

+
/reanimatemc removeGlowingEffect Steve
+/rmc removeGlowingEffect PlayerName
+
+
+ +
+

Command Aliases

+ +
+

For convenience, you can use the shorter alias /rmc instead of /reanimatemc:

+
/rmc reload
+/rmc config
+/rmc revive Steve
+/rmc summon golem
+/rmc status PlayerName
+
+
+ +
+

Quick Reference

+ +
+
+
+ +
+

Admin Commands

+

Configuration, reload, and setup commands require reanimatemc.admin permission.

+
+
+
+ +
+

Player Commands

+

Status and crawl commands are available to all players by default.

+
+
+
+ +
+

NPC Commands

+

Summon commands require specific permissions per NPC type.

+
+
+
+ +
+ + View Permissions + + + Configuration Guide + +
+
+
+ + + + + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..b55106f --- /dev/null +++ b/docs/index.html @@ -0,0 +1,324 @@ + + + + + + ReanimateMC - Documentation + + + + + + +
+
+

ReanimateMC

+

Transform your server's death system

+

+ A revolutionary Minecraft plugin that introduces a KO (Knockout) state instead of instant death. + Players can be revived by teammates or executed by enemies, creating dynamic and strategic gameplay. +

+ +
+
+ + Minecraft 1.20.1+ + Server Version +
+
+ + 9 Languages + Supported +
+
+ + Full API + For Developers +
+
+
+
+ +
+
+

Core Features

+
+
+
+ +
+

KO System

+

Players enter a knockout state instead of dying instantly when health reaches zero.

+
+
+
+ +
+

Revival Mechanics

+

Teammates can revive KO'd players using special items and the right technique.

+
+
+
+ +
+

Execution System

+

Option to permanently eliminate KO'd players by executing them.

+
+
+
+ +
+

Crawling Mode

+

KO'd players can toggle between immobilized and slow crawling states.

+
+
+
+ +
+

NPC Summons

+

Summon AI-controlled NPCs that can revive KO'd players and provide protection.

+
+
+
+ +
+

Distress Signals

+

KO'd players can send distress beacons to alert nearby teammates.

+
+
+
+ +
+

Offline KO Timer

+

KO countdown continues even when players disconnect from the server.

+
+
+
+ +
+

GUI Configuration

+

Easy-to-use in-game interface for configuring all plugin settings.

+
+
+
+ +
+

Multi-Language

+

Complete translations in 9+ languages for global server compatibility.

+
+
+
+ +
+

Quick Start

+
+
+
1
+

Installation

+

Download ReanimateMC.jar and place it in your server's plugins/ directory.

+
+
+
2
+

Restart Server

+

Restart your server or use a plugin manager to load ReanimateMC.

+
+
+
3
+

Configure

+

Use /reanimatemc config to open the GUI and customize settings.

+
+
+
4
+

Play!

+

Your server now has the KO system active. Players will enter KO state instead of dying.

+
+
+
+ +
+

How It Works

+
+
+

Entering KO State

+

When a player's health reaches zero, instead of dying, they enter a knockout state:

+
    +
  • Player lies down and becomes immobilized (or can crawl)
  • +
  • Optional visual effects: blindness, particles, glowing
  • +
  • Timer starts counting down (default: 30 seconds)
  • +
  • Can be revived, executed, or will die when timer expires
  • +
+
+ +
+

Revival Process

+

To revive a KO'd player:

+
    +
  1. Approach the KO'd player
  2. +
  3. Crouch (Shift key)
  4. +
  5. Hold the required item (default: Golden Apple)
  6. +
  7. Wait for the revival progress to complete (default: 5 seconds)
  8. +
  9. Both players must remain still during revival
  10. +
+
+ +
+

Execution

+

Any player can execute a KO'd player:

+
    +
  • Left-click on the KO'd player
  • +
  • Hold for the configured duration (default: 2 seconds)
  • +
  • Results in permanent death
  • +
  • Optional broadcast message to server
  • +
+
+ +
+

Distress Signal

+

KO'd players can call for help:

+
    +
  • Press F (swap hands key) while KO'd
  • +
  • Creates a beacon at your location
  • +
  • Broadcasts coordinates to nearby players
  • +
  • One-time use per KO
  • +
+
+
+
+ +
+

Compatibility

+
+
+

Server Software

+
    +
  • Spigot
  • +
  • Paper (Recommended)
  • +
  • Bukkit
  • +
  • Purpur
  • +
+
+
+

Minecraft Versions

+
    +
  • Minimum: 1.20.1
  • +
  • Recommended: 1.20.4+
  • +
  • Latest: 1.21.x
  • +
+
+
+

Plugin Integration

+
    +
  • WorldGuard
  • +
  • EssentialsX
  • +
  • mcMMO
  • +
  • Citizens
  • +
  • MythicMobs
  • +
+
+
+
+ +
+

Resources

+ +
+
+ + + + + + From 0db10cef167fb90ba5eae5ad30264fd0618b690b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Oct 2025 14:11:56 +0000 Subject: [PATCH 3/5] Add complete English documentation pages (commands, permissions, config, NPC, API) Co-authored-by: MatisseAD <84678307+MatisseAD@users.noreply.github.com> --- docs/api.html | 470 ++++++++++++++++++++++++++++++++++++++ docs/configuration.html | 487 +++++++++++++++++++++++++++++++++++++++ docs/npc-system.html | 370 ++++++++++++++++++++++++++++++ docs/permissions.html | 491 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1818 insertions(+) create mode 100644 docs/api.html create mode 100644 docs/configuration.html create mode 100644 docs/npc-system.html create mode 100644 docs/permissions.html diff --git a/docs/api.html b/docs/api.html new file mode 100644 index 0000000..09e7daf --- /dev/null +++ b/docs/api.html @@ -0,0 +1,470 @@ + + + + + + Developer API - ReanimateMC Documentation + + + + + + +
+
+

Developer API

+

+ Integrate ReanimateMC into your plugins +

+ +
+

API Overview

+

+ ReanimateMC provides a comprehensive API for developers to integrate the KO system into their plugins. + You can listen to events, access the KO manager, and programmatically control the KO state of players. +

+
+ +
+

Getting Started

+ +
+

Adding ReanimateMC as a Dependency

+ +

plugin.yml

+
name: YourPlugin
+version: 1.0.0
+depend: [ReanimateMC]
+# or for optional dependency
+# softdepend: [ReanimateMC]
+ +

Maven (pom.xml)

+
<dependencies>
+    <dependency>
+        <groupId>fr.jachou</groupId>
+        <artifactId>ReanimateMC</artifactId>
+        <version>1.2.02</version>
+        <scope>provided</scope>
+    </dependency>
+</dependencies>
+ +

Gradle (build.gradle)

+
dependencies {
+    compileOnly 'fr.jachou:ReanimateMC:1.2.02'
+}
+
+ +
+

Basic Plugin Setup

+
import fr.jachou.reanimatemc.ReanimateMC;
+import fr.jachou.reanimatemc.managers.KOManager;
+
+public class YourPlugin extends JavaPlugin {
+    private ReanimateMC reanimateMC;
+    private KOManager koManager;
+    
+    @Override
+    public void onEnable() {
+        // Get ReanimateMC instance
+        reanimateMC = (ReanimateMC) getServer()
+            .getPluginManager().getPlugin("ReanimateMC");
+        
+        if (reanimateMC == null) {
+            getLogger().warning("ReanimateMC not found!");
+            return;
+        }
+        
+        // Get KO Manager
+        koManager = reanimateMC.getKoManager();
+        
+        // Register event listeners
+        getServer().getPluginManager()
+            .registerEvents(new YourEventListener(), this);
+    }
+}
+
+
+ +
+

Events API

+ +
+

PlayerKOEvent

+

Fired when a player enters the KO state.

+ +

Methods:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodReturn TypeDescription
getPlayer()PlayerThe player entering KO state
getDuration()intKO duration in seconds
isCancelled()booleanCheck if event is cancelled
setCancelled(boolean)voidCancel the KO event
+ +

Example Usage:

+
@EventHandler
+public void onPlayerKO(PlayerKOEvent event) {
+    Player player = event.getPlayer();
+    int duration = event.getDuration();
+    
+    // Custom logic when player enters KO
+    if (player.hasPermission("server.vip")) {
+        // VIP players get longer KO duration
+        // Note: Cannot modify duration directly
+        getLogger().info(player.getName() + " is VIP, extending KO");
+    }
+    
+    // Cancel KO for staff members
+    if (player.hasPermission("server.staff")) {
+        event.setCancelled(true);
+        player.sendMessage("Staff bypass: KO cancelled");
+    }
+    
+    // Notify team members
+    notifyTeam(player, duration);
+}
+
+ +
+

PlayerReanimatedEvent

+

Fired when a player is revived from KO state.

+ +

Methods:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodReturn TypeDescription
getPlayer()PlayerThe player being revived
getReanimator()PlayerPlayer performing revival (can be null)
isSuccessful()booleanWhether revival was successful
getTimestamp()longTimestamp of revival attempt
getPlayerName()StringName of revived player
getReanimatorName()StringName of reanimator (or "Unknown")
+ +

Example Usage:

+
@EventHandler
+public void onPlayerRevived(PlayerReanimatedEvent event) {
+    Player patient = event.getPlayer();
+    Player medic = event.getReanimator();
+    boolean successful = event.isSuccessful();
+    
+    if (!successful) return;
+    
+    // Reward the medic
+    if (medic != null) {
+        // Give XP
+        medic.giveExp(50);
+        
+        // Economy reward (if you have Vault)
+        economy.depositPlayer(medic, 100.0);
+        
+        // Send message
+        medic.sendMessage(ChatColor.GREEN + 
+            "You saved " + patient.getName() + "!");
+        
+        // Add to statistics
+        addToStats(medic, "revivals_performed");
+    }
+    
+    // Log the revival
+    logRevival(patient, medic, event.getTimestamp());
+}
+
+
+ +
+

KOManager API

+ +
+

Manager Methods

+

The KOManager provides methods to interact with the KO system programmatically.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodDescription
isKO(Player player)Check if player is currently in KO state
getKOData(Player player)Get KOData object for player (can be null)
setKO(Player player)Set player to KO state (default duration)
setKO(Player player, int seconds)Set player to KO for specific duration
revive(Player target, Player reviver)Revive a KO'd player
execute(Player player)Execute a KO'd player (permanent death)
toggleCrawl(Player player)Toggle crawling mode for KO'd player
sendDistress(Player player)Send distress signal for KO'd player
handleLogout(Player player)Handle player logout while KO'd
pullOfflineKO(UUID uuid)Get remaining KO time for offline player
+
+ +
+

Example Usage:

+
// Check if player is KO'd
+if (koManager.isKO(player)) {
+    player.sendMessage("You are currently KO'd!");
+}
+
+// Force KO a player
+koManager.setKO(player, 30); // 30 seconds
+
+// Revive a player
+if (koManager.isKO(target)) {
+    koManager.revive(target, reviverPlayer);
+}
+
+// Execute a KO'd player
+if (koManager.isKO(target)) {
+    koManager.execute(target);
+}
+
+// Get KO data
+KOData koData = koManager.getKOData(player);
+if (koData != null && koData.isKo()) {
+    // Player is KO'd, access KO-specific data
+    long endTime = koData.getEndTimestamp();
+    boolean crawling = koData.isCrawling();
+}
+
+
+ +
+

Integration Examples

+ +
+
+

Economy Integration

+
@EventHandler
+public void onRevive(PlayerReanimatedEvent e) {
+    if (e.isSuccessful() && e.getReanimator() != null) {
+        Player medic = e.getReanimator();
+        economy.depositPlayer(medic, 100.0);
+        medic.sendMessage("§a+$100 for revival!");
+    }
+}
+
+ +
+

Team System

+
@EventHandler
+public void onRevive(PlayerReanimatedEvent e) {
+    Player patient = e.getPlayer();
+    Player medic = e.getReanimator();
+    
+    if (medic == null) return;
+    
+    String patientTeam = getTeam(patient);
+    String medicTeam = getTeam(medic);
+    
+    if (!patientTeam.equals(medicTeam)) {
+        medic.sendMessage("§cNot your team!");
+        // Note: Event isn't cancellable
+    }
+}
+
+ +
+

Achievement System

+
@EventHandler
+public void onRevive(PlayerReanimatedEvent e) {
+    if (e.isSuccessful() && e.getReanimator() != null) {
+        Player medic = e.getReanimator();
+        int revivals = incrementStat(medic, "revivals");
+        
+        if (revivals == 10) {
+            giveAchievement(medic, "First Aid");
+        } else if (revivals == 100) {
+            giveAchievement(medic, "Guardian Angel");
+        }
+    }
+}
+
+
+
+ +
+

Best Practices

+ +
+

Recommended Practices

+
    +
  • Null checks: Always check if getReanimator() returns null
  • +
  • KO verification: Use isKO() before KO operations
  • +
  • Event priorities: Use appropriate priorities for event handlers
  • +
  • Cache managers: Store manager references instead of fetching repeatedly
  • +
  • Soft dependencies: Use softdepend if ReanimateMC is optional
  • +
+
+ +
+

Common Pitfalls

+
    +
  • Missing null check: getReanimator() can return null (command usage, NPC revival)
  • +
  • Wrong event priority: Use HIGH/HIGHEST if you need to cancel before other plugins
  • +
  • Direct field access: Always use getter methods, don't access fields directly
  • +
  • Forgetting soft dependency: Declare in plugin.yml to avoid load order issues
  • +
+
+
+ +
+ + NPC System + + + Back to Home + +
+
+
+ + + + + + diff --git a/docs/configuration.html b/docs/configuration.html new file mode 100644 index 0000000..e3e800b --- /dev/null +++ b/docs/configuration.html @@ -0,0 +1,487 @@ + + + + + + Configuration - ReanimateMC Documentation + + + + + + +
+
+

Configuration Guide

+

+ Complete guide to configuring ReanimateMC +

+ +
+

Configuration Overview

+

+ ReanimateMC can be configured in two ways: +

+
    +
  • GUI Configuration: Use /reanimatemc config for an intuitive in-game interface
  • +
  • File Configuration: Edit plugins/ReanimateMC/config.yml directly
  • +
+

+ After making changes to config.yml manually, use /reanimatemc reload to apply them. +

+
+ +
+

General Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
language"en"Plugin language (en, fr, es, de, it, ru, zh, kr, pt)
first_runtrueWhether this is the first run of the plugin
setup_completedfalseWhether initial setup has been completed
+
+ +
+

Revival System (reanimation)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
require_special_itemtrueWhether reviving requires holding a special item
required_itemGOLDEN_APPLEItem required for revival (Minecraft material name)
duration_ticks100Time to complete revival (20 ticks = 1 second)
health_restored4Hearts restored after revival (2 = 1 heart)
cooldown60Cooldown between revivals in seconds
revive_cooldown60Personal revival cooldown for the revived player
+ +
+

Example Configuration

+
reanimation:
+  require_special_item: true
+  required_item: GOLDEN_APPLE
+  duration_ticks: 100      # 5 seconds
+  health_restored: 4       # 2 hearts
+  cooldown: 60             # 1 minute
+  revive_cooldown: 60      # 1 minute
+
+
+ +
+

KO System (knockout)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
enabledtrueEnable/disable the KO system entirely
duration_seconds30How long KO lasts before death
movement_disabledtrueDisable movement during KO (except crawl)
use_particlestrueShow particles around KO'd players
heartbeat_soundtruePlay heartbeat sound during KO
blindnesstrueApply blindness effect to KO'd players
suicide_hold_seconds3Hold shift time to commit suicide while KO'd
weakness_level1Weakness effect level (0 to disable)
fatigue_level1Mining fatigue level (0 to disable)
+
+ +
+

Execution System (execution)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
enabledtrueEnable/disable execution system
hold_duration_ticks40Hold time to execute (20 ticks = 1 second)
message_broadcasttrueBroadcast execution messages to server
+
+ +
+

Revival Effects (effects_on_revive)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
nausea5Nausea duration in seconds (0 to disable)
slowness10Slowness duration in seconds (0 to disable)
resistance10Resistance duration in seconds (0 to disable)
+
+ +
+

Crawling System (prone)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
enabledtrueEnable prone/crawling mechanics
allow_crawltrueAllow KO'd players to crawl
crawl_slowness_level5Slowness level when crawling
auto_crawlfalseAutomatically enable crawling on KO
+
+ +
+

Other Settings

+ + + + + + + + + + + + + + + + + + + + + + + + +
CategorySettingDefaultDescription
lootingenabledtrueAllow looting KO'd player inventories
tablistenabledtrueShow [KO] tag in player list
+
+ +
+

NPC System Configuration

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
enabledtrueEnable/disable NPC summon system
max_summons_per_player1Maximum NPCs per player at once
summon_cooldown300Cooldown between summons in seconds (5 min)
offline_timeout300Time before NPC despawns if owner offline (seconds)
require_itemfalseRequire item to summon NPCs
required_itemNETHER_STARItem required for summoning (if enabled)
item_to_summon_golemGOLD_INGOTSpecific item for golem summons
+ +
+

Example NPC Configuration

+
npc_summon:
+  enabled: true
+  max_summons_per_player: 1
+  summon_cooldown: 300        # 5 minutes
+  offline_timeout: 300        # 5 minutes
+  require_item: false
+  required_item: NETHER_STAR
+  item_to_summon_golem: GOLD_INGOT
+
+
+ +
+

Configuration Tips

+ +
+
+
+ +
+

Server Types

+
    +
  • PvP: Short KO duration (20-30s), enable execution
  • +
  • RP: Longer KO (60s+), disable execution, enable crawl
  • +
  • Hardcore: Short KO (15s), expensive revival items
  • +
+
+ +
+
+ +
+

Performance

+
    +
  • Disable particles if lagging
  • +
  • Reduce heartbeat sounds
  • +
  • Lower NPC summon limits
  • +
+
+ +
+
+ +
+

Balance

+
    +
  • Match revival time to server pace
  • +
  • Adjust cooldowns for activity level
  • +
  • Consider item economy for requirements
  • +
+
+
+
+ +
+ + Permissions + + + NPC System + +
+
+
+ + + + + + diff --git a/docs/npc-system.html b/docs/npc-system.html new file mode 100644 index 0000000..9b61b40 --- /dev/null +++ b/docs/npc-system.html @@ -0,0 +1,370 @@ + + + + + + NPC System - ReanimateMC Documentation + + + + + + +
+
+

NPC Summon System

+

+ AI-controlled NPCs that can revive KO'd players and provide protection +

+ +
+

System Overview

+

+ The NPC Summon System allows players to summon AI-controlled NPCs (Iron Golems) that can: +

+
    +
  • Automatically revive KO'd players
  • +
  • Follow and protect their summoner
  • +
  • Attack hostile mobs (Protector type)
  • +
  • Provide healing support (Healer type)
  • +
+
+ +
+

NPC Types

+ +
+
+
+ +
+

Golem (Standard)

+

Permission: reanimatemc.summon.use.golem

+
    +
  • Basic reanimator NPC
  • +
  • Follows summoner
  • +
  • Revives KO'd players
  • +
  • 100 HP base health
  • +
+

Best for: General use, beginners

+
+ +
+
+ +
+

Healer (Medic)

+

Permission: reanimatemc.summon.use.healer

+
    +
  • Specialized in revival
  • +
  • Same as Golem currently
  • +
  • Future: Periodic healing
  • +
  • 100 HP base health
  • +
+

Best for: Support roles, team gameplay

+
+ +
+
+ +
+

Protector (Tank)

+

Permission: reanimatemc.summon.use.protector

+
    +
  • Can revive like Golem
  • +
  • Attacks hostile mobs
  • +
  • 10 block aggro range
  • +
  • 200 HP (double health)
  • +
+

Best for: Combat, exploration, defense

+
+
+
+ +
+

How to Use NPCs

+ +
+
+
1
+

Summon

+

Use /reanimatemc summon <type> to summon an NPC.

+
/rmc summon golem
+/rmc summon healer
+/rmc summon protector
+
+ +
+
2
+

Target Player

+

Optionally specify a player to revive:

+
/rmc summon healer Steve
+

NPC will pathfind to the target and revive them.

+
+ +
+
3
+

NPC Follows

+

NPC follows you automatically after summoning or completing a task.

+

Stays within 10 blocks, stops at 3 blocks distance.

+
+ +
+
4
+

Dismiss

+

Remove your NPCs when done:

+
/rmc dismiss all
+

View active NPCs with /rmc npcs

+
+
+
+ +
+

NPC Behavior

+ +
+

Following Behavior

+
    +
  • Distance > 10 blocks: NPC pathfinds towards owner
  • +
  • Distance < 3 blocks: NPC stops moving
  • +
  • Owner moves away: NPC resumes following
  • +
  • Obstacles: Uses Minecraft pathfinding to navigate
  • +
+
+ +
+

Revival Behavior

+
    +
  • When target is specified, NPC pathfinds to KO'd player
  • +
  • At distance < 3 blocks, NPC initiates revival
  • +
  • Revival uses normal koManager.revive() mechanics
  • +
  • After revival, NPC returns to following owner
  • +
  • Particle effects: Hearts + enchantment sound
  • +
+
+ +
+

Combat Behavior (Protector Only)

+
    +
  • Scans for hostile mobs within 10 blocks
  • +
  • Targets closest hostile mob
  • +
  • Uses vanilla Iron Golem attack mechanics
  • +
  • Returns to following after combat
  • +
  • Higher health (200 HP) for survivability
  • +
+
+
+ +
+

Requirements & Restrictions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RequirementDefaultDescription
Base Permissionreanimatemc.summonRequired for ANY summon command
Type Permissionreanimatemc.summon.use.<type>Specific permission for each NPC type
Cooldown300 seconds (5 min)Time between summons (configurable)
Max Summons1 per playerMaximum active NPCs (configurable)
Item CostDisabledOptional item requirement (configurable)
+
+ +
+

Configuration

+ +
+

NPC System Settings

+
npc_summon:
+  enabled: true                    # Enable/disable system
+  max_summons_per_player: 1        # NPCs per player
+  summon_cooldown: 300             # Cooldown in seconds
+  offline_timeout: 300             # Time before NPC despawns if owner offline
+  require_item: false              # Require item to summon
+  required_item: NETHER_STAR       # Item required (if enabled)
+  item_to_summon_golem: GOLD_INGOT # Specific item for golem
+
+ +
+

Customization Tips

+
    +
  • Free summons: require_item: false
  • +
  • Economy integration: Set require_item: true with expensive items
  • +
  • Multiple NPCs: Increase max_summons_per_player for VIPs
  • +
  • Quick respawn: Reduce summon_cooldown for action servers
  • +
  • Persistent NPCs: Increase offline_timeout significantly
  • +
+
+
+ +
+

Use Cases & Scenarios

+ +
+
+

Emergency Revival

+

Scenario: Player is KO'd during combat far from teammates.

+

Solution:

+
1. Teammate uses:
+   /rmc summon healer KOPlayer
+2. Healer pathfinds to KOPlayer
+3. Automatic revival at distance
+4. KOPlayer saved!
+
+ +
+

Cave Exploration

+

Scenario: Exploring dangerous caves with lots of mobs.

+

Solution:

+
1. Summon Protector:
+   /rmc summon protector
+2. Protector follows you
+3. Attacks hostile mobs
+4. Provides backup safety
+
+ +
+

Team Raids

+

Scenario: Group raiding a dungeon or stronghold.

+

Solution:

+
1. Each player summons:
+   /rmc summon healer
+2. Multiple healers follow
+3. Auto-revive fallen members
+4. Higher success rate
+
+
+
+ +
+

Technical Details

+ +
+

Implementation

+

Architecture: Native Bukkit/Paper implementation (no Citizens2 dependency)

+

Entity Type: Iron Golem with custom behaviors

+

AI: BukkitRunnable tasks for pathfinding and behavior

+

Persistence: NPCs are removed on server restart

+
+ +
+

Features

+
    +
  • Visual customization: Golden name tag with glow effect
  • +
  • Summon ritual: Soul fire particles + beacon sound
  • +
  • Auto-cleanup: Invalid NPCs removed every second
  • +
  • Offline handling: NPCs despawn after timeout if owner disconnects
  • +
  • Permission-based types: Fine-grained control per NPC type
  • +
+
+ +
+

Limitations

+
    +
  • Pathfinding: Uses vanilla mechanics (less smooth than Citizens2)
  • +
  • Appearance: Limited to Iron Golem model
  • +
  • Cross-world: Following may be imperfect across world boundaries
  • +
  • No persistence: NPCs don't survive server restarts
  • +
+
+
+ +
+ + Configuration + + + Developer API + +
+
+
+ + + + + + diff --git a/docs/permissions.html b/docs/permissions.html new file mode 100644 index 0000000..d93ef50 --- /dev/null +++ b/docs/permissions.html @@ -0,0 +1,491 @@ + + + + + + Permissions - ReanimateMC Documentation + + + + + + +
+
+

Permissions Reference

+

+ Complete list of all permissions for ReanimateMC +

+ +
+

Permission Overview

+

+ ReanimateMC uses a comprehensive permission system to control access to features and commands. + Permissions are organized into categories: Core Permissions, Feature Permissions, NPC Permissions, and Command Permissions. +

+

+ Permission Plugin Required: You need a permission plugin like LuckPerms, PermissionsEx, or GroupManager to manage these permissions. +

+
+ +
+

Core Permissions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionDefaultDescription
reanimatemc.adminOPGrants access to all administrative commands and GUI config
reanimatemc.reviveTRUEAbility to revive KO'd players manually
reanimatemc.executeTRUEAbility to execute KO'd players permanently
reanimatemc.bypassOPBypass the KO system entirely - die instantly instead of entering KO
+ +
+

Core Permissions Details

+ +

reanimatemc.admin

+

Default: OP only

+

Grants access to:

+
    +
  • /reanimatemc reload - Reload configuration
  • +
  • /reanimatemc config - Open GUI configuration
  • +
  • /reanimatemc setup - Complete initial setup
  • +
  • /reanimatemc revive - Force revive players
  • +
  • /reanimatemc knockout - Force KO players
  • +
  • All configuration changes via GUI
  • +
+ +

reanimatemc.revive

+

Default: All players (TRUE)

+

Allows: Players to revive KO'd teammates by crouching near them with the required item.

+

Note: This is a core gameplay mechanic and should typically be available to all players.

+ +

reanimatemc.execute

+

Default: All players (TRUE)

+

Allows: Players to execute KO'd players by holding left-click on them.

+

Note: Essential for PvP gameplay. Can be restricted on non-PvP servers.

+ +

reanimatemc.bypass

+

Default: OP only

+

Effect: Players with this permission die instantly when health reaches zero, completely bypassing the KO system.

+

Use case: Staff members who need to respawn quickly, or VIP players who don't want to use the KO system.

+
+
+ +
+

Feature Permissions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionDefaultDescription
reanimatemc.knockoutOPForce players into KO state via command
reanimatemc.statusTRUECheck player KO status via command
reanimatemc.crawlTRUEToggle crawling mode when KO'd
reanimatemc.lootOPAccess KO'd player inventories (looting)
reanimatemc.removeGlowingEffectOPRemove glowing effects from players
+ +
+

Feature Permissions Details

+ +

reanimatemc.loot

+

Default: OP only

+

Allows: Opening and accessing the inventory of KO'd players.

+

Important: This is a powerful permission. Consider carefully before granting to regular players.

+

Configuration: Looting can be completely disabled in config.yml with looting.enabled: false

+ +

reanimatemc.crawl

+

Default: All players (TRUE)

+

Allows: KO'd players to toggle between immobilized and crawling states using /reanimatemc crawl

+

Configuration: Crawling must be enabled in config: prone.allow_crawl: true

+
+
+ +
+

NPC System Permissions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PermissionDefaultDescription
reanimatemc.summonFALSEBase permission to summon any NPC
reanimatemc.summon.use.golemFALSEPermission to summon Iron Golem reanimators
reanimatemc.summon.use.healerFALSEPermission to summon Healing Golem reanimators
reanimatemc.summon.use.protectorFALSEPermission to summon Protective Golem reanimators
reanimatemc.summon.overridecostOPBypass summon costs and cooldowns
reanimatemc.summon.adminOPAdmin control over all NPCs (dismiss any NPC)
+ +
+

NPC Permissions Details

+ +

reanimatemc.summon

+

Default: No one (FALSE)

+

Purpose: Base permission required for any summon commands. Players need this AND a specific type permission.

+ +

Type-Specific Permissions

+

How it works: Players must have BOTH reanimatemc.summon AND the specific type permission.

+

Example setup:

+
# VIP Group
+reanimatemc.summon: true
+reanimatemc.summon.use.golem: true
+
+# Premium Group
+reanimatemc.summon: true
+reanimatemc.summon.use.golem: true
+reanimatemc.summon.use.healer: true
+
+# Elite Group
+reanimatemc.summon: true
+reanimatemc.summon.use.golem: true
+reanimatemc.summon.use.healer: true
+reanimatemc.summon.use.protector: true
+ +

NPC Type Comparison

+
    +
  • Golem - Basic reanimator, follows owner and revives KO'd players
  • +
  • Healer - Specialized in revival, faster revive times (potential future feature)
  • +
  • Protector - Can revive AND attacks hostile mobs, has more health
  • +
+ +

reanimatemc.summon.overridecost

+

Default: OP only

+

Bypasses:

+
    +
  • Cooldown timers (default: 5 minutes between summons)
  • +
  • Item costs (if configured to require items)
  • +
  • Max summons per player limit
  • +
+ +

reanimatemc.summon.admin

+

Default: OP only

+

Allows: Dismissing any player's NPCs, viewing all active NPCs, and full control over the NPC system.

+
+
+ +
+

Permission Groups Examples

+ +
+
+
+ +
+

Default Players

+
reanimatemc.revive: true
+reanimatemc.execute: true
+reanimatemc.status: true
+reanimatemc.crawl: true
+
+ +
+
+ +
+

VIP Players

+
reanimatemc.revive: true
+reanimatemc.execute: true
+reanimatemc.status: true
+reanimatemc.crawl: true
+reanimatemc.summon: true
+reanimatemc.summon.use.golem: true
+
+ +
+
+ +
+

Moderators

+
reanimatemc.*: true
+(except bypass and admin)
+reanimatemc.knockout: true
+reanimatemc.loot: true
+reanimatemc.removeGlowingEffect: true
+
+ +
+
+ +
+

Administrators

+
reanimatemc.*: true
+(Full access to all features)
+
+
+
+ +
+

LuckPerms Configuration Examples

+ +
+

Basic Setup

+

Using LuckPerms commands to set up permissions:

+ +

Default Group

+
/lp group default permission set reanimatemc.revive true
+/lp group default permission set reanimatemc.execute true
+/lp group default permission set reanimatemc.status true
+/lp group default permission set reanimatemc.crawl true
+ +

VIP Group

+
/lp creategroup vip
+/lp group vip parent add default
+/lp group vip permission set reanimatemc.summon true
+/lp group vip permission set reanimatemc.summon.use.golem true
+ +

Premium Group

+
/lp creategroup premium
+/lp group premium parent add vip
+/lp group premium permission set reanimatemc.summon.use.healer true
+ +

Elite Group

+
/lp creategroup elite
+/lp group elite parent add premium
+/lp group elite permission set reanimatemc.summon.use.protector true
+/lp group elite permission set reanimatemc.summon.overridecost true
+ +

Moderator Group

+
/lp creategroup moderator
+/lp group moderator parent add default
+/lp group moderator permission set reanimatemc.knockout true
+/lp group moderator permission set reanimatemc.loot true
+/lp group moderator permission set reanimatemc.removeGlowingEffect true
+ +

Admin Group

+
/lp creategroup admin
+/lp group admin permission set reanimatemc.* true
+
+
+ +
+

Permission Wildcards

+ +
+

Using Wildcards

+

You can use wildcards to grant multiple permissions at once:

+ + + + + + + + + + + + + + + + + + + + + + +
WildcardEffect
reanimatemc.*Grants ALL ReanimateMC permissions
reanimatemc.summon.*Grants all summon-related permissions
reanimatemc.summon.use.*Grants permission to summon all NPC types
+ +

Wildcard Examples

+
# Give all summon permissions
+/lp group vip permission set reanimatemc.summon.* true
+
+# Give all permissions except admin
+/lp group moderator permission set reanimatemc.* true
+/lp group moderator permission set reanimatemc.admin false
+/lp group moderator permission set reanimatemc.bypass false
+
+
+ +
+

Best Practices

+ +
+
+
+ +
+

Default Permissions

+

Keep revive and execute available to all players for core gameplay. Restrict loot to prevent abuse.

+
+ +
+
+ +
+

Monetization

+

NPC summon permissions work great as donor perks. Create tiers: Golem (VIP) → Healer (Premium) → Protector (Elite).

+
+ +
+
+ +
+

Admin Access

+

Reserve admin, bypass, and summon.admin for trusted staff only to maintain server balance.

+
+ +
+
+ +
+

Balance

+

Consider your server type: PvP servers may restrict execute, RP servers may disable it entirely via config.

+
+
+
+ +
+ + View Commands + + + Configuration Guide + +
+
+
+ + + + + + From 3db01b5e03873d5ad0e5cea61623d9019ad4aafd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Oct 2025 14:16:23 +0000 Subject: [PATCH 4/5] Add translation guide, French example, and language directory structure Co-authored-by: MatisseAD <84678307+MatisseAD@users.noreply.github.com> --- docs/DOCUMENTATION_README.md | 249 +++++++++++++++++++++++++++ docs/TRANSLATION_GUIDE.md | 230 +++++++++++++++++++++++++ docs/de/README.md | 25 +++ docs/es/README.md | 25 +++ docs/fr/index.html | 324 +++++++++++++++++++++++++++++++++++ docs/it/README.md | 25 +++ docs/kr/README.md | 25 +++ docs/pt/README.md | 25 +++ docs/ru/README.md | 25 +++ docs/zh/README.md | 25 +++ 10 files changed, 978 insertions(+) create mode 100644 docs/DOCUMENTATION_README.md create mode 100644 docs/TRANSLATION_GUIDE.md create mode 100644 docs/de/README.md create mode 100644 docs/es/README.md create mode 100644 docs/fr/index.html create mode 100644 docs/it/README.md create mode 100644 docs/kr/README.md create mode 100644 docs/pt/README.md create mode 100644 docs/ru/README.md create mode 100644 docs/zh/README.md diff --git a/docs/DOCUMENTATION_README.md b/docs/DOCUMENTATION_README.md new file mode 100644 index 0000000..fdc590a --- /dev/null +++ b/docs/DOCUMENTATION_README.md @@ -0,0 +1,249 @@ +# ReanimateMC Documentation Website + +Welcome to the ReanimateMC documentation! This is a comprehensive, multilingual documentation website for the ReanimateMC Minecraft plugin. + +## 🌐 Viewing the Documentation + +### Online (GitHub Pages) + +Once deployed with GitHub Pages, the documentation will be available at: +``` +https://matissead.github.io/ReanimateMC/ +``` + +### Locally + +To view the documentation locally: + +1. Clone the repository +2. Navigate to the `docs` directory +3. Open `index.html` in your web browser +4. Or use a local server: + ```bash + cd docs + python3 -m http.server 8000 + # Then visit http://localhost:8000 + ``` + +## 📚 Documentation Structure + +### Main Pages (English) + +- **index.html** - Homepage with plugin overview and features +- **commands.html** - Complete commands reference +- **permissions.html** - Detailed permissions documentation +- **configuration.html** - Configuration guide with all settings +- **npc-system.html** - NPC summon system documentation +- **api.html** - Developer API documentation + +### Language Directories + +- **fr/** - French translations (Complete example provided) +- **es/** - Spanish translations (To be added) +- **de/** - German translations (To be added) +- **it/** - Italian translations (To be added) +- **ru/** - Russian translations (To be added) +- **zh/** - Chinese translations (To be added) +- **kr/** - Korean translations (To be added) +- **pt/** - Portuguese translations (To be added) + +### Assets + +- **assets/css/style.css** - Modern, responsive stylesheet +- **assets/js/main.js** - JavaScript for language switching and interactivity + +## 🎨 Features + +### Design & UI + +- ✅ Modern, clean design with gradient accents +- ✅ Fully responsive (mobile, tablet, desktop) +- ✅ Dark navbar with primary color scheme +- ✅ Card-based layout for features +- ✅ Beautiful hero section with stats +- ✅ Smooth animations and transitions +- ✅ Font Awesome icons throughout +- ✅ Syntax-highlighted code blocks + +### Functionality + +- ✅ Language switcher in navigation +- ✅ Smooth scrolling navigation +- ✅ Back-to-top button +- ✅ Copy code blocks on click +- ✅ Responsive navigation menu +- ✅ Comprehensive linking between pages + +### Content Coverage + +- ✅ Complete command reference with examples +- ✅ Detailed permissions documentation +- ✅ Full configuration guide +- ✅ NPC system comprehensive docs +- ✅ Developer API with code examples +- ✅ LuckPerms setup examples +- ✅ Integration patterns and best practices + +## 🌍 Supported Languages + +Currently implemented: +- 🇬🇧 **English** (en) - Complete ✅ +- 🇫🇷 **French** (fr) - Example complete ✅ + +Planned/Template Ready: +- 🇪🇸 Spanish (es) +- 🇩🇪 German (de) +- 🇮🇹 Italian (it) +- 🇷🇺 Russian (ru) +- 🇨🇳 Chinese (zh) +- 🇰🇷 Korean (kr) +- 🇵🇹 Portuguese (pt) + +See [TRANSLATION_GUIDE.md](TRANSLATION_GUIDE.md) for how to add new translations. + +## 📖 Documentation Sections + +### 1. Commands +- All plugin commands with detailed descriptions +- Usage examples for each command +- Permission requirements +- Administrative, player, NPC, and utility commands +- Command aliases + +### 2. Permissions +- Complete permission list +- Default values for each permission +- Permission group examples +- LuckPerms configuration examples +- NPC system permissions +- Best practices for permission setup + +### 3. Configuration +- All config.yml settings explained +- Default values and descriptions +- Configuration tips by server type +- NPC system configuration +- Performance optimization tips + +### 4. NPC System +- Three NPC types: Golem, Healer, Protector +- How to summon and use NPCs +- NPC behavior and AI +- Requirements and restrictions +- Configuration options +- Use cases and scenarios + +### 5. Developer API +- Getting started guide +- Maven/Gradle dependency setup +- Event API (PlayerKOEvent, PlayerReanimatedEvent) +- KOManager API methods +- Integration examples +- Best practices for developers + +## 🚀 Deployment + +### GitHub Pages + +To deploy the documentation with GitHub Pages: + +1. Go to repository Settings +2. Navigate to Pages section +3. Select source: Deploy from branch +4. Select branch: main (or your branch) +5. Select folder: /docs +6. Save + +The documentation will be live at: +``` +https://[username].github.io/[repository]/ +``` + +### Custom Domain + +To use a custom domain: + +1. Add a `CNAME` file in the docs directory with your domain +2. Configure DNS records at your domain provider +3. Enable HTTPS in GitHub Pages settings + +## 🔧 Customization + +### Colors + +Main colors are defined in CSS variables in `assets/css/style.css`: + +```css +:root { + --primary-color: #e74c3c; /* Red */ + --secondary-color: #3498db; /* Blue */ + --dark-color: #2c3e50; /* Dark gray */ + --success-color: #27ae60; /* Green */ + /* ... */ +} +``` + +### Logo + +To add a custom logo: +1. Add logo image to `assets/images/` +2. Update `.nav-brand` in HTML files +3. Adjust CSS if needed + +### Content + +To update content: +1. Edit the HTML files directly +2. Maintain the existing structure +3. Test changes locally before committing +4. Update translations accordingly + +## 📝 Contributing + +### Adding Content + +1. Update the relevant HTML file +2. Test locally +3. Update translations if needed +4. Submit a pull request + +### Adding Translations + +1. Follow the [TRANSLATION_GUIDE.md](TRANSLATION_GUIDE.md) +2. Create language directory +3. Translate all pages +4. Test language switching +5. Submit a pull request + +### Reporting Issues + +- Typos or errors: Open an issue +- Missing translations: Open an issue or contribute +- Suggestions: Open a discussion or issue + +## 🔗 Links + +- **Plugin Repository**: https://github.com/MatisseAD/ReanimateMC +- **Issues**: https://github.com/MatisseAD/ReanimateMC/issues +- **Releases**: https://github.com/MatisseAD/ReanimateMC/releases + +## 📄 License + +The documentation follows the same license as the plugin itself. See the main repository LICENSE file. + +## 👤 Author + +**Jachou** + +- GitHub: [@MatisseAD](https://github.com/MatisseAD) +- Plugin: ReanimateMC + +## 🙏 Credits + +- **Icons**: Font Awesome +- **Design**: Custom CSS with modern web standards +- **Hosting**: GitHub Pages + +--- + +**Need help?** Open an issue on the GitHub repository or check the plugin documentation at the main README.md diff --git a/docs/TRANSLATION_GUIDE.md b/docs/TRANSLATION_GUIDE.md new file mode 100644 index 0000000..d057785 --- /dev/null +++ b/docs/TRANSLATION_GUIDE.md @@ -0,0 +1,230 @@ +# ReanimateMC Documentation Translation Guide + +This guide explains how to translate the ReanimateMC documentation into other languages. + +## Current Status + +- ✅ **English (en)**: Complete (root directory) +- ✅ **French (fr)**: Complete example provided +- 🔄 **Spanish (es)**: Template ready +- 🔄 **German (de)**: Template ready +- 🔄 **Italian (it)**: Template ready +- 🔄 **Russian (ru)**: Template ready +- 🔄 **Chinese (zh)**: Template ready +- 🔄 **Korean (kr)**: Template ready +- 🔄 **Portuguese (pt)**: Template ready + +## Directory Structure + +``` +docs/ +├── index.html # English (default) +├── commands.html +├── permissions.html +├── configuration.html +├── npc-system.html +├── api.html +├── assets/ +│ ├── css/ +│ └── js/ +├── fr/ # French translations +│ ├── index.html +│ ├── commands.html +│ ├── permissions.html +│ ├── configuration.html +│ ├── npc-system.html +│ └── api.html +├── es/ # Spanish translations (to be created) +│ └── ... +└── [other language codes]/ +``` + +## How to Translate + +### Step 1: Create Language Directory + +Create a new directory for your language using its ISO 639-1 code: + +```bash +mkdir -p docs/[language-code] +``` + +Examples: +- `docs/es` for Spanish +- `docs/de` for German +- `docs/it` for Italian +- `docs/ru` for Russian +- `docs/zh` for Chinese +- `docs/kr` for Korean +- `docs/pt` for Portuguese + +### Step 2: Copy English Files + +Copy all HTML files from the root docs directory to your language directory: + +```bash +cp docs/*.html docs/[language-code]/ +``` + +### Step 3: Translate Content + +Open each HTML file and translate the following sections: + +#### In Every File: + +1. **Page Title** (in `` tag) +2. **Navigation Menu** items +3. **Main Content**: + - Headings (`<h1>`, `<h2>`, `<h3>`, etc.) + - Paragraphs (`<p>`) + - Lists (`<ul>`, `<ol>`) + - Table headers and content +4. **Footer** content + +#### Important Notes: + +- **DO NOT** translate: + - Code examples (keep in English) + - Command syntax (keep as-is) + - Permission names (keep as-is) + - Configuration keys (keep as-is) + - HTML tags and attributes + - CSS classes + - JavaScript code + +- **DO** translate: + - All descriptive text + - Button labels + - Section titles + - Instructions + - Error messages in examples (optional) + +### Step 4: Update Links + +Update all internal links to point to the correct language directory: + +**Before** (English): +```html +<a href="commands.html">Commands</a> +``` + +**After** (Your language): +```html +<a href="commands.html">Commandes</a> +``` + +The link target stays the same (`commands.html`) because files are in the same directory. + +For links to other languages or the root: +```html +<a href="../index.html">English</a> +<a href="../fr/index.html">Français</a> +``` + +### Step 5: Update Language Selector + +In the navbar, make sure the current language is pre-selected in the language dropdown. + +### Example Translation Comparison + +#### English (index.html): +```html +<h1 class="section-title">Core Features</h1> +<p>Players enter a knockout state instead of dying instantly when health reaches zero.</p> +``` + +#### French (fr/index.html): +```html +<h1 class="section-title">Fonctionnalités Principales</h1> +<p>Les joueurs entrent dans un état KO au lieu de mourir instantanément lorsque leur santé atteint zéro.</p> +``` + +## Translation Priority + +Translate pages in this order for best user experience: + +1. **index.html** - Homepage (most important) +2. **commands.html** - Commands reference +3. **permissions.html** - Permissions reference +4. **configuration.html** - Configuration guide +5. **npc-system.html** - NPC system documentation +6. **api.html** - Developer API + +## Quality Checklist + +Before submitting translations: + +- [ ] All user-facing text is translated +- [ ] Code examples remain in English +- [ ] Commands and permissions are NOT translated +- [ ] Links work correctly within the language directory +- [ ] Language selector displays correctly +- [ ] No broken images or missing assets +- [ ] Text fits well in buttons and navigation +- [ ] Special characters display correctly +- [ ] Formatting is preserved (bold, italic, code blocks) + +## Testing Your Translation + +1. Open your translated HTML file in a browser +2. Check all links work +3. Verify language selector changes language correctly +4. Ensure code blocks are readable +5. Check responsive design on mobile +6. Validate HTML if possible + +## Contributing Translations + +To contribute a translation: + +1. Create your language directory with translated files +2. Test thoroughly +3. Create a pull request on GitHub +4. Include "Translation: [Language Name]" in PR title +5. Mention which pages you translated + +## Getting Help + +- Review the French (fr/) translation as a reference +- Check plugin language files: `src/main/resources/lang/` +- Ask in GitHub Issues if you need clarification +- Consult the existing README.md for context + +## Language-Specific Notes + +### Right-to-Left (RTL) Languages + +For RTL languages (Arabic, Hebrew, etc.), you'll need to: + +1. Add `dir="rtl"` to the `<html>` tag +2. Possibly adjust CSS for proper alignment +3. Consider mirroring layouts where appropriate + +### CJK Languages (Chinese, Japanese, Korean) + +- Ensure font support for your character set +- May need to adjust line-height in CSS +- Consider word-breaking rules + +### Cyrillic (Russian, Bulgarian, etc.) + +- Verify character encoding (UTF-8) +- Check font rendering +- Test on different browsers + +## Maintenance + +When the English documentation is updated: + +1. Check for changes in English files +2. Update corresponding translated files +3. Mark the translation as updated in this guide +4. Submit a pull request with updates + +## Questions? + +- Open an issue on GitHub +- Tag @MatisseAD for translation questions +- Check existing translations for examples + +Thank you for contributing to ReanimateMC documentation! 🎉 diff --git a/docs/de/README.md b/docs/de/README.md new file mode 100644 index 0000000..5287b68 --- /dev/null +++ b/docs/de/README.md @@ -0,0 +1,25 @@ +# German Translation Needed + +This directory is ready for German (Deutsch) translations of the ReanimateMC documentation. + +## Status: 🔄 Awaiting Translation + +## How to Contribute + +1. Copy all HTML files from the root `docs/` directory to this `de/` directory +2. Translate all user-facing text to German +3. Keep code examples, commands, and permissions in English +4. Update internal links to work within the `de/` directory +5. Test your translation locally +6. Submit a pull request + +See [../TRANSLATION_GUIDE.md](../TRANSLATION_GUIDE.md) for detailed instructions. + +## Volunteers Welcome! + +If you're a German speaker and would like to contribute, please: +- Open an issue expressing interest +- Fork the repository and create your translation +- Submit a pull request when ready + +Thank you for helping make ReanimateMC accessible to German-speaking users! 🇩🇪 diff --git a/docs/es/README.md b/docs/es/README.md new file mode 100644 index 0000000..6c6e407 --- /dev/null +++ b/docs/es/README.md @@ -0,0 +1,25 @@ +# Spanish Translation Needed + +This directory is ready for Spanish (Español) translations of the ReanimateMC documentation. + +## Status: 🔄 Awaiting Translation + +## How to Contribute + +1. Copy all HTML files from the root `docs/` directory to this `es/` directory +2. Translate all user-facing text to Spanish +3. Keep code examples, commands, and permissions in English +4. Update internal links to work within the `es/` directory +5. Test your translation locally +6. Submit a pull request + +See [../TRANSLATION_GUIDE.md](../TRANSLATION_GUIDE.md) for detailed instructions. + +## Volunteers Welcome! + +If you're a Spanish speaker and would like to contribute, please: +- Open an issue expressing interest +- Fork the repository and create your translation +- Submit a pull request when ready + +Thank you for helping make ReanimateMC accessible to Spanish-speaking users! 🇪🇸 diff --git a/docs/fr/index.html b/docs/fr/index.html new file mode 100644 index 0000000..fed6330 --- /dev/null +++ b/docs/fr/index.html @@ -0,0 +1,324 @@ +<!DOCTYPE html> +<html lang="fr"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>ReanimateMC - Documentation + + + + + + +
+
+

ReanimateMC

+

Transformez le système de mort de votre serveur

+

+ Un plugin Minecraft révolutionnaire qui introduit un état KO (Knockout) au lieu de la mort instantanée. + Les joueurs peuvent être réanimés par leurs coéquipiers ou exécutés par leurs ennemis, créant un gameplay dynamique et stratégique. +

+ +
+
+ + Minecraft 1.20.1+ + Version Serveur +
+
+ + 9 Langues + Supportées +
+
+ + API Complète + Pour Développeurs +
+
+
+
+ +
+
+

Fonctionnalités Principales

+
+
+
+ +
+

Système KO

+

Les joueurs entrent en état KO au lieu de mourir instantanément lorsque leur santé atteint zéro.

+
+
+
+ +
+

Mécanique de Réanimation

+

Les coéquipiers peuvent réanimer les joueurs KO en utilisant des objets spéciaux et la bonne technique.

+
+
+
+ +
+

Système d'Exécution

+

Option pour éliminer définitivement les joueurs KO en les exécutant.

+
+
+
+ +
+

Mode Rampant

+

Les joueurs KO peuvent basculer entre états immobilisés et rampants lents.

+
+
+
+ +
+

Invocations NPC

+

Invoquez des NPCs contrôlés par IA qui peuvent réanimer les joueurs KO et fournir une protection.

+
+
+
+ +
+

Signaux de Détresse

+

Les joueurs KO peuvent envoyer des balises de détresse pour alerter les coéquipiers proches.

+
+
+
+ +
+

Compteur KO Hors Ligne

+

Le décompte KO continue même lorsque les joueurs se déconnectent du serveur.

+
+
+
+ +
+

Configuration GUI

+

Interface en jeu facile à utiliser pour configurer tous les paramètres du plugin.

+
+
+
+ +
+

Multilingue

+

Traductions complètes dans plus de 9 langues pour la compatibilité des serveurs mondiaux.

+
+
+
+ +
+

Démarrage Rapide

+
+
+
1
+

Installation

+

Téléchargez ReanimateMC.jar et placez-le dans le dossier plugins/ de votre serveur.

+
+
+
2
+

Redémarrer le Serveur

+

Redémarrez votre serveur ou utilisez un gestionnaire de plugins pour charger ReanimateMC.

+
+
+
3
+

Configurer

+

Utilisez /reanimatemc config pour ouvrir l'interface et personnaliser les paramètres.

+
+
+
4
+

Jouez !

+

Votre serveur dispose maintenant du système KO actif. Les joueurs entreront en état KO au lieu de mourir.

+
+
+
+ +
+

Comment Ça Marche

+
+
+

Entrer en État KO

+

Lorsque la santé d'un joueur atteint zéro, au lieu de mourir, il entre en état KO :

+
    +
  • Le joueur s'allonge et devient immobilisé (ou peut ramper)
  • +
  • Effets visuels optionnels : cécité, particules, lueur
  • +
  • Le compteur commence (défaut : 30 secondes)
  • +
  • Peut être réanimé, exécuté, ou mourra à l'expiration du compteur
  • +
+
+ +
+

Processus de Réanimation

+

Pour réanimer un joueur KO :

+
    +
  1. Approchez-vous du joueur KO
  2. +
  3. Accroupissez-vous (touche Shift)
  4. +
  5. Tenez l'objet requis (défaut : Pomme Dorée)
  6. +
  7. Attendez que la progression de réanimation soit terminée (défaut : 5 secondes)
  8. +
  9. Les deux joueurs doivent rester immobiles pendant la réanimation
  10. +
+
+ +
+

Exécution

+

N'importe quel joueur peut exécuter un joueur KO :

+
    +
  • Clic gauche sur le joueur KO
  • +
  • Maintenez pendant la durée configurée (défaut : 2 secondes)
  • +
  • Résulte en mort permanente
  • +
  • Message de diffusion optionnel au serveur
  • +
+
+ +
+

Signal de Détresse

+

Les joueurs KO peuvent appeler à l'aide :

+
    +
  • Appuyez sur F (touche d'échange de mains) en étant KO
  • +
  • Crée une balise à votre emplacement
  • +
  • Diffuse les coordonnées aux joueurs proches
  • +
  • Utilisation unique par KO
  • +
+
+
+
+ +
+

Compatibilité

+
+
+

Logiciel Serveur

+
    +
  • Spigot
  • +
  • Paper (Recommandé)
  • +
  • Bukkit
  • +
  • Purpur
  • +
+
+
+

Versions Minecraft

+
    +
  • Minimum : 1.20.1
  • +
  • Recommandé : 1.20.4+
  • +
  • Dernier : 1.21.x
  • +
+
+
+

Intégration Plugins

+
    +
  • WorldGuard
  • +
  • EssentialsX
  • +
  • mcMMO
  • +
  • Citizens
  • +
  • MythicMobs
  • +
+
+
+
+ +
+

Ressources

+ +
+
+ + + + + + diff --git a/docs/it/README.md b/docs/it/README.md new file mode 100644 index 0000000..413375e --- /dev/null +++ b/docs/it/README.md @@ -0,0 +1,25 @@ +# Italian Translation Needed + +This directory is ready for Italian (Italiano) translations of the ReanimateMC documentation. + +## Status: 🔄 Awaiting Translation + +## How to Contribute + +1. Copy all HTML files from the root `docs/` directory to this `it/` directory +2. Translate all user-facing text to Italian +3. Keep code examples, commands, and permissions in English +4. Update internal links to work within the `it/` directory +5. Test your translation locally +6. Submit a pull request + +See [../TRANSLATION_GUIDE.md](../TRANSLATION_GUIDE.md) for detailed instructions. + +## Volunteers Welcome! + +If you're an Italian speaker and would like to contribute, please: +- Open an issue expressing interest +- Fork the repository and create your translation +- Submit a pull request when ready + +Thank you for helping make ReanimateMC accessible to Italian-speaking users! 🇮🇹 diff --git a/docs/kr/README.md b/docs/kr/README.md new file mode 100644 index 0000000..685db24 --- /dev/null +++ b/docs/kr/README.md @@ -0,0 +1,25 @@ +# Korean Translation Needed + +This directory is ready for Korean (한국어) translations of the ReanimateMC documentation. + +## Status: 🔄 Awaiting Translation + +## How to Contribute + +1. Copy all HTML files from the root `docs/` directory to this `kr/` directory +2. Translate all user-facing text to Korean +3. Keep code examples, commands, and permissions in English +4. Update internal links to work within the `kr/` directory +5. Test your translation locally +6. Submit a pull request + +See [../TRANSLATION_GUIDE.md](../TRANSLATION_GUIDE.md) for detailed instructions. + +## Volunteers Welcome! + +If you're a Korean speaker and would like to contribute, please: +- Open an issue expressing interest +- Fork the repository and create your translation +- Submit a pull request when ready + +Thank you for helping make ReanimateMC accessible to Korean-speaking users! 🇰🇷 diff --git a/docs/pt/README.md b/docs/pt/README.md new file mode 100644 index 0000000..2b129f9 --- /dev/null +++ b/docs/pt/README.md @@ -0,0 +1,25 @@ +# Portuguese Translation Needed + +This directory is ready for Portuguese (Português) translations of the ReanimateMC documentation. + +## Status: 🔄 Awaiting Translation + +## How to Contribute + +1. Copy all HTML files from the root `docs/` directory to this `pt/` directory +2. Translate all user-facing text to Portuguese +3. Keep code examples, commands, and permissions in English +4. Update internal links to work within the `pt/` directory +5. Test your translation locally +6. Submit a pull request + +See [../TRANSLATION_GUIDE.md](../TRANSLATION_GUIDE.md) for detailed instructions. + +## Volunteers Welcome! + +If you're a Portuguese speaker and would like to contribute, please: +- Open an issue expressing interest +- Fork the repository and create your translation +- Submit a pull request when ready + +Thank you for helping make ReanimateMC accessible to Portuguese-speaking users! 🇵🇹 diff --git a/docs/ru/README.md b/docs/ru/README.md new file mode 100644 index 0000000..3493d3a --- /dev/null +++ b/docs/ru/README.md @@ -0,0 +1,25 @@ +# Russian Translation Needed + +This directory is ready for Russian (Русский) translations of the ReanimateMC documentation. + +## Status: 🔄 Awaiting Translation + +## How to Contribute + +1. Copy all HTML files from the root `docs/` directory to this `ru/` directory +2. Translate all user-facing text to Russian +3. Keep code examples, commands, and permissions in English +4. Update internal links to work within the `ru/` directory +5. Test your translation locally +6. Submit a pull request + +See [../TRANSLATION_GUIDE.md](../TRANSLATION_GUIDE.md) for detailed instructions. + +## Volunteers Welcome! + +If you're a Russian speaker and would like to contribute, please: +- Open an issue expressing interest +- Fork the repository and create your translation +- Submit a pull request when ready + +Thank you for helping make ReanimateMC accessible to Russian-speaking users! 🇷🇺 diff --git a/docs/zh/README.md b/docs/zh/README.md new file mode 100644 index 0000000..c90c8b7 --- /dev/null +++ b/docs/zh/README.md @@ -0,0 +1,25 @@ +# Chinese Translation Needed + +This directory is ready for Chinese (中文) translations of the ReanimateMC documentation. + +## Status: 🔄 Awaiting Translation + +## How to Contribute + +1. Copy all HTML files from the root `docs/` directory to this `zh/` directory +2. Translate all user-facing text to Chinese +3. Keep code examples, commands, and permissions in English +4. Update internal links to work within the `zh/` directory +5. Test your translation locally +6. Submit a pull request + +See [../TRANSLATION_GUIDE.md](../TRANSLATION_GUIDE.md) for detailed instructions. + +## Volunteers Welcome! + +If you're a Chinese speaker and would like to contribute, please: +- Open an issue expressing interest +- Fork the repository and create your translation +- Submit a pull request when ready + +Thank you for helping make ReanimateMC accessible to Chinese-speaking users! 🇨🇳 From 3e047fd304b8eb66ccb10160a27d4fbb695e95b8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Oct 2025 14:20:24 +0000 Subject: [PATCH 5/5] Add documentation index file for easy navigation Co-authored-by: MatisseAD <84678307+MatisseAD@users.noreply.github.com> --- docs/INDEX.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 docs/INDEX.md diff --git a/docs/INDEX.md b/docs/INDEX.md new file mode 100644 index 0000000..134ae20 --- /dev/null +++ b/docs/INDEX.md @@ -0,0 +1,59 @@ +# ReanimateMC Documentation Index + +## Quick Links + +- 🏠 [Homepage](index.html) - Plugin overview and features +- 💻 [Commands](commands.html) - Complete command reference +- 🔒 [Permissions](permissions.html) - Permission system guide +- ⚙️ [Configuration](configuration.html) - Configuration options +- 🤖 [NPC System](npc-system.html) - NPC summon documentation +- 🔧 [Developer API](api.html) - API for plugin developers + +## Language Versions + +- 🇬🇧 [English](index.html) (Complete) +- 🇫🇷 [Français](fr/index.html) (Example available) +- 🇪🇸 [Español](es/) (Template ready) +- 🇩🇪 [Deutsch](de/) (Template ready) +- 🇮🇹 [Italiano](it/) (Template ready) +- 🇷🇺 [Русский](ru/) (Template ready) +- 🇨🇳 [中文](zh/) (Template ready) +- 🇰🇷 [한국어](kr/) (Template ready) +- 🇵🇹 [Português](pt/) (Template ready) + +## Documentation Guides + +- 📖 [Documentation README](DOCUMENTATION_README.md) - How to use this documentation +- 🌍 [Translation Guide](TRANSLATION_GUIDE.md) - How to contribute translations + +## For Administrators + +1. Start with [Homepage](index.html) for overview +2. Read [Quick Start](index.html#quick-start) for installation +3. Check [Commands](commands.html) for available commands +4. Configure [Permissions](permissions.html) for your server +5. Customize [Configuration](configuration.html) to your needs + +## For Players + +1. Learn about [gameplay mechanics](index.html#gameplay) +2. Understand [how it works](index.html#gameplay) +3. See [compatibility](index.html#compatibility) requirements + +## For Developers + +1. Review [API Documentation](api.html) +2. Check [integration examples](api.html#integration-examples) +3. Follow [best practices](api.html#best-practices) + +## Need Help? + +- 🐛 [Report Issues](https://github.com/MatisseAD/ReanimateMC/issues) +- 📥 [Download Plugin](https://github.com/MatisseAD/ReanimateMC/releases) +- 💬 [GitHub Discussions](https://github.com/MatisseAD/ReanimateMC/discussions) + +--- + +**Version:** 1.2.02 +**Last Updated:** 2024-10-21 +**Minecraft:** 1.20.1+