Halloweenská akce! Na stránce s dobitím bodů zadej dole kód STRASIDELNYCH20 a získej porci +20% bodů zdarma!
Akce končí 31.10. o půlnoci.

Lekce 1 - Minecraft Modding - Úvod

Java Minecraft Modding Minecraft Modding - Úvod

Unicorn College ONEbit hosting Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Vítejte u 1. dílu mého nového seriálu o základech modování Java hry s názvem Minecraft. Naučíme se zde základní věci např. přidání blocku do hry až po pokročilejší programování TileEntity. Dnes si vytvoříme prostředí pro modování. (Vše v OS Windows 7.)

Vytvoření prostředí pro Modding

MinecraftForge

Je ve zkratce systém řízení modů, přidává zdrojovou přílohu (source attachment=Můžeme se podívat na tělo např. metody, třídy... Prostě víme jak pracuje) pro Minecraft. Je to API, programovací rozhraní, díky kterému jsme schopni udělat mod. Je to ovšem také mod, základní mod bez kterého by žadný další nefungoval, protože všichni samozřejmě využívají pro vytvoření modu MinecraftForge. Znamená to tedy, že by všechny mody měly být kompatibilní? Bohužel tomu tak není.. Samozřejmě záleží na tom, jak to naprogramujete a jak to naprogramovali ostatní. Pokud spolu mody nefungují, musíme si najít jiný mod zastupující stejnou funkci či se hrabat ve zdrojáku.

Eclipse

Vývojové prostředí, které je podporováno MinecraftForgem a ve kterém budeme programovat.

Jdeme na to

Eclipse zde popisovat nebudu z důvodu zbytečného rozepisování. Nejprve si potřebujeme stáhnout nejnovější verzi MinecraftForge_src na Minecraft verzi 1.7.10 a zvolit si v "Download Recommended" možnost "src" (symbol: </>). Soubor extrahujeme, přejmenujeme na jméno našeho modu a pomocí Shift+RightClick v extrahované složce zvolíme možnost Zde otevřít Příkazové okno, do okna zadáme příkaz gradlew setupDecompWor­kspace eclipse. Počkáme, až nám vypíše build succesfull a poté můžeme příkazové okno zavřít.
Když rozjedeme eclipse, v možnosti Select/Switch Workspace najdeme naši extrahovanou složku, otevřeme ji a zvolíme adresář eclipse.

Nyní, když jsme úspěšně importovali project vytvořený přes MinecraftForge do Eclipse, musíme nastavit Run Configurations, aby Eclipse věděl, jakou třídu z té hromady má vybrat. Takže najedeme na Možnosti zeleného play tlačítka s názvem Run=>Run Configuration­s=>New Run Configuration (Takový papír s plusíkem). Pojmenujeme si ho třeba Client a teď ho musíme nastavit:

  • V Main nastavíme Project na Minecraft a MainClass nastavíme na GradleStart, což je třída ke spuštění.
  • V Arguments vložíme do Program Arguments kod:

    --version 1.6 --tweakClass cpw.mods.fml.com­mon.launcher.FML Tweaker --accessToken FML

    a do VM Arguments tento kod:

    -Xincgc -Xmx1024M -Xms1024M -Dfml.ignoreIn­validMinecraf­tCertificates=true

  • Working Directory nastavíme na Other, a vložíme tento kod: ${workspace_loc}.

Gratuluji, nyní pokud zvolíte možnost Client, měl by vám najet Minecraft (if problém, use comments). Ještě jsem však opomenul říci, že MinecraftForge používá “cracknutý“ Minecraft, díky této výhodě se nemusíme pořád přihlašovat, pokud program spustíme.

Vytvoření projektu našeho modu

V Eclipse si vytvoříme nový Java Project, nazveme ho názvem našeho modu - "SaltMod", protože bude všechno ze soli. A to je vše, můžeme dát Finish. Vytvoří se nám project, ve kterém najdeme source folder. Nyní bychom chtěli do našeho modu dát nějakou třídu main hádám, avšak není třeba ji psát díky hodným chlápkům z MinecraftForge, stačí pouze otevřít project Minecraft, otevřít source folder src/main/java, kde najdeme package com.example.e­xamplemod v něm třídu ExamleMod.java a celý package včetně třídy přesunout do našeho source folderu. Nyní na nás vyskočí celá řada chyb.

  1. Přejmenujeme package =Alt+Shift+R podle vzoru: cs.some_name.mod_na­me.main
  2. Přejmenujeme třídu na Main.java
  3. Teď k těm chybám: Jelikož náš project neví, kde je někde nějaký block , item atd., musíme mu to říci:=>Klik pravým tlačítkem na náš project=>Build Path=>Configure Build Path=>Project=>Add a vybereme Project Minecraft=>OK=>OK

Nyní všechny chyby zmizí, pokud ne zkuste Refresh(F5)+Sa­ve(Ctrl+S). Fajn, takže teď náš project ví o tom Minecraft projectu, avšak to neplatí obráceně,(To znamená, že pokud bychom to teď spustili, náš mod(v našem projektu) by to nenačetlo) tím pádem musíme nastavit v Run Configuration­s(zase to zelené tlačítko) v našem Client=>ClassPat­h=>Use Entries=>Add Projects, vybereme ten náš a odškrtneme ty dvě volby dole, jelikož to nepotřebujeme. Nyní můžeme zvolit Run. Pokud nám najetý Minecraft hlásí v levém dolním rohu 4mods loaded, 4mods active, tak je vše správně a můžeme klidně spát. :D

public static final String MODID

Je nutné nastavit unikátní ID modu, se kterým Minecraft pracuje a závisí na něm všechny blocky, itemy, obecně objekty, protože každý objekt má ve svém ID také ID modu (Např.: "DopravniPros­tredkyMod:Bagr"). Vysvětlím to asi tak, že kdybychom měli mod, jehož MODID="Doprav­niProstredkyMod", který by přidával např. Item Bagr, vytvořili bychom si svět, schovali Bagr do truhly, vypnuli MC a teď změnili MODID na "DopravniPros­tredkyMod2", a loadli bychom svět:

Forge zjistil, že tu má object neexistující, neplatné ID, jelikož ID Bagru se změnilo na "DopravniPros­tredkyMod2:Ba­gr".(Takže ho ze světa vymaže(nabídne zálohu)). K tomu udělat novou verzi je tu String VERSION.

public static final String VERSION

Je verze modu, tím pádem pokud chceme udělat novou verzi modu, nebudeme přepisovat MODID jako předtím, ale změníme VERSION. Jelikož bude mít object pořád stejné MODID, nezmizí(object) a vše bude v pohodě.

mcmod.info

Je textový soubor, ve kterém jsou uloženy nějaké Stringy. Jistě jste již na tento soubor narazili, pokud jste byli zvědaví a nahlédli do Minecraft src složky src/main/resou­rces. Pokud chceme tento soubor přemístit, jednoduše přesuneme src složku do našeho projectu. Ok, pořád ještě něco chybí, musíme napsat MODID našeho modu do mcmod.info, aby Minecraft věděl, k jakému modu náleží. Když ho otevřeme:

[
{
  "modid": "examplemod",
  "name": "Example Mod",
  "description": "Example placeholder mod.",
  "version": "${version}",
  "mcversion": "${mcversion}",
  "url": "",
  "updateUrl": "",
  "authorList": ["ExampleDude"],
  "credits": "The Forge and FML guys, for making this example",
  "logoFile": "",
  "screenshots": [],
  "dependencies": []
}
]

Tady si samozřejmě můžete vyhrát. Teď chceme najít, kde se zobrazí, spustíme Minecraft, klikneme na tlačítko Mods (přidává Forge) a zde najdeme svůj mod, klikneme na něj a co vidíme? To, co jsme napsali do mcmod.info.

Tak a je konec úvodu, ve druhém díle se koukneme na Block, Item, a celkové rozpoložení tříd v duchu OOP.


 

 

Článek pro vás napsal Matěj Černý
Avatar
Jak se ti líbí článek?
13 hlasů
Autor se věnuje programování v Javě, moduje Java hru Minecraft a pracuje se Cinema4D.
Miniatura
Předchozí článek
Tvorba pluginů pro Spigot
Miniatura
Všechny články v sekci
Minecraft Modding
Aktivity (1)

 

 

Komentáře
Zobrazit starší komentáře (52)

Avatar
Ondřej Pohořelý:10.12.2016 21:21

Pomoooc :D

Odpovědět 10.12.2016 21:21
Nezastavuj se dlouho protože život nikdy nečeká !
Avatar
Chilli 64
Člen
Avatar
Chilli 64:10.4.2017 5:25

Dobrý den mám svůj vlastní modpack (na kterém dělám už 7 měsíců) a mám problém s tím, že aby se mi načetli recepty musím zadat vždycky když se připojím na save /mt reload. Nevíte jak tento problém mám vyřešit? Strávil jsem nad tím pomalu dva dny a zatím jsem nic nevyřešil. Předtím jsem používal na zapnutí receptů /ftb_mode set ... ale to mi taky nefungovalo. Nechtělo se to uložit a vždycky po odpojení a znovu připojení se mi recepty vrátily do normálu. Už jsem se ptal v sekci Comandbloky a poslali mě sem. Moc díky strašně mi to pomůže :) Chilli64.

 
Odpovědět 10.4.2017 5:25
Avatar
Matěj Černý
Redaktor
Avatar
Odpovídá na Chilli 64
Matěj Černý:13.4.2017 20:31

Bohužel, s tímto zkušenosti nemám. :(

 
Odpovědět 13.4.2017 20:31
Avatar
dzusill
Člen
Avatar
dzusill:19.10.2017 20:27

Dobrý deň,

postupoval som podľa krokov, ale nikde neviem nájsť Eclipse.

Ďakujem vopred za pomoc.

 
Odpovědět 19.10.2017 20:27
Avatar
205nd
Redaktor
Avatar
Odpovídá na dzusill
205nd:19.10.2017 21:13

A máš Eclipse stáhlé a nainstalované?

Odpovědět 19.10.2017 21:13
Když to nejde, je tam málo izolepy.
Avatar
dzusill
Člen
Avatar
Odpovídá na 205nd
dzusill:20.10.2017 20:36

Nie, mohol by som Vás poprosiť o zaslanie linku na stiahnutie, prosím?

 
Odpovědět 20.10.2017 20:36
Avatar
205nd
Redaktor
Avatar
Odpovídá na dzusill
205nd:20.10.2017 20:50

Ahoj,

zde .

Odpovědět 20.10.2017 20:50
Když to nejde, je tam málo izolepy.
Avatar
Tomas Řáda
Člen
Avatar
Tomas Řáda:19. srpna 14:27

Powered By MCP:
http://modcoderpack.com/
Searge, ProfMobius, Fesh0r,
R4wk, ZeuX, IngisKahn, bspkrs
MCP Data version : unknown


FAILURE: Build failed with an exception.

  • What went wrong:

Task 'setupDecompWor¡kspa­ce' not found in root project 'mc mod V.1.00'. Some candidates are: 'setupDecompWor­kspace'.

  • Try:

Run gradlew tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 48.767 secs

Co mám dělat ? :)

 
Odpovědět 19. srpna 14:27
Avatar
Matěj Černý
Redaktor
Avatar
Odpovídá na Tomas Řáda
Matěj Černý:23. srpna 7:58

Typo: Task 'setupDecompWo­rikspace' is not 'setupDecompWor­kspace'

 
Odpovědět 23. srpna 7:58
Avatar
dez1nd
Člen
Avatar
Odpovídá na Tomas Řáda
dez1nd:23. srpna 11:34

Co takhle přepsat setupDecompWor¡kspa­ce na setupDecompWor­kspace.

 
Odpovědět 23. srpna 11:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 62. Zobrazit vše