- Clone MCPConfig from the GitHub repository.
- In the root project directory, run
gradlew :1.13:projectClientApplyPatches
if you want to make a client side mod, orgradlew :1.13:projectServerApplyPatches
if you want to make a server side mod. - Naviage into
versions/1.13/projects/server
(orclient
). There are a couple of fixes necessary to get the code to compile:- There is a missing class
mcp.MethodsReturnNonnullByDefault
which you will have to manually add. A copy can be found here. - If you're making a server-only mod, the anonymous classes in
net.minecraft.item.ItemClock
andnet.minecraft.item.ItemCompass
need to be modified to override the method innet.minecraft.item.IItemPropertyGetter
. This is never actually called on the server so you can make a dummy implementation.
- There is a missing class
- Copy
versions/1.13/projects/server
(orclient
) into a separate
#include <algorithm> | |
#include <chrono> | |
#include <iostream> | |
#include <sstream> | |
#include <thread> | |
#include <vector> | |
#ifdef _MSC_VER | |
#include <immintrin.h> | |
#endif |
#!/usr/bin/python | |
import datetime | |
import json | |
import pathlib | |
import shutil | |
import sys | |
import urllib.request | |
date_13w39a = datetime.datetime(2013, 9, 26, 15, 11, 19, tzinfo = datetime.timezone.utc) |
A big oak tree is made up of a main trunk and multiple branches. A "branch" always contains leaves, but may not always contain logs.
heightLimit
: The actual height of the tree, including leaf blocks at the top (between 5 and 16)trunkHeight
: The height of the trunkleafDistanceLimit
: The distance from a log that leaves can generate, set to 4 for sapling growth, though appears to be set to 5 for natural growth for some reason
$mod_description
- Download and run the Fabric installer.
- Note: this step may vary if you aren't using the vanilla launcher or an old version of Minecraft.
- Download the Fabric API
and move it to the mods folder (
.minecraft/mods
). - Download $mod_name from the releases page
$mod_description
- Download and install MultiMC if you haven't already.
- If you haven't already, press "create instance", and press "import from zip", and paste the following URL into the text field: https://cdn.discordapp.com/attachments/666758878813487136/699323306637262928/fabric-alpha.zip
- Download $mod_name from the releases page.
- Click on your new MultiMC instance and click "edit instance" on the right. Click "loader mods" then "add", and navigate to the mod you just downloaded, and press OK.
MinecraftDev's SideOnly inspections gave an error when you tried to access client-only code from common code, helping to prevent a common cause of crashes on the dedicated server.
While they were very useful in the right circumstances, the old SideOnly inspections have a number of flaws which ultimately meant they didn't see the widespread use that was originally hoped for. The problems I'm about to outline led to them being disabled by default, so not everyone even knew they existed. While I was maintaining a fork of MinecraftDev with Fabric support (now merged upstream), I randomly came across them when scrolling through my inspections list, hacked together a fix so it would work with Fabric's @Environment
annotation, and enabled them by default in my fork. This was a partial success, but still shared some of the issues as before.
So, what are these issues? They can be broken down into 5 key problems with the old inspections:
- Litter. In order to use
I'm going to attempt to give a fair comparison of how well CarpetMod would work as a Jar Mod vs a Fabric Mod in the future, then give my opinion at the end.
Jar Mods are what the 1.12 and 1.13 versions of CarpetMod currently are. They basically work by us directly modifying vanilla classes directly. Quick rundown of the process that isn't too in-depth: in order for us to do this, we must first translate the bytecode which Java executes into readable source code that we can understand and edit. This process is called "decompilation". Then, after we have edited the classes, we translate the code back into back into bytecode which Java can execute ("recompilation"). We then distribute parts of the code we have made changes to. Recompilation is very trivial and is unlikely to contain any errors at all. Although we use the best decompiler that exists (ForgeFlower), decompilation is still not 100% accurate.
QuickCarpet for 1.14 is a Fabric Mod. Fabric Mods are loaded by a mod loader cal
grid = [-1] * 81 | |
print("Input sudoku, spaces for blank:") | |
for y in range(9): | |
print("-" * 9) | |
row = input() | |
if len(row) > 9: | |
print("Invalid input") | |
exit() |
from zipfile import ZipFile | |
import sys | |
if len(sys.argv) < 4: | |
print("python " + sys.argv[0] + " <unchanged.jar> <changed.jar> <output.jar>") | |
else: | |
with ZipFile(sys.argv[1]) as unchanged: | |
with ZipFile(sys.argv[2]) as changed: | |
with ZipFile(sys.argv[3], "w") as output: | |
for name in changed.namelist(): |