RPXv1.0

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:

java
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

ComandoPermisoDescripción
/jobsLista los trabajos freelance disponibles.
/jobs join <jobId>Inicia turno en el trabajo indicado.
/jobs leaveAbandona el trabajo actual.