{"id":28944051,"url":"https://github.com/anhuar-dev/sizechange","last_synced_at":"2026-04-05T17:35:01.614Z","repository":{"id":300607138,"uuid":"1006505281","full_name":"anhuar-dev/SizeChange","owner":"anhuar-dev","description":"Cosmetic plugin to resize the player","archived":false,"fork":false,"pushed_at":"2025-06-22T16:59:52.000Z","size":24,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-22T17:37:48.150Z","etag":null,"topics":["java","minecraft","minecraft-plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anhuar-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-22T12:26:30.000Z","updated_at":"2025-06-22T17:32:49.000Z","dependencies_parsed_at":"2025-06-22T17:50:47.639Z","dependency_job_id":null,"html_url":"https://github.com/anhuar-dev/SizeChange","commit_stats":null,"previous_names":["anhuar-dev/sizechange"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/anhuar-dev/SizeChange","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhuar-dev%2FSizeChange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhuar-dev%2FSizeChange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhuar-dev%2FSizeChange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhuar-dev%2FSizeChange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anhuar-dev","download_url":"https://codeload.github.com/anhuar-dev/SizeChange/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhuar-dev%2FSizeChange/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270885388,"owners_count":24662454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","minecraft","minecraft-plugin"],"created_at":"2025-06-23T05:17:08.547Z","updated_at":"2025-12-29T18:26:13.450Z","avatar_url":"https://github.com/anhuar-dev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SizeChange Plugin\n\n![Minecraft](https://img.shields.io/badge/Minecraft-1.21.3-green)\n![Paper](https://img.shields.io/badge/Paper-1.21.3-blue)\n![Java](https://img.shields.io/badge/Java-21-orange)\n![License](https://img.shields.io/badge/License-MIT-yellow)\n\n\u003e Un plugin cosmético para Minecraft que permite cambiar el tamaño de los jugadores de forma dinámica.\n\n## 📋 Descripción\n\nSizeChange es un plugin de Minecraft desarrollado para servidores Paper 1.21.3+ que permite a los administradores modificar el tamaño visual de los jugadores. El plugin incluye soporte para MongoDB, integración con WorldGuard y gestión inteligente de mundos y regiones restringidas.\n\n## 📋 Download:\n- Modrinth: [Link](https://modrinth.com/plugin/sizechange)\n- Polymart: [Link](https://polymart.org/product/7993/sizechange-regions-and-world)\n\n## ✨ Características\n\n- 🎯 **Cambio de tamaño dinámico**: Modifica el tamaño de los jugadores de 0.1x a 10x\n- 🗄️ **Persistencia de datos**: Integración completa con MongoDB\n- 🌍 **Gestión de mundos**: Configuración de mundos donde el tamaño se restablece automáticamente\n- 🛡️ **Integración WorldGuard**: Soporte para regiones donde el tamaño se normaliza\n- ⚡ **Alto rendimiento**: Sistema de caché optimizado para regiones\n- 🎮 **Modo creativo/espectador**: Ignora automáticamente estos modos de juego\n- 🔄 **Recarga en caliente**: Recarga configuraciones sin reiniciar el servidor\n\n## 📦 Instalación\n\n### Requisitos\n\n- **Minecraft**: 1.21.3+\n- **Servidor**: Paper/Purpur/Folia\n- **Java**: 21+\n- **MongoDB**: 4.0+\n- **WorldGuard**: 7.0.7+ (opcional)\n\n### Pasos de instalación\n\n1. Descarga el archivo `SizeChange-v1.0.jar`\n2. Coloca el archivo en la carpeta `plugins/` de tu servidor\n3. Reinicia el servidor\n4. Configura MongoDB en `plugins/SizeChange/setting.yml`\n5. Personaliza los mensajes en `plugins/SizeChange/message.yml`\n\n## ⚙️ Configuración\n\n### setting.yml\n\n```yaml\nMONGO:\n  URI: \"mongodb://localhost:27017\"\n  DATABASE: \"SizeChange\"\n  COLLECTION: \"players\"\n\n# Mundos donde el tamaño se restablece a 1.0\nDENY-WORLD:\n  - \"Conquest\"\n\n# Regiones de WorldGuard donde el tamaño se normaliza\nDENY-REGION:\n  - \"potzone\"\n  - \"kothpot\"\n  - \"crystalpvp\"\n  - \"crystalkoth\"\n  - \"mazopvp\"\n```\n\n### message.yml\n\n```yaml\nERROR:\n  OFFLINE: \"\u003cred\u003eJugador no encontrado. El jugador debe estar conectado.\u003c/red\u003e\"\n  INVALID-SIZE: \"\u003cred\u003eEl tamaño debe estar entre 0.1 y 10.\u003c/red\u003e\"\n  SET-SIZE-FAILED: \"\u003cred\u003eNo se pudo establecer el tamaño para %player%.\u003c/red\u003e\"\n  RESET-SIZE-FAILED: \"\u003cred\u003eNo se pudo restablecer el tamaño para %player%.\u003c/red\u003e\"\n\nSUCCESS:\n  SET-SIZE: \"\u003cgreen\u003eTamaño de %player% establecido a %size%\u003c/green\u003e\"\n  RESET-SIZE: \"\u003cgreen\u003eTamaño de %player% restablecido al valor predeterminado.\u003c/green\u003e\"\n```\n\n## 🎮 Comandos\n\n### Comando principal: `/sizechange`\n\n| Subcomando | Descripción | Permiso | Uso |\n|------------|-------------|---------|-----|\n| `size set \u003cjugador\u003e \u003ctamaño\u003e` | Establece el tamaño de un jugador | `sizechange.admin` | `/sizechange size set Steve 2.0` |\n| `size reset \u003cjugador\u003e` | Restablece el tamaño a 1.0 | `sizechange.admin` | `/sizechange size reset Steve` |\n| `reload \u003ctipo\u003e` | Recarga configuraciones | `sizechange.admin` | `/sizechange reload setting` |\n\n### Ejemplos de uso\n\n```bash\n# Hacer a un jugador más grande\n/sizechange size set Notch 3.0\n\n# Hacer a un jugador más pequeño\n/sizechange size set Steve 0.5\n\n# Restablecer el tamaño normal\n/sizechange size reset Steve\n\n# Recargar configuraciones\n/sizechange reload setting\n/sizechange reload message\n/sizechange reload regioncache\n```\n\n## 🔑 Permisos\n\n| Permiso | Descripción | Por defecto |\n|---------|-------------|-------------|\n| `sizechange.admin` | Acceso completo a todos los comandos | OP |\n\n## 🏗️ Arquitectura del Plugin\n\n### Estructura de paquetes\n\n```\ndev.anhuar.sizeChange/\n├── SizeChange.java              # Clase principal\n├── command/\n│   └── SizeCommand.java         # Comandos del plugin\n├── data/\n│   └── DPlayer.java             # Modelo de datos del jugador\n├── handler/\n│   ├── CommandHandler.java      # Gestor de comandos\n│   ├── ListenerHandler.java     # Gestor de eventos\n│   ├── ManagerHandler.java      # Gestor de managers\n│   └── MongoHandler.java        # Conexión MongoDB\n├── listener/\n│   ├── PlayerListener.java      # Eventos de jugador\n│   └── WorldListener.java       # Eventos de mundo\n├── manager/\n│   ├── PlayerDataManager.java   # Gestión de datos\n│   └── SizeManager.java         # Gestión de tamaños\n├── task/\n│   └── RegionTask.java          # Tarea de regiones\n└── util/\n    ├── ConfigUtil.java          # Utilidad de configuración\n    └── GsonUtil.java            # Utilidad JSON\n```\n\n### Características técnicas\n\n- **Asíncrono**: Operaciones de base de datos no bloquean el hilo principal\n- **Caché inteligente**: Sistema de caché para regiones con actualización automática\n- **Thread-safe**: Uso de `ConcurrentHashMap` para datos compartidos\n- **Optimizado**: Verificaciones de mundo relevante antes de procesar regiones\n\n## 🔧 Dependencias\n\n### Dependencias principales\n\n```kotlin\ndependencies {\n    paperweight.paperDevBundle(\"1.21.3-R0.1-SNAPSHOT\")\n    compileOnly(\"io.papermc.paper:paper-api:1.21.3-R0.1-SNAPSHOT\")\n    compileOnly(\"me.clip:placeholderapi:2.11.6\")\n    compileOnly(\"com.sk89q.worldguard:worldguard-bukkit:7.0.7\")\n    implementation(\"org.mongodb:mongodb-driver-sync:5.2.1\")\n    implementation(\"com.github.Revxrsal.Lamp:common:3.1.5\")\n    implementation(\"com.github.Revxrsal.Lamp:bukkit:3.1.5\")\n}\n```\n\n## 📊 Funcionamiento\n\n### Flujo de datos\n\n1. **Jugador se conecta** → Carga datos desde MongoDB\n2. **Aplicación de tamaño** → Verifica mundo/región y aplica tamaño correspondiente\n3. **Cambio de mundo** → Evalúa si debe normalizar o mantener tamaño\n4. **Detección de región** → Task asíncrona verifica regiones cada 0.5 segundos\n5. **Desconexión** → Guarda datos en MongoDB\n\n### Casos especiales\n\n- **Modo Creativo/Espectador**: El plugin ignora estos modos automáticamente\n- **Mundos denegados**: El tamaño se fuerza a 1.0 independientemente del tamaño guardado\n- **Regiones denegadas**: Similar a mundos, pero por ubicación específica\n- **Reconexión**: El tamaño se restaura automáticamente desde la base de datos\n\n## 🐛 Resolución de problemas\n\n### Problemas comunes\n\n**El tamaño no se aplica:**\n- Verifica que el jugador no esté en modo creativo/espectador\n- Confirma que no esté en un mundo o región denegada\n- Revisa la conexión a MongoDB\n\n**Error de conexión MongoDB:**\n- Verifica la URI en `setting.yml`\n- Confirma que MongoDB esté ejecutándose\n- Revisa los logs del servidor para errores específicos\n\n**Regiones no funcionan:**\n- Instala WorldGuard 7.0.7+\n- Verifica que las regiones existan con `/rg list`\n- Recarga el caché con `/sizechange reload regioncache`\n\n### Logs útiles\n\n```bash\n# Al iniciar el plugin\n[INFO] ✓ Conexión con MongoDB establecida correctamente! (Base de datos: SizeChange)\n\n# Al cerrar el plugin\n[INFO] ✗ Conexión con MongoDB cerrada correctamente.\n```\n\n## 🤝 Contribución\n\n### Cómo contribuir\n\n1. Fork el repositorio\n2. Crea una rama para tu feature (`git checkout -b feature/nueva-caracteristica`)\n3. Commit tus cambios (`git commit -am 'Añade nueva característica'`)\n4. Push a la rama (`git push origin feature/nueva-caracteristica`)\n5. Crea un Pull Request\n\n### Estándares de código\n\n- Usa Java 21+\n- Sigue las convenciones de naming de Java\n- Documenta métodos públicos\n- Incluye header de licencia en archivos nuevos\n\n## 📝 Licencia\n\nEste proyecto está bajo la Licencia MIT. Ver el archivo [LICENSE](LICENSE) para más detalles.\n\n```\nMIT License\n\nCopyright (c) 2025 Anhuar Dev (https://anhuar.dev)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction...\n```\n\n## 👨‍💻 Autor\n\n**Anhuar Ruiz** - *Anhuar Dev | myclass*\n- Website: [anhuar.dev](https://anhuar.dev)\n## 📈 Versiones\n\n### v1.0 (Actual)\n- ✅ Sistema básico de cambio de tamaño\n- ✅ Integración con MongoDB\n- ✅ Soporte para WorldGuard\n- ✅ Gestión de mundos y regiones denegadas\n- ✅ Comandos de administración\n- ✅ Sistema de permisos\n\n### Roadmap futuro\n- 🔄 API para desarrolladores\n- 🎨 Interfaz gráfica (GUI)\n- 📊 Estadísticas de uso\n- 🌐 Soporte multi-idioma\n- ⚡ Integración con PlaceholderAPI\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**⭐ Si te gusta este proyecto, ¡dale una estrella en GitHub! ⭐**\n\n[Reportar Bug](https://github.com/anhuar/SizeChange/issues) • [Solicitar Feature](https://github.com/anhuar/SizeChange/issues) • [Documentación](https://anhuar.dev)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanhuar-dev%2Fsizechange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanhuar-dev%2Fsizechange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanhuar-dev%2Fsizechange/lists"}