3) jde to na commandblock
jak na to:
1. Musíš zařídit nějakej ukazatel, podle čeho server pozná, kdo už knihu získal, a kdo ne. Typicky nej je na to Scoreboard. Takže si vytvoříš objective typu dummy. Pak Umístíš prázdnou trapped truhlu(takovou, co po otevření vydá RS signál) na souřadnice A.
2. Pod ní nebo pod blok nebo nějak zamaskovaně dáš redstone tak, aby otevření truhly ten redstone aktivovalo.
3. Redstone povede do commandbloku, kde budeš mít něco jako todle:
http://minecraft.gamepedia.com/Commands#testforKód: Vybrat vše
testfor @p[r=10,score_JménoObjectivu=0] Což by mělo vydat rs signál o síle počtu hráčů, kteří jsou v zóně 10 bloků od CB, a kteří mají maximálně score X v tom objectivu.
No....hráče to najde, vydá to signál. Na zachycení toho signálu je třeba rs. comparator, který dokáže ten signál vzít a poslat dál. Tam pak potřebujeme mít RS rozdělenej do dvou větví. jedna půjde do Commandbloku, který bude mít v sobě něco takovýho:
http://minecraft.gamepedia.com/Commands#replaceitemKód: Vybrat vše
replaceitem block <x> <y> <z> <slot> <item> [amount] [data] [dataTag] kde za xyz dosadíš souřadnice truhly slot dáš třeba 0 nebo 1, to je jedno, dkyž bude prázdná, item dáš třeba written book (najdi si, jak se to tam zadává, je to na wiki), počet 1, data a data tag -> tam musíš mít NBT data, který budou obsahovat celý obsah knihy. Jak na to ?
4. NBT tagy tý knížky získáš : Buď nějakým NBT editorem, nebo si takovou knihu necháš v inventáři, stáhneš si playerdata a otevřeš to v NBTexploreru, a zkopíruješ tagy....nebo to podle wiki napíšeš rovnou, ty NBT tagy nemají zas tak těžkou strukturu.
5. Tím jsme v tamtom CB vygenerovali knihu do slotu v truhle. Hráčovi se objeví před očima a budeš za mága

6. Druhý commandblock bude zajišťovat, že nikdo nedostane dvě knihy.
Jednoduše tam umístíš :
http://minecraft.gamepedia.com/Scoreboa ... _referenceKód: Vybrat vše
scoreboard players set @p[r=10] "jmenoobjectivu" 1 Tím ten hráč dostane score 1 a ten spouštěcí CB ho již navždy bde ignorovat.

Pár poznámek:
Můžeš určit střed toho, odkud scoreboard dělá ten radius, dají se tam definovat přesný souřadnice.
Dá se to trochu obejít, pokud tam bude víc hráčů. Proto je vhodné, aby všechny ty CB měly jako "políčko působnosti" nastavené to samé, aby to ralo stejný nejbližší hráče, případně ten na set score může mít check, že bere jen hráče s score 0.
Ad 5) Většinou se na to používá to, že hráč sám napíše příkaz /rankup např., kterej iniciuje tu změnu (a plugin jen checkne, zda hráč splˇuje podmínky, případně odečte peníze atd) , je to vhodnější, jak automatickej check