Contenido generado con IA — puede contener errores.

Interfaces

Reglas de cosméticos

Una pregunta que hace cada plugin cosmético y una respuesta que da cada plugin de modo.

Un servidor va acumulando plugins cosméticos — skins de armadura, trims, efectos de muerte, de golpe, estelas de flecha — y todos dibujan lo que el jugador lleve o haga. Eso está bien casi siempre y mal en los mismos pocos sitios: un staff de servicio lleva armadura de servicio y no está jugando, y vestir esa armadura con la skin de su vestidor le dice a todo el que mire que un moderador es un participante.

// Un plugin que le presta a alguien otro cuerpo lo dice una vez:
Cosmetics.rule(this, player -> !staffMode.isActive(player.getUniqueId()));
 
// Y cada plugin cosmético hace la misma pregunta:
if (!Cosmetics.shows(player)) return null;
MétodoQué hace
Cosmetics.rule(plugin, rule)Registra la regla de este plugin, reemplazando la anterior.
Cosmetics.clear(plugin)La quita.
Cosmetics.shows(wearer)Si los cosméticos de ese jugador deben dibujarse.

CosmeticRule es una interfaz funcional: boolean shows(Player wearer).

Por qué es una regla y no una integración

Sin esto el arreglo es de dos en dos: cada plugin cosmético aprende el nombre de cada plugin de modo, y cada plugin nuevo de cualquiera de los dos lados es otra integración que nadie se acuerda de escribir. Una regla del modo y una pregunta del cosmético cubren a un plugin escrito después por los dos lados.

Todas las reglas tienen que estar de acuerdoSe combinan con AND, como una regla de chat: los cosméticos se dibujan solo mientras ningún plugin se oponga.
Una regla por pluginRegistrarla otra vez la reemplaza, y la regla de un plugin se cae al desactivarlo.
No esconde nada por sí solaNada de aquí toca los paquetes de un plugin cosmético. Cada uno pregunta shows donde decide qué dibujar y se salta su propio trabajo; un cosmético que nunca pregunta no se ve afectado.

¿Falta algo en esta página? Dínoslo en Discord