mcMMO Rewards: opas Minecraftin tasopalkintolisäosaan
Kattava opas mcMMO Rewards -lisäosaan Minecraft-palvelimille: tasonnousun laukaisimien, komentojen ja mcMMO-API-integraation määrittäminen.
Kattava opas mcMMO Rewards -lisäosaan Minecraft-palvelimille: tasonnousun laukaisimien, komentojen ja mcMMO-API-integraation määrittäminen.
Vaatimukset:
Loader: Paper / Spigot / Purpur
Minecraft-versio: 1.20.x – 1.21.10
Lisäosat: McMMO
Suosittu mcMMO-roolipelijärjestelmä tuo Minecraft-palvelimille taitojen tasonnousumekaniikkoja, kuten kalastuksen, louhinnan tai yrttitieteen. Alkuperäisen lisäosan kehittäjät eivät kuitenkaan rakentaneet joustavaa järjestelmää esineiden, valuutan tai omien arvonimien automaattiseen jakamiseen tiettyjen tasojen saavuttamisesta. Täydentävä lisäosa mcMMO Rewards ratkaisee juuri tämän ongelman. Se yhdistää mcMMO:n tasojärjestelmän palvelimen konsolikomentoihin, jolloin palvelimen omistajat voivat luoda automaattisia palkintoja aktiivisille pelaajille kirjoittamatta monimutkaisia skriptejä.
Tapahtumien käsittely ja API-integraatio
mcMMO Rewards toimii kevyenä tapahtumakuuntelijana (Event Listener), joka kytkeytyy suoraan Spigot/Paper-palvelimen ytimeen ja kommunikoi mcMMO-lisäosan viralliseen API:in.
Tapahtuman McMMOPlayerLevelUpEvent sieppaus
Aina kun pelaaja nousee tasolla missä tahansa taidossa (esimerkiksi louhimalla malmia tai korjaamalla satoa), mcMMO laukaisee tapahtuman McMMOPlayerLevelUpEvent. mcMMO Rewards sieppaa tämän tapahtuman ja suorittaa seuraavan logiikan:
Lukee taidon nimen ja pelaajan saavuttaman uuden tason.
Vertaa näitä tietoja
config.yml-määritystiedostossa määriteltyihin palkintolistoihin.Jos osuma löytyy, lisäosa suorittaa konsolin nimissä määritetyn komentolistan ja korvaa paikkamerkin
%player%pelaajan nimellä.
Tapahtumien käsittelyn tärkeät rajoitukset
Koska lisäosa on sidottu yksinomaan tapahtumaan McMMOPlayerLevelUpEvent, se reagoi vain pelin aikana luonnollisesti saavutettuihin tasonnousuihin. ⚠️ Tasojen nollaus ja tietokantamuutokset: jos ylläpitäjä muuttaa pelaajan tasoa suoraan SQLite/MySQL-tietokantatiedostojen kautta (esimerkiksi tilastojen siirron tai wipen yhteydessä) tai käyttää konsolikomentoja, jotka muuttavat tasoarvoa laukaisematta tavallista tasonnousutapahtumaa, palkintoja ei aktivoida. Lisäosa ei myöskään tue palkintojen jälkikäteistä myöntämistä: jos pelaaja oli jo saavuttanut tason 50 ennen mcMMO Rewardsin asennusta, hän ei saa palkintoja aiemmin ohitetuista tasoista (10, 20 jne.), ennen kuin hän saavuttaa seuraavan tason.
Tiedoston config.yml rakenne ja palkintojen asetukset
Kaikki palkinnot määritellään yhdessä määritystiedostossa, plugins/mcMMORewards/config.yml. YAML:n yksinkertaisen syntaksin ansiosta kehittäjät voivat nopeasti rakentaa monitasoisia palkitsemisjärjestelmiä.
Määrityssyntaksin kuvaus
Jokainen palkintolohko noudattaa tiukkaa hierarkiaa:
Taidon nimi (Skill): on vastattava mcMMO:n virallista taidon nimeä (esimerkiksi
mining,woodcutting,swords,herbalism).Taso (Level): kokonaisluku, jonka saavuttaessa komennot suoritetaan.
Komentolista: luettelo konsolitoiminnoista. Komentojen alkuun ei tarvitse lisätä kauttaviivaa
/, koska palvelin suorittaa kaikki komennot suoraan konsolin nimissä (OP-tasolla).
Esimerkki määritystiedostosta
Alla on esimerkki oikein rakennetusta tiedostosta esineiden ja rahan jakamiseen:
rewards:
mining:
10:
- "give %player% iron_ingot 5"
- "broadcast &6[RPG] &e%player% &fдосяг 10-го рівня видобутку руди!"
50:
- "eco give %player% 1000"
- "give %player% diamond 3"
swords:
25:
- "xp give %player% 500"Tässä esimerkissä pelaaja %player% saa rautaharkkoja saavuttaessaan tason 10 taidossa mining, ja koko palvelimelle lähetetään viesti. Tasolla 50 pelaaja saa 1000 yksikköä valuuttaa talousliitännäisen (esimerkiksi EssentialsX) kautta sekä 3 timanttia.
Lisäosan hallinta: komennot ja käyttöoikeudet
Koska mcMMO Rewards on hyvin kompakti lisäosa, sen komentojen ja käyttöoikeuksien lista rajoittuu vain ylläpitotoimintoihin.
Määrityksen uudelleenlatauskomento
config.yml-tiedoston muutosten käyttöönottoon ei tarvitse käynnistää koko Minecraft-palvelinta uudelleen eikä keskeyttää peliä. Riittää, kun suoritetaan komento: /mcmmorewards reload Tämä komento vapauttaa vanhat asetukset palvelimen muistista ja lukee määritystiedoston uudelleen, jolloin uudet palkinnot otetaan käyttöön välittömästi.
Ylläpitäjien käyttöoikeudet (Permissions)
Palvelimen turvallisuuden vuoksi uudelleenlatauskomennon suorittaminen on rajattu erityiseen käyttöoikeuteen (permission node). Tavallisilla pelaajilla ei ole pääsyä tähän komentoon. Oikeuden myöntämiseksi ylläpitäjälle tai moderaattorille (esimerkiksi LuckPermsin kautta), käytä seuraavaa solmua: mcmmorewards.reload Oletuksena tämä oikeus myönnetään automaattisesti kaikille pelaajille, joilla on palvelimen operaattorin (OP) asema.
Yhteenveto
mcMMO Rewards on erinomainen apuväline Minecraft-palvelimille, joissa on roolipeli- ja selviytymiselementtejä ja joissa käytetään mcMMO:n taitojärjestelmää. Sen avulla voi helposti määrittää automaattisen palkintojen jakamisen pelin sisäisestä aktiivisuudesta ilman, että tarvitsee opetella monimutkaisia skriptikieliä tai käyttää raskaita skriptejä.
Verrattuna monimutkaisiin skripteihin, kuten Skript (joka vaatii oman syntaksin kirjoittamista mcMMO-tapahtumien kuuntelemiseksi), tai laajoihin tehtäväliitännäisiin, mcMMO Rewards tarjoaa mahdollisimman yksinkertaisen ja nopeasti käyttöön otettavan järjestelmän, joka ei juuri kuluta palvelimen resursseja. Sen suurimmat rajoitteet ovat kuitenkin täydellinen riippuvuus asennetusta mcMMO-lisäosasta sekä se, että komentoja voidaan suorittaa vain konsolin nimissä. Lisäosa sopii täydellisesti palvelimille, jotka haluavat nopeasti lisätä yksinkertaisia palkintoja resurssien keräämisestä tai taistelutaitojen kehittämisestä.
Asennus
Tyypillinen asennus vie noin 5 minuuttia. Kulku on sama; vain Loader ja sopiva build vaihtuvat.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.











