RPX SimpleJobs
Sistema de trabajos freelance activables por el jugador: únete a un turno, realiza tareas guiadas por GPS y recibe pago automático.
Introducción
RPX SimpleJobs ofrece trabajos freelance (sin contrato permanente) que cualquier jugador puede iniciar y abandonar libremente. Cada trabajo asigna tareas, guía al jugador con GPS de RPXUtils y le paga al completarlas.
- Trabajos instanciados por jugador — varios pueden trabajar a la vez sin interferencia
- GPS de RPXUtils integrado para guía visual mediante partículas
- Pago inmediato vía Currency.giveMoney() al completar cada tarea
- El trabajo de basurero incluido es un ejemplo funcional completo
- API pública para añadir trabajos personalizados desde otros plugins
Trabajo: Basurero
El Recolector de Residuos es el trabajo incluido por defecto. El jugador recibe una ruta hacia papeleras registradas (furniture rpx:trash_bin de RPXUtils) y cobra por vaciarlas.
- /jobs join basurero → se asigna la papelera más cercana y se activa el GPS.
- Al acercarse a menos de 2.5 bloques → se comprueba el inventario de la papelera.
- Papelera vacía → cobras $2 (bonus de desinfección).
- Papelera con basura → los objetos pasan a tu inventario + cobras $5 + $1.50 por ítem.
- Tras 3 segundos se asigna la siguiente papelera automáticamente.
- /jobs leave → fin del turno, GPS desactivado.
Información
Para que el basurero funcione necesitas papeleras registradas como furniture rpx:trash_bin en RPXCore y al menos un punto de basura configurado en RPXUtils (/basura add).
API — Crear Trabajos
Crea trabajos personalizados implementando la interfaz SimpleJob y registrándolos en JobRegistry desde tu plugin:
public class MecanicoJob implements SimpleJob {
@Override public String getId() { return "mecanico"; }
@Override public String getDisplayName() { return "§eMecánico"; }
@Override public ItemStack getIcon() { return new ItemStack(Material.IRON_PICKAXE); }
@Override public void onStart(Player player) { /* asignar primera tarea */ }
@Override public void onStop(Player player) { /* limpiar estado */ }
@Override public void onTick(Player player) { /* comprobar proximidad, completar tarea… */ }
}
// En onEnable():
RPXSimpleJobs.getInstance().getJobRegistry().registerJob(new MecanicoJob());Comandos
| Comando | Permiso | Descripción |
|---|---|---|
| /jobs | — | Lista los trabajos freelance disponibles. |
| /jobs join <jobId> | — | Inicia turno en el trabajo indicado. |
| /jobs leave | — | Abandona el trabajo actual. |