Давно наблюдаю в сети однообразные статьи, которые просто копируют все кому не лень. Решил поделится с вами своими открытиями в коде minecraft’а, определенно новыми и полезными.
Для моддинга нам понадобиться MCP, JDK, Notepad++, подробнее здесь. Так же необходимо знать программирование на минимальном уровне.
Урок 1. Изменение генерации мира на сервере.
После того как вы настроили все инструменты, проверили наличие исходников в папке src можно приступить к первому уроку.
За генерацию чанков плоского мира отвечает файл ChunkProviderFlat.java . Открыв его, можно найти там следующие строки:
var3,var4,var5 это координаты xzy, var6 указывает на id блока, который должен быть добавлен по координатам.
Давайте добавим в мир дорожки по краям чанков, для этого нам необходимо будет добавить следующие строки:
эти строки добавляют проверку, и если координаты x,z будут крайними(т.е. 0 и 15), то вместо травы будет генерироваться камень края.
Компилируем, устанавливаем в параметрах сервера level-type=FLAT и запускаем. Подключаемся. Результат должен быть примерно таким:
GriefTool | ТРЕЙЛЕР | ГЛОБАЛЬНОЕ ОБНОВЛЕНИЕ И ВАЙП | TRAILER SERVER MINECRAFT GriefTool
Источник: forum.minecraft-galaxy.ru
Мои 5 копеек. Вставить.
И нет, и да. По крайней мере на момент написания этого сообщения ответ будет именно такой.
«Нет», потому что официально — нет.
«Да», потому что: во-первых, разработчики обещают программный интерфейс для Minecraft все-таки «сделать», во-вторых, неофициально существуют различные варианты расширения этого самого Майнкрафта.
Ведь не на пустом же месте все эти моды создаются. Кстати, сделать Minecraft API разработчики обещают в ближайшем будущем. Последнее, что я видел — так это обещание уже в версии 1.6 добавить этот API. А это, похоже, будет следующая версия после нынешней 1.5.1.
Почему я занялся этим вопросом?
Малый мой рассказал мне о том, что бы он изменил или добавил в Майнкрафт. И это после того, как перепробовал уйму модов и т.п. 🙂
И во мне «взыграла программистская кровь» 🙂 — можно попробовать свои силы, тем более что Java не такой уж сложный язык, я с ним уже сталкивался и синтаксис мне понятен. Плюс, на создании и распространении востребованных модов можно попробовать заработать. 🙂
Поэтому я кинулся искать вменяемую информацию о Minecraft API. И столкнулся с тем, что такого API сейчас нет. Поэтому нужно либо подождать его добавление в следующей версии, либо воспользоваться теми способами, которыми пользуются разработчики модов.
Minecraft Coder Pack
Самый стандартный способ — правда, требующий знания Java — это воспользоваться Minecraft Coder Pack. Во-первых, он дает возможность изменить существующий функционал Minecraft (главным образом в файле minecraft.jar), во-вторых, создать свои «дополнения».
Компот — ГОЛОВЫ НА ЗАВТРАК (Официальный Майнкрафт Клип)
Для его работы понадобиться JDK, который должен совпадать с версией Java установленной на вашем ПК.
В принципе остальные способы — более дружественные разработчику — используют JDK + MCP так или иначе.
Самое интересное здесь, что MCP «деобфусцирует» и декомпилирует код, который вы потом меняете, а потом компилирует и «обфусцирует» его обратно. То есть фактически вы работаете не с исходным кодом, который именно «исходный», а декомпилированным.
ModLoader и Minecraft Forge
Моды в свою очередь обычно можно загружать с помощью одного из двух самых распространенных загрузчиков модов: ModLoader (более исторический) и Forge. (Есть и другие. )
С их же помощью вы можете создавать моды, но они используют код, декомпилированный с помощью MCP, то есть фактически и тот, и другой являются надстройкой над MCP, для более удобного создания мода. У них же есть свои Mod API, которые должны упростить вам кодинг и моддинг.
Кстати, Forge считается обратно совместимым с ModLoader и является как бы расширением последнего, то есть надстройкой над надстройкой :). (Но на практике они обычно не «дружат», потому их и моды под них лучше не смешивать.)
Mod Maker и MCreator
Для создания модов знание Java и программирования вообще может и не понадобится, если вы воспользуетесь дружественными пользователю (игроку) программами для создания модов.
Так, свои моды вы может создавать в графическом интерфейсе одной из программ: Mod Maker или MCreator. Клик, клик, клик — и готово.
Опять же, это уже надстройки над надстройками. Потому что для работы в них вам все равно понадобятся: JDK, MCP и, скорее всего, один из загрузчиков модов.
Например, MCreator, с которым я немножко поигрался на днях, кроме JDK, MCP, требует еще и Forge.
Понятно, что существуют и другие варианты для модификации Minecraft’а, и все — неофициальные.
Выводы
- Как я уже говорил на данный момент официального Minecraft API не существует.
- Для разработки своих модов, нужно пользоваться сторонними инструментами.
- Какой бы инструмент вы не избрали, вам нужны будут JDK, MCP и, скорее всего, один из загрузчиков модов (ModLoader или Forge).
- Все варианты предполагают работу с декомпилированным, а не исходным кодом.
- Вы можете как работать непосредственно с кодом на Java в своей любимой программной среде (IDE), так и использовать графические конструкторы, для работы в которых уметь программировать и знать Java вам не понадобится.
А вообще хорошим началом для понимания что к чему будет чтение статьи о создании модов на официальной Вики. Она, правда, на английском.
Источник: 5kopeek.blogspot.com
[Help] Is there an MCP version for Minecraft 1.12.2?
If there isn’t, is there a way I can use MCP 1.12 to connect to a 1.12.2 server? I’ve tried changing the CPacketHandshake version number from 335 to 340 but when I do that I just get this error:
«Internal Exception: io.netty.handler.codec.Decoder Ecveption: Java.io.IOException: Packet 0/40 (SPacketCombatEvent) was larger than I expected, found 8 bytes extra whilst reading packet 44»
To be clear I am trying to connect a modded client to a vanilla server, and it works perfectly fine when the server is running 1.12.
Any help? Thanks in advance.
6 comments
100% Upvoted
Sort by: best
Report Save Follow
just made a reddit account to vote this up
Report Save Follow
· 5 yr. ago · edited 5 yr. ago
I know this is old, but hopefully you’ll see my comment =) I’ve followed your installation: When I open my MCP workspace in eclipse I get 3 projects, client, server, and MCP. I get around 100 errors on my MCP folder until I remove the realm jar file as I mention. While this works as you mention, my Server and Client folder have a ton of errors, and if I don’t keep them as closed projects inside my workspace, my MCP project start getting errors as well. It seems extremely odd, so just wanted to check in if this was normal, or if I went wrong somewhere. Doesn’t seem logical to me that the client and server folders should have errors. Thanks 🙂
Edit: Actually just realized when my workspace finishes setting up MCP folder returns to having 100 errors. Mainly varibles and fields that can’t be resolved. Any thoughts?
Источник: www.reddit.com