Chatt, tab-lista och namnskyltar
Chattraden ser ut så här: [Sundsvall | Stad] Felix | 34 » hej allihopa – samhällets namn i samhällets egen färg, därefter samhällets nivå, spelarens namn och spelarnivån. Spelare utan samhälle får samma rad utan stadsdelen. Tab-listan grupperar spelarna efter samhälle och visar servernamn, online och TPS i huvudet samt spelarens egna siffror i foten. Namnskylten ovanför huvudet visar stadstagg och nivå. Allt sätts med MiniMessage-mallar under chatt: i config.yml och laddas om med /chatt ladda. Det finns inga spelarkommandon: formatet, tab-listan och namnskyltarna gäller alla automatiskt. Modulen har ingen databastabell och inga ekonomiska flöden.
Kommandon
Hjälptext med samtliga underkommandon.
Läser om enbart chatt:-sektionen i config.yml från disk och ritar om tab-listan med de nya mallarna. Rör varken den inlästa konfigurationen i övrigt eller andra moduler – vill du lägga om allt kör du /nordguild reload.
Visar hur din egen chattrad, tab-rad och namnskylt ser ut just nu. Bara för inloggade spelare.
Tvingar fram en uppdatering av tab-listan direkt i stället för att vänta på nästa intervall.
Aktiva mallar, separator, neutralt värde, uppdateringsintervall, stadstaggens längd, antal uppdateringar samt vilka krokar som registrerats.
Hjälptexten igen. Samma sak som /chatt utan argument, och det du får om du skriver ett okänt underkommando.
Platshållare i mallarna
| Platshållare | Betydelse |
|---|---|
| <spelare> | Spelarens namn. |
| <spelarniva> | Spelarens nivå. |
| <maxniva> | Högsta spelarnivå på servern. |
| <nivaprocent> | Andel av vägen till nästa nivå, i procent. |
| <xp> | Spelarens XP. |
| <xpnasta> | XP som krävs för nästa nivå. |
| <stad> | Samhällets namn. |
| <stadstagg> | Samhällets namn förkortat till chatt.tab.tagg_langd tecken, till exempel Sundsvall till SUND. |
| <stadsniva> | Samhällets nivå, till exempel Stad. |
| <yrke> | Spelarens yrke. |
| <yrkesniva> | Spelarens yrkesnivå. |
| <saldo> | Spelarens saldo. |
| <produktion> | Samhällets produktion i procent, 0 till 100. Kräver att produktionsmodulen registrerat sin krok, annars visas det neutrala värdet. |
| <separator> | Tecknet i chatt.format.separator, standard ». |
| <server> | Servernamn. |
| <online> | Antal spelare online. |
| <max> | Max antal spelare. |
| <tps> | TPS senaste minuten. |
| <tps5> | TPS senaste fem minuterna. |
| <tps15> | TPS senaste femton minuterna. |
| <meddelande> | Själva chattmeddelandet. Bara relevant i chattmallarna. |
| <stadsfarg>…</stadsfarg> | Färgar innehållet i samhällets egen färg. |
| <tpsfarg>…</tpsfarg> | Färgar innehållet efter TPS: grön, gul eller röd enligt tps_bra och tps_ok. |
Mallar och inställningar under chatt: i config.yml
| Nyckel | Vad den styr | Standard |
|---|---|---|
| format.aktiv | Om pluginets chattformat används alls. | true |
| format.separator | Tecknet mellan namnraden och meddelandet. | » |
| format.med_samhalle | Chattraden för en spelare som tillhör ett samhälle. | [Stad | nivå] Spelare | nivå » meddelande |
| format.utan_samhalle | Chattraden för en spelare utan samhälle. | Spelare | nivå » meddelande |
| neutralt_varde | Visas när ett värde inte är känt ännu eller saknar krok. | – |
| tab.aktiv | Om tab-listan ritas om av pluginet. false återställer vanilla och stänger även av namnskyltarna. | true |
| tab.intervall_sekunder | Hur ofta tab-listan ritas om. | 2 |
| tab.tagg_langd | Antal tecken i stadstaggen. | 4 |
| tab.rad_med_samhalle | Spelarraden för den som har ett samhälle. | [SUND] Felix ⟨34⟩ |
| tab.rad_utan_samhalle | Spelarraden för den som saknar samhälle. | Felix ⟨34⟩ |
| tab.huvud | Tab-listans huvud. Flera rader tillåtna, tomma rader ger luft. Serverglobalt. | Servernamn, online av max och TPS |
| tab.fot | Tab-listans fot. Personlig. | Samhälle och stadsnivå, produktion, nivå med XP-procent, yrke och yrkesnivå samt saldo |
| tab.tps_bra | TPS-gräns för grön färg. | 19.0 |
| tab.tps_ok | TPS-gräns för gul färg. Under den blir det rött. | 17.0 |
| tab.farg_bra / farg_ok / farg_dalig | Färgerna som <tpsfarg> använder. | green / yellow / red |
| namnskylt.aktiv | Namnskylt ovanför spelarens huvud. Kräver att tab.aktiv är true. | true |
| namnskylt.prefix_med_samhalle | Prefix på namnskylten för den som har ett samhälle. | [SUND] |
| namnskylt.prefix_utan_samhalle | Prefix för den som saknar samhälle. | tomt |
| namnskylt.suffix | Suffix på namnskylten. | ⟨34⟩ |
Krokar som andra moduler kan registrera på ChatModule
| Metod | Betydelse |
|---|---|
| registerProductionProvider | Ger <produktion>: samhällets produktion i procent, 0 till 100, för spelarens samhälle. Utan krok visas det neutrala värdet. |
| registerExtraPlaceholder | Lägger till en egen platshållare i de spelarberoende mallarna. Värdet sätts alltid in ordagrant, och i det serverglobala tab-huvudet visas det neutrala värdet. |
Bra att veta
Varning: Tab-huvudet är serverglobalt
Huvudet ritas en gång för alla spelare, så bara <server>, <online>, <max>, <tps>, <tps5>, <tps15> och <tpsfarg> har riktiga värden där. Skriver du en spelarberoende platshållare i huvudmallen visas det neutrala värdet – aldrig en annan spelares siffror. Alla andra mallar (chattraden, tab-raden, foten och namnskylten) är personliga och där fungerar samtliga platshållare.
Varning: tab.aktiv: false stänger även av namnskyltarna
Namnskyltarna använder samma scoreboard-team som tab-listans sortering. Sätter du chatt.tab.aktiv: false och kör /chatt ladda återställs spelarna till vanilla direkt: listnamn, huvud och fot nollställs och sorteringsteamen tas bort – och därmed försvinner namnskyltarna också. chatt.namnskylt.aktiv styr bara namnskylten när tab-listan är på, och satt till false töms prefix och suffix medan sorteringen behålls.
Så sorteras tab-listan
Spelarna grupperas efter samhälle – samhällena i bokstavsordning, spelare utan samhälle sist – och sorteras alfabetiskt inom gruppen. Grupperingen görs med en numrerad serie scoreboard-team på huvudscoreboarden som återanvänds, så det skapas aldrig nya team per uppdatering. Själva tab-raden sätts separat som listnamn, eftersom Minecraft använder listnamnet rakt av och inte lägger teamets prefix och suffix ovanpå.
Spelarnamn och meddelanden tolkas aldrig som MiniMessage
Skriver någon <red>hej eller en klickbar knapp i chatten visas det ordagrant. Det kan aldrig bli färg, hover eller ett kommando som körs. Länkar förblir vanlig text.
Tab-listan rör aldrig databasen
Uppdateringen körs på huvudtråden och läser enbart cachade värden. Saknas något, till exempel saldot direkt efter inloggning, visas chatt.neutralt_varde och värdet hämtas asynkront till nästa varv. Allt cachas per spelare och ritas om först när de underliggande värdena ändrats, så femtio spelare kostar i normalfallet noll MiniMessage-tolkningar per uppdatering.
Okända taggar lämnas som text
Skriver du fel på en platshållare i en mall syns den ordagrant i spelet. Kör /chatt test efter varje ändring så ser du direkt hur din egen rad blev.
Chatthändelsen avbryts aldrig
Formatet sätts som en ChatRenderer på AsyncChatEvent. Papers egna chattkanaler och mottagarlistor fungerar därför precis som förut. Kastar en krok ett undantag används det neutrala värdet, så chatten kan inte gå sönder av en trasig modul.