Giter VIP home page Giter VIP logo

grapplemod-restitched's Introduction

Minecraft Version Fabric Loader Version Cloth Config Version Mod Menu Version GPL-3.0

Modrinth Curseforge


⚠️ Development Notice

This branch is currently in active development and hasn't yet had a public release. This means it is NOT stable. So depending on your use-case:

  • If you want to port the mod to another version of Minecraft, do not use this.
  • If you want to translate for the mod, I highly recommend that you use this branch!
    • v2 has changed a lot of translation ids
    • Most of the translations have settled, minus changes to config translations.
  • If you want to add a feature to the mod, I highly recommend that you use this branch!
    • It may take a bit of time to be merged but it will eventually.
    • Code added to v1 will not to added to v2 unless it is a small patch fix.

Project Overview

A classic Grappling Hook mod with great physics and a wide range of customizations! This Minecraft mod is written for the Fabric & Quilt mod loaders for modern versions of Minecraft (1.18.2+) - Changes tend to focus on making it more extendable, as well as improving compatibility with other mods. Improvements to older features are also being sprinkled in from time to time.

This mod's official project pages can be found below:

Fabric compatability comes first due to its current adoption in the Minecraft Modding community, however Quilt is supported by the mod currently! In the case that either Mod Loader encounters a problem, make sure to submit a bug report!

🔗 Origins

This repository is an unofficial fork of Yyon's Grappling Hook Mod, which was written to support the Forge mod loader. It has a history stretching back all the way to its MCreator roots in 2015, implementing improved physics, upgrades, and better integrations since.

You can find the links to its official project pages (and the downloads) here:

This fork's root stems from the 1.19.2 version of v13, created under the original scope of providing an alternative under the Fabric & Quilt ecosystems, as well as updating these ports to future versions. With the original scope met, future versions now focus on enhancements on top of the original work, as well as perpetual support into the future.

📜 Credits:

See ATTRIBUTIONS.md for credits with attached licenses, such as for sounds and code. There are some smaller credits also found on the original Forge repository! which have been omitted here.

Technical Contributions

  • Original Mod - Yyon
  • Textures - Mayesnake
  • Forge 1.18 / 1.19 Updates - Nyfaria
  • Fabric/Quilt 1.18.2+ - CG360

Translations

  • Russian - Blueberryy
  • French - Neerwan
  • Brazilian Portuguese - Eufranio

Contributing

Pull Requests and Issues are always welcome! Try to stick to templates where available but deviate if some components don't apply. Detail is important when debugging an issue or trying to implement a new system however so prioritise that!

Thanks for any help in advance! :) -- I keep an eye out for Issues and PRs fairly regularly.

📦 Building/Running the project

The full project can be built with:

  • gradle clean-all bundle-compat-modules / gradlew clean-all bundle-compat-modules depending on your install.
    • This should build to /build/ in the root project with all the compatibility extensions bundled in
  • If you want to just build the core mod, gradle clean-all :Core:build collect-jars / gradlew clean-all :Core:build collect-jars
    • This should build to /build/ in the root project using the original build behaviour.

If running the mod in a dev environment, runs should be created automatically. If not, consult the Fabric Loom Wiki on how to generate these through gradle.

Once the runs are generated, running them should place the environments for each in the following isolated folders:

  • Client [sub project]/run/client/
  • Server [sub project]/run/server/

Note that runs are only generated for the Core project - See ideConfigGenerated on the loom wiki for how to enable generation on other subprojects.

📈 Updating Versions / Adding Dependencies

Note: Configs intentionally don't work outside of release versions due to a lack of ClothConfig support. There is a warning in-game for this.

A lot of this project is streamlined to make version updates quicker by reducing the amount of redundant version strings. All mod dependencies should have their versions listed in the gradle.properties file, using variables to drop them into files such as fabric.mod.json & this README when needed. Minecraft & Fabric versions are handled in the exact same way for the same reasons.

For Minecraft Version Updates:

  • Check the Fabric Develop utility to get the version strings for a version
    • do NOT use yarn_mappings -- this project uses Mojmaps
  • Copy the versions found into the appropriate entries found in gradle.properties
    • minecraft_long_version is the same as minecraft_version for release versions and snapshot versions
    • For pre-releases and release candidates, they should have an extra dot (1.20-pre1 -> 1.20-pre.1)
    • This is because the loaded Fabric dependency and the mappings are named with slightly different schemes. :(
  • Run gradle updateDocTemplates / gradlew updateDocTemplates to update any documentation that lists versions

For Updating Dependencies:

  • Change the dependency version found in gradle.properties
  • Run gradle updateDocTemplates / gradlew updateDocTemplates to update any documentation that lists versions

For New Dependencies:

  • Add a new entry to gradle.properties with the dependency's version.
  • Add the dependency inside build.gradle, using a project placeholder referencing the gradle.properties property
  • Add the dependency to the fabric.mod.json, using a placeholder referencing the gradle.properties property
  • Add a new badge to /template_docs/README.md, using a placeholder referencing the gradle.properties property
  • Run gradle updateDocTemplates / gradlew updateDocTemplates to update any documentation that lists versions

grapplemod-restitched's People

Contributors

blueberryy avatar eufranio avatar icampbe avatar lachimheigrim avatar neerwan avatar nimbleguy avatar nvb-uy avatar nyfaria avatar spiralhalo avatar spudpiggy avatar squeeglii avatar yyon avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

grapplemod-restitched's Issues

INCOMPATIBILITY - Gliders

So theres a few kinks involved.
Firstly, if you use the grappling hook first, you can't deploy the glider, this leads to untimely demise from great hights.

Secondly, using the hook whilst gliding, will result in player death upon touching a block with their feet, no matter how smooth and slow the landing is. On top of that, you can't stop gliding once you've done this.

Thirdly, same scenario as the one above, but if you take off the glider mid glide, the player will plummet down with maximum velocity, no idea how or why it happens, but it's only happening AFTER using the hook mid glide.

  • Grappling Hook 1v5
  • Fabric 0.14.19
  • Minecraft 1.19.2
  • Gliders (Lastest/One and only)

[INCOMPATIBILITY] cloth-config 6.3.81

Describe the bug
Says grapple hook mod needs cloth config version 6.4.90 or newer but 6.3.81 is the only latest release for 1.18.2

Video / Screenshots
image

Version
Include the versions for:
1.18.2 Fabric
Grapple Hook Mod Version 1.18.2-v1.5
Cloth Config Varsion 6.3.81

Output Log
https://mclo.gs/26CbZ0D

Steps To Reproduce
Download Fabric for 1.18.2
Download Grapple Hook mod for 1.18.2
Download cloth config for 1.18.2
error when launching

Problem to launch the hook when Animalistic in activated

Versions:

  • The Grapple Hook Mod: grapplemod-1.8+1.20(.1) (Already try with 1.6 / 1.7 / 1.8 / 1.99)
  • Minecraft: 1.20.1
  • Mod Loader: Forge 47.3.5

==============================================================================

Without Animalistic no problem to launch hook since the ground

Without.Aimalistic_1.mp4

Without Animalistic

Log without animalistic on a new map.log

==============================================================================

With Animalistic, problem to launch the hook only when I am on the ground

With.Animalistic.mp4

With Animalistic

Log with animalistic.log

==============================================================================

When I disable Animalistic on my modpack of 250+ mods zero problem to launch the hook, here I just install these two, to fast try/demo and same problem

Incompatibilty With Keybind Fix

Affected Mods

  • Keybind Fix 1.0.0

Versions:

  • The Grapple Hook Mod: v2.0
  • Minecraft: 1.20.1
  • Mod Loader: Fabric Loader 0.15.11, FAPI 0.92.1

Description:

When placing down a block in a non solid block (for example a plant), the block will place twice seemingly with no cooldown.
Please include clear description of the bug, with the steps of how to recreate it.

  • If it's a crash, always include the crash log hosted on a site like https://pastebin.com/
  • Images & videos can be useful.
  1. Install all mods
  2. Load a world in creative
  3. Place a block in a plant (preferably grass)

Add config option to disable the ability to use the Magnetic Forcefield and Ender Staff as individual items

I would love it if there were a config options allowing me to disallow the player from using the magnetic forcefield in hand. You could do the same with the ender staff. Being able to practically fly at insane speeds for just some iron and redstone feels very overpowered. It would still be good to have it as a crafting ingredient, so that you can apply the upgrade to the grappling hook, but the item is too much.

Mod affects rendering

Versions:

  • The Grapple Hook Mod: v1.8
  • Minecraft: 1.20.4
  • Mod Loader: Fabric 0.15.11

Description:

After installing this mod, rendering in the distance produces a large amount of noise when stationary, resulting in unclear rendering.

  • Without the mod
    2024-06-23_16 52 23

  • With the mod
    2024-06-23_16 49 37

Elytras cannot be deployed after hook is used

Versions:

  • The Grapple Hook Mod: 1.7+1.20.1
  • Minecraft: 1.20.1
  • Mod Loader: Fabric w/ Fabric API 0.92.0

Description:

During the fall after disengaging a grappling hook, you can't use the elytra

- Taken from Discord

[INCOMPATIBILITY] Very Many People (VMP): optimized entity tracking messing up with hook's collision

Describe the bug
When using grappling hook with VMP's optimized entity tracking settings (enabled by default), the grappling hook's collision is inaccurate. (Float in the air, near the wall that it was supposed to landing at.)

Video / Screenshots
image

Version
Include the versions for:

  • The Grapple Hook Mod v1.3
  • Fabric 0.14.14 + Fabric API 0.73.2
  • Minecraft 1.19.2
  • Very Many People 0.2.0+beta.7.28 (backport for 1.19.2)

Steps To Reproduce

  1. While using VMP, right click to activate the grappling hook near a wall.
  2. Check the grappling hook collision.

Additional context

ps1. I also did a bug report on VMP's github page as well, just in case it can't be fixed on your side.
ps2. you should make a discord server btw

The keybind for throwing both hooks with a double upgrade doesn't work.

Versions:

  • The Grapple Hook Mod: 1.99.0+1.20.1.beta.fabric
  • Minecraft: 1.20.1
  • Mod Loader: Fabric 0.15.11

Description:

Using the keybind to throw both hooks for a grappling hook with the Double upgrade only throws the one on the right. Throwing each hook individually with their keybinds works.

I have tested with only this mod installed to make sure it wasn't a mod conflict which doesn't seem to be the case.

Grappling Hook out of world bounds causes IndexOutOfBoundsException

Versions:

  • The Grapple Hook Mod: 1.7
  • Minecraft: 1.20.1
  • Mod Loader: Fabric 0.15.6

This was being used in a large modpack. The server would crash but not the whole game. The error seemed to occur when trying to grapple into chunks that are still being loaded. The crash was in single player mode. Possibly relevant mods in the modpack included sodium, iris, lithium, bobby, better fps render distance, entity culling fabric/forge, no see no tick, dynamic view, debugify, chunk sending, and modernfix. Sorry if it isn't actually this mod's fault.

[17:17:36] [Netty Local Client IO #1/ERROR]: Encountered exception while handling in channel with name "grapplemod:segment"
java.lang.IndexOutOfBoundsException: Index: 8, Size: 2
at java.util.LinkedList.checkElementIndex(LinkedList.java:559) ~[?:?]
at java.util.LinkedList.remove(LinkedList.java:529) ~[?:?]
at com.yyon.grapplinghook.entity.grapplehook.SegmentHandler.removeSegment(SegmentHandler.java:155) ~[grapplemod-1.20(.1)-v1.7.jar:?]
at com.yyon.grapplinghook.network.clientbound.SegmentMessage.processMessage(SegmentMessage.java:98) ~[grapplemod-1.20(.1)-v1.7.jar:?]
at com.yyon.grapplinghook.network.NetworkManager.lambda$generateClientPacketHandler$0(NetworkManager.java:25) ~[grapplemod-1.20(.1)-v1.7.jar:?]
at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.receive(ClientPlayNetworkAddon.java:98) ~[fabric-networking-api-v1-1.3.10+eeb8eb3677-5f0732b3ac824797.jar:?]
at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.receive(ClientPlayNetworkAddon.java:40) ~[fabric-networking-api-v1-1.3.10+eeb8eb3677-5f0732b3ac824797.jar:?]
at net.fabricmc.fabric.impl.networking.AbstractChanneledNetworkAddon.handle(AbstractChanneledNetworkAddon.java:101) ~[fabric-networking-api-v1-1.3.10+eeb8eb3677-5f0732b3ac824797.jar:?]
at net.fabricmc.fabric.impl.networking.client.ClientPlayNetworkAddon.handle(ClientPlayNetworkAddon.java:90) ~[fabric-networking-api-v1-1.3.10+eeb8eb3677-5f0732b3ac824797.jar:?]
at net.minecraft.class_634.handler$eld000$fabric-networking-api-v1$handleCustomPayload(class_634.java:3768) ~[client-intermediary.jar:?]
at net.minecraft.class_634.method_11152(class_634.java) ~[client-intermediary.jar:?]
at net.minecraft.class_2658.method_11457(class_2658.java:60) ~[client-intermediary.jar:?]
at net.minecraft.class_2658.method_11054(class_2658.java:8) ~[client-intermediary.jar:?]
at net.minecraft.class_2535.method_10759(class_2535.java:175) ~[client-intermediary.jar:?]
at net.minecraft.class_2535.method_10770(class_2535.java:160) ~[client-intermediary.jar:?]
at net.minecraft.class_2535.channelRead0(class_2535.java:52) ~[client-intermediary.jar:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel.readInbound(LocalChannel.java:299) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:445) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:50) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:403) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:?]
at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54) ~[netty-transport-4.1.82.Final.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]

Crash on load

Describe the bug
When i load quilt it crashes

Version
Include the versions for:

  • The Grapple Hook Mod - 1.5
  • The Mod Loader - Quilt 0.18.4 beta, qfapi 4.0.0
  • Minecraft 1.19.2

Output Log And Crash Report
crash-2023-03-04_20.39.31.4808-quilt_loader.txt
latest.log

To Reproduce
If you can, steps to reproduce the behavior, e.g.:

  1. Load Minecraft
  2. Crash

CRASH java.lang.NullPointerException: Cannot invoke "net.minecraft.class_1297.method_18798()" because "e" is null

Versions:

  • The Grapple Hook Mod: 1.20.4-v1.7
  • Minecraft: 1.20.4
  • Mod Loader: Fabric Loader v0.15.7 - Fabric API v0.96.11+1.20.4
  • MultiMC version: 0.7.0-3857

Description:

The crash pops up whenever I'm about to use the grappling hook on any surface with the Grappling Hook Mod: Restitched. I've played many different worlds with many other mods I have, and with no other mods other than the grappling mod. I've only gotten it to crash through my modpack and it randomly crashes whenever the grapple is about to attach something. It's not consistent, it'll either crash or not but the crash is common and it's been disrupting my gameplay so many times.

The error is: [Render thread/WARN]: Client disconnected with reason: Internal Exception: java.lang.NullPointerException: Cannot invoke "net.minecraft.class_1297.method_18798()" because "e" is null

Here's the log for my recent world: https://paste.ee/p/cRMvW
image
The image is showing what mods I installed on my multimc instance.

Grappling Hook: Restitched 1.20(.1)-v1.7 - Attempting to mine grapplemod:block_grapple_modifier just destroys the block and upgrades

Versions:

  • The Grapple Hook Mod: v1.7
  • Minecraft: v1.20.1
  • Mod Loader: Fabric Loader v0.15.7
  • Fabric API 0.92.0+1.20.1
  • Cloth Config: v11.1.118

Description:

After placing the upgrade block, I can't find a way to pick it back up without it just breaking and disappearing with any applied upgrades being lost as well.

Noticed in a custom mod list, verified in a simple setup with just Minecraft, Fabric API, Cloth Config, and Grapple Hook Mod Restitched.

Glancing through the mod and code here on github, I don't see anything I'm familiar with that would control what or how the block is mineable.
Is there a way to pick up/move the block without other mods?

[BUG] Very high fall damage climbing with Double Jump boots

Describe the bug
Very high fall damage when double jumping onto some climbable surfaces, climb down it then let go of the climbable object leaving even just one single block of fall (from detatching from the climbable object to the ground or plain surface).

Video / Screenshots

10-05-2023.18-32-13.mp4

Version
Include the versions for:

  • The Grapple Hook Mod v1.5
  • Fabric Mod Loader - Fabric API v0.76.0
  • Minecraft 1.19.3

Output Log

None. Crashing or performance issues never occur

To Reproduce

  1. With Double Jump boots equipped, double jump on a climbable object (ladders, vines and probably others EXCEPT scaffholdings);
  2. Climb down or let the player character descend the climbable object for a few blocks (the higher the amount of blocks climbed down the more evident the fall damage becomes);
  3. Without climbing the entirety of the climbable object down to the last or base block, exit the climbable object hitbox and touch a ground surface;
  4. High fall damage occurs.

Additional context
The more I climb down the climbable object before landing, the more the fall damage I take.
Again, it never happened with scaffholdings

Cheers!!

Using the Grappling Hook on a dedicated server creates a ticking entity

Versions:

  • The Grapple Hook Mod: 1.20(.1)-v1.7
  • Minecraft: 1.20.1
  • Mod Loader: Forge (47.2.19) with Sinytra Connector (1.0.0-beta.39+1.20.1) and Forgified Fabric API (0.92.0+1.11.3+1.20.1)

Description:

So I switched to using this version of Grappling Hook today because I found out the Forge version doesn't work in the forge version I need to use for one of my other mods, and while it works fine in singleplayer, I run an smp and in the process of testing this on that server, when I tried to use the hook Neruina reported it as a ticking entity. Thinking it was maybe a mistake despite how many times it happened, I disabled Neruina's feature of killing ticking entities and then when I tried again the server crashed.
I tested it afterward with just what was required for Grapple Hook to work, and I would have tested it in just fabric, but my modpack needs forge for the overwhelming majority of other mods.

https://pastebin.com/ruaTKFCt <- the crashlog from when the server had my whole modpack
https://pastebin.com/DPYk6jbt <- crashlog from when both the server and my instance had only the required mods

[INCOMPATIBILITY] Amecs crash on changing keybind

Describe the bug
If Amecs is installed with Grapple Hook Restitched a crash will occur when changing a keybind.

Video / Screenshots
If applicable, add screenshots to help explain your problem.

Version
Include the versions for:

  • The Grapple Hook Mod v1.4
  • The Mod Loader: Quilt 0.17.11 / Quilted Fabric API 4.0.0-beta.28+0.73.2
  • Minecraft 1.19.2
  • Amecs 1.3.8

Output Log
Gist!

Steps To Reproduce
If you can, steps to reproduce the behavior, e.g.:

  1. Install Grapple Hook Mod v1.4
  2. Install Amecs 1.3.8
  3. Attempt to rebind a key
  4. Crash

Additional context
(This did not occur in v1.3)

How do the upgrades work?

This is an oddity in the Minecraft community where features of mods just don't seem to be explained anywhere? This isn't the first mod I've seen that does this. But, in this case, there doesn't seem to be a recipe for adding upgrades, I couldn't find a button that does it, etc... tried to look back at old showcases for the Forge version to find the answer but didn't pick anything up, the original mod doesn't explain it either, I guess you just know or you don't. I even picked through the source code to see if I could pick up a clue. Maybe it's super obvious but I'm not seeing it.

[BUG] Wall-Slide tilt broken + Cannot stop wall-sliding.

Describe the bug
Stuck at the wall with no camera tilt and sliding along it instead of runnning

Video / Screenshots

Minecraft_.version.hidden.from.driver.2023-04-14.20-23-08_Trim.mp4

Version
Include the versions for:

  • 1.5
  • Fabric 0.14.19
  • 1.19.4

To Reproduce
If you can, steps to reproduce the behavior, e.g.:

  1. Run against a wall with Wall Running Enchantment

I was using the re:squake mod in the example video above but i could reproduce it without the mod.

Possible issue with PlayerInteractEvent running twice on blocks

Versions:

  • The Grapple Hook Mod: v1.8
  • Minecraft: 1.20.1
  • Mod Loader: Fabric 0.16.0

Description:

Interacting with toggleable blocks (doors, levers, etc.) does so twice, making them ultimately not do anything unless if right-click is held for a split-second longer. Blocks like chests are also affected, but not functionally, as the sound just plays twice instead. I assume that this is some sort of issue with PlayerInteractEvent, though I'm not entirely certain.

As I don't have a clear indication of which mod is conflicting with this one, here's all of the mods I had at the time:
image
I do know that the Grapple Hook mod was somehow involved with this because the issue stopped when I removed it from my mods folder.

(I don't use GitHub very often, so please excuse me if anything important was left out.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.