Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare 1.7.4 #115

Merged
merged 15 commits into from
Jan 24, 2024
54 changes: 28 additions & 26 deletions build/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,14 @@ def parse_args():
def build(args):
modlist = []
basePath = os.path.normpath(os.path.realpath(__file__)[:-7] + "..")
copyDirs = ["/config", "/mods", "/groovy"]
serverCopyDirs = ["/config", "/mods", "/groovy"]
modURLlist = []
modClientOnly = []
# remove the old build files
copyDirs = ["/scripts", "/resources", "/config",
"/mods", "/structures", "/groovy"]
serverCopyDirs = ["/scripts", "/config", "/mods", "/structures", "/groovy"]

shutil.rmtree(basePath + "/buildOut/client/overrides",
ignore_errors=True)
shutil.rmtree(basePath + "/buildOut/server", ignore_errors=True)

if args.clean:
shutil.rmtree(basePath + "/buildOut/client/overrides",
ignore_errors=True)
shutil.rmtree(basePath + "/buildOut/server", ignore_errors=True)
shutil.rmtree(basePath + "/mods", ignore_errors=True)
sys.exit(0)
sha = ""
Expand Down Expand Up @@ -143,24 +140,27 @@ def mkdirs(path):

continue

name = "placeholder"
if "name" in mod:
name = mod["name"]
if name[-4:] != ".jar":
name += ".jar"
modlist.append(name)
else:
modlist.append(metadata["data"].split("/")[-1])
modURLlist.append(metadata["data"])
name = metadata["data"].split("/")[-1]
url = metadata["data"]
clientOnly = False
try:
modClientOnly.append(mod["clientOnly"])
clientOnly = mod["clientOnly"]
except:
modClientOnly.append(False)

clientOnly = False

modlist.append({"name": name, "url": url, "clientOnly": clientOnly})

print("modlist compiled")
with open(basePath + "/buildOut/modlist.html", "w") as file:
data = "<html><body><h1>Modlist</h1><ul>"
for mod in modlist:
data += "<li>" + mod.split(".jar")[0] + "</li>"
data += "<li>" + mod["name"].split(".jar")[0] + "</li>"
data += "</ul></body></html>"
file.write(data)
print("modlist.html done")
Expand All @@ -176,9 +176,9 @@ def mkdirs(path):
except Exception as e:
print("Directory exists, skipping")
print("directories copied to buildOut/server")
for i, mod in enumerate(modURLlist):
jarname = mod.split("/")[-1]
if (modClientOnly[i] == True):
for mod in modlist:
jarname = mod["url"].split("/")[-1]
if (mod["clientOnly"] == True):
continue

if os.path.exists(os.path.join(cachepath, jarname)):
Expand All @@ -188,9 +188,9 @@ def mkdirs(path):
continue

with open(basePath + "/buildOut/server/mods/" + jarname, "w+b") as jar:
r = requests.get(mod)
r = requests.get(mod["url"])
jar.write(r.content)
print(mod + " Downloaded")
print(mod["name"] + " Downloaded")
print("Mods Downloaded")
with open(basePath + "/buildOut/server/forge-installer.jar", "w+b") as jar:
forgeVer = manifest["minecraft"]["modLoaders"][0]["id"].split("-")[-1]
Expand Down Expand Up @@ -253,19 +253,21 @@ def mkdirs(path):
basePath + "/buildOut/mmc/minecraft/mods/")
for dir in copyDirs:
try:
os.copytree(basePath + dir, basePath +
os.symlink(basePath + dir, basePath +
"/buildOut/mmc/minecraft/" + dir)
except Exception as e:
print("Directory exists, skipping")
print("directories copied to buildOut/mmc/minecraft")

for i, mod in enumerate(modURLlist):
jarname = mod.split("/")[-1]
for mod in modlist:
jarname = mod["name"].split("/")[-1]
if (modClientOnly[i] == False):
break

with open(basePath + "/buildOut/mmc/minecraft/mods/" + jarname, "w+b") as jar:
r = requests.get(mod)
r = requests.get(mod["url"])
jar.write(r.content)
print(mod + " Downloaded")
print(mod["name"] + " Downloaded")

shutil.copy(basePath + "/mmc-instance-data.json",
basePath + "/buildOut/mmc/mmc-pack.json")
Expand Down
199 changes: 199 additions & 0 deletions config/Universal Tweaks - Bugfixes.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
# Configuration file

general {

blocks {
# Fixes rendering issues with banners by correctly sizing their render bounding boxes
# Incompatible with RenderLib
B:"Banner Bounding Box"=true

# Fixes inconsistent delays of comparators to prevent redstone timing issues
B:"Comparator Timing"=true

# Only damage living entities hit by falling blocks, prevents killing items and XP
B:"Falling Block Entity Damage"=true

# Slims down the hopper bounding box for easier access of nearby blocks
B:"Hopper Bounding Box"=true

# Prevents crashes when the destination tile entity becomes unavailable during the item insert process
# Mainly utilized to suppress edge case symptoms with Thaumcraft's Thaumatorium
B:"Hopper Insert Safety Check"=true

# Prevents voiding held items when right + left clicking on an item frame simultaneously
B:"Item Frame Void"=true

# Disables climbing movement when flying
B:"Ladder Flying Slowdown"=true

# Avoids the need for multiple mining attempts by sending additional movement packets
B:"Mining Glitch"=true

# Properly saves the last state of pistons to tags
B:"Piston Progress"=true

"block overlay" {
# Fixes x-ray when standing in non-suffocating blocks
B:"[1] Block Overlay Toggle"=true

# Excludes blocks from the block overlay bugfix
# Syntax: modid:block
S:"[2] Blacklist" <
>

# Includes blocks in the block overlay bugfix
# Syntax: modid:block
S:"[3] Whitelist" <
>
}

}

entities {
# Improves the attack radius of hostile mobs by checking the line of sight with raytracing
B:"Attack Radius"=true

# Prevents fire projectiles burning entities when blocking with shields
B:"Block Fire"=true

# Fixes entities glitching through the bottom of boats
B:"Boat Riding Offset"=true

# Replaces linked entity AI task sets with concurrent sets to avoid mod exception concerning entity AI
# Only enable this if you're facing concurrent modification exceptions with entity AI tasks, for example Thaumcraft's Pechs
B:"Concurrent Entity AI Tasks"=false

# Fixes corrupted entities exceeding the allowed death time
B:"Death Time"=true

# Fixes lag caused by dead entities by sending additional packets when the player is not alive
B:"Destroy Entity Packets"=true

# Fixes missing player states when changing dimensions by sending additional packets
B:"Dimension Change Player States"=true

# Fixes item duplications when players are dropping items and disconnecting
B:"Disconnect Dupe"=true

# Fixes a duplication exploit connected to the inventories of donkeys and mules
B:"Donkey/Mule Dupe"=true

# Fixes consuming an item having a chance of also consuming a second item without any animation
B:"Double Consumption"=true

# Relocate elytra deployment and landing to client side to prevent issues with high latencies
B:"Elytra Deployment & Landing"=true

# Saves entity bounding boxes to tags to prevent breakouts and suffocation
B:"Entity Bounding Box"=true

# Fixes non-functional elytra firework boosting and guardian targeting if the entity ID is 0
B:"Entity ID"=true

# Prevents corruption of entities caused by invalid health or damage values
B:"Entity NaN Values"=true

# Pushes entities out of blocks when growing up to prevent suffocation
B:"Entity Suffocation"=true

# Fixes entity tracker to prevent client-sided desyncs when teleporting or changing dimensions
# Incompatible with SpongeForge
B:"Entity Tracker"=true

# Changes UUIDs of loaded entities in case their UUIDs are already assigned (and removes log spam)
B:"Entity UUID"=true

# Modifies falling logic of horses, listening to LivingFallEvent and taking jump boost into account
B:"Horse Falling"=true

# Corrects maximum player health on joining by setting the last saved health value
B:"Max Player Health"=true

# Fixes mounts and boats sometimes disappearing after dismounting
B:"Mount Desync"=true

# Fixes saturation depleting in peaceful mode
B:"Player Saturation"=true

# Fixes a duplication exploit connected to shearing mooshrooms
B:"Shear Mooshroom Dupe"=true

# Fixes skeletons not looking at their targets when strafing
B:"Skeleton Aim"=true

# Returns missing hoods to villager mantles
B:"Villager Mantle Hoods"=true

"entity desync" {
# Fixes entity motion desyncs most notable with arrows and thrown items
# Incompatible with Immersive Vehicles
B:"[1] Entity Desync Toggle"=true

# Syntax: modid:entity
# Example: minecraft:minecart
S:"[2] Entity Blacklist" <
minecraft:minecart
>
}

}

misc {
# Improves the accuracy of smooth lighting by checking for suffocation and light opacity
B:"Accurate Smooth Lighting"=true

# Fixes entity and particle rendering issues by enabling depth buffer writing
B:"Depth Mask"=true

# Replaces the help command, sorts and reports broken commands
B:"Help Command"=true

# Prevents various crashes with Turkish locale
B:"Locale Crash"=true

# Increases the packet size limit to account for large packets in modded environments
# Vanilla default is 0x200000
# Incompatible with SpongeForge and RandomPatches
I:"Packet Size"=16777216

"model gap" {
# Fixes transparent gaps in all 3D models of blocks and items
B:"[1] Model Gap Toggle"=true

# Quad X/Y offset
# Moves the quad toward the center of the item
# Use to hide gaps, keep as close to 0 as possible
D:"[2] Recess Value"=0.007

# Quad expansion increment
# Enlarges each quad
# Use to hide gaps, keep as close to 0 as possible
D:"[3] Expansion Value"=0.008
}

}

world {
# Fixes loading of outdated chunks to prevent duplications, deletions and data corruption
# Incompatible with SpongeForge
B:"Chunk Saving"=true

# Fixes invisible chunks in edge cases (small enclosed rooms at chunk borders)
B:"Frustum Culling"=true

# Changes the data table of tile entities to resolve issues
# HASHMAP: Vanilla default
# LINKED_HASHMAP: Keeps the loading order of tile entities to prevent issues during the first ticks of chunk loading
# CONCURRENT_HASHMAP: Allows simultaneous access to tile entities to prevent concurrent modification exceptions
# CONCURRENT_LINKED_HASHMAP: Combines LINKED_HASHMAP and CONCURRENT_HASHMAP, may have random side effects
# Valid values:
# HASHMAP
# LINKED_HASHMAP
# CONCURRENT_HASHMAP
# CONCURRENT_LINKED_HASHMAP
S:"Tile Entity Map"=LINKED_HASHMAP
}

}


18 changes: 18 additions & 0 deletions config/Universal Tweaks - General.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Configuration file

general {

debug {
# For those who live life on the edge, may or may not include Jons
B:"Bypass Incompatibility Warnings"=false

# Enables debug logging
B:"Debug Logging"=false

# Prints the time the game needed to launch to the log
B:"Show Loading Time"=true
}

}


Loading