(you can customize any of these in the recipes.yml file)
Features:
No commands necessary.
Pull yourself to locations.
Pull entities to you.
Pull items on the ground to you.
Configurable uses per grappling hook.
Define your own grappling hooks.
Custom names and lore per hook.
Custom model data support per hook.
Set block blacklists or whitelists per hook.
Set entity blacklists or whitelists per hook.
Set velocity for throwing and pulling per hook.
Set time cooldown between uses per hook.
Control fall damage settings per hook.
Control rappel and slow fall per hook.
Control velocity halt when line snaps per hook.
Control sticky hooks per hook.
No permissions required. (But are supported)
No configuration required. (But is optional)
Plug and Play.
Configuration: All grappling hooks and their features can be configured in the recipes.yml file.
Code (Java):
recipes
: 1: enabled
:true id
:'wood_hook' name
:'&6Wood Grappling Hook' lore
: -'&7Uses left - &a[uses]' customModelData
:0 uses
:5 velocityThrow
:1.0 velocityPull
:1.0 timeBetweenGrapples
:0 # in seconds #
fallDamage
:false slowFall
:true lineBreak
:true stickyHook
:true recipe
: materials
: F
:'FISHING_ROD' P
:'OAK_PLANKS' #
this is all wood planks #
shape
: -'[][P][P]' -'[][F][P]' -'[][][]' entity
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'ITEM_FRAME' -'ARMOR_STAND' material
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'WATER' -'AIR' 2: enabled
:true id
:'stone_hook' name
:'&6Stone Grappling Hook' lore
: -'&7Uses left - &a[uses]' customModelData
:0 uses
:10 velocityThrow
:1.0 velocityPull
:1.0 timeBetweenGrapples
:0 # in seconds #
fallDamage
:false slowFall
:true lineBreak
:true stickyHook
:true recipe
: materials
: F
:'FISHING_ROD' C
:'COBBLESTONE' shape
: -'[][C][C]' -'[][F][C]' -'[][][]' entity
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'ITEM_FRAME' -'ARMOR_STAND' material
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'WATER' -'AIR' 3: enabled
:true id
:'iron_hook' name
:'&6Iron Grappling Hook' lore
: -'&7Uses left - &a[uses]' customModelData
:0 uses
:20 velocityThrow
:1.0 velocityPull
:1.0 timeBetweenGrapples
:0 # in seconds #
fallDamage
:false slowFall
:true lineBreak
:true stickyHook
:true recipe
: materials
: F
:'FISHING_ROD' I
:'IRON_INGOT' shape
: -'[][I][I]' -'[][F][I]' -'[][][]' entity
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'ITEM_FRAME' -'ARMOR_STAND' material
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'WATER' -'AIR' 4: enabled
:true id
:'gold_hook' name
:'&6Gold Grappling Hook' lore
: -'&7Uses left - &a[uses]' customModelData
:0 uses
:25 velocityThrow
:1.0 velocityPull
:1.0 timeBetweenGrapples
:0 # in seconds #
fallDamage
:false slowFall
:true lineBreak
:true stickyHook
:true recipe
: materials
: F
:'FISHING_ROD' G
:'GOLD_INGOT' shape
: -'[][G][G]' -'[][F][G]' -'[][][]' entity
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'ITEM_FRAME' -'ARMOR_STAND' material
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'WATER' -'AIR' 5: enabled
:true id
:'emerald_hook' name
:'&6Emerald Grappling Hook' lore
: -'&7Uses left - &a[uses]' customModelData
:0 uses
:40 velocityThrow
:1.0 velocityPull
:1.0 timeBetweenGrapples
:0 # in seconds #
fallDamage
:false slowFall
:true lineBreak
:true stickyHook
:true recipe
: materials
: F
:'FISHING_ROD' E
:'EMERALD' shape
: -'[][E][E]' -'[][F][E]' -'[][][]' entity
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'ITEM_FRAME' -'ARMOR_STAND' material
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'WATER' -'AIR' 6: enabled
:true id
:'diamond_hook' name
:'&6Diamond Grappling Hook' lore
: -'&7Uses left - &a[uses]' customModelData
:0 uses
:100 velocityThrow
:1.0 velocityPull
:1.0 timeBetweenGrapples
:0 # in seconds #
fallDamage
:false slowFall
:true lineBreak
:true stickyHook
:true recipe
: materials
: F
:'FISHING_ROD' D
:'DIAMOND' shape
: -'[][D][D]' -'[][F][D]' -'[][][]' entity
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'ITEM_FRAME' -'ARMOR_STAND' material
: listType
:'BLACKLIST' # options are BLACKLIST and WHITELIST
list
: -'WATER' -'AIR' 7: enabled
:true id
:'air_hook' name
:'&6Air Grappling Hook' lore
: -'&7Uses left - &a[uses]' customModelData
:0 uses
:10 velocityThrow
:1.0 velocityPull
:1.0 timeBetweenGrapples
:0 # in seconds #
fallDamage
:false slowFall
:false lineBreak
:false stickyHook
:false recipe
: materials
: F
:'FISHING_ROD' E
:'FEATHER' shape
: -'[][E][E]' -'[][F][E]' -'[][][]' entity
: listType
:'WHITELIST' # options are BLACKLIST and WHITELIST
list
: -'' material
: listType
:'WHITELIST' # options are BLACKLIST and WHITELIST
list
: -'AIR' 8: enabled
:true id
:'water_hook' name
:'&6Water Grappling Hook' lore
: -'&7Uses left - &a[uses]' customModelData
:0 uses
:100 velocityThrow
:1.0 velocityPull
:1.0 timeBetweenGrapples
:0 # in seconds #
fallDamage
:false slowFall
:false lineBreak
:false stickyHook
:false recipe
: materials
: F
:'FISHING_ROD' B
:'WATER_BUCKET' shape
: -'[][B][B]' -'[][F][B]' -'[][][]' entity
: listType
:'WHITELIST' # options are BLACKLIST and WHITELIST
list
: -'' material
: listType
:'WHITELIST' # options are BLACKLIST and WHITELIST
list
: -'WATER'
Some variable explanations are as follows:
Code (Text):
velocityThrow - this applies a multiplier on the velocity of the hook when it is cast out (thrown) by the player
velocityPull - this applies a multiplier on the velocity of the player when a hook is pulled in (used) by the player
timeBetweenGrapples - this sets a timer so the hook can only be used every 'x' seconds
fallDamage - if this is false, fall damage will not inflict the user after use
lineBreak - if this is true, the players velocity will be reset when the fishing line snaps
stickyHook - this allows a hook to stick to walls and ceilings when it hits them
/gh give<hook_id>- puts a grappling hook in your inventory with id <hook_id>
/gh give<hook_id> <player> - puts a grappling hook in <player>'s inventory with id <hook_id>
grapplinghook.pull.self - Allows player to pull themselves with the hook
grapplinghook.pull.mobs - Allows player to pull mobs with the hook
grapplinghook.pull.players - Allows player to pull other players with the hook
grapplinghook.pull.items - Allows player to pull items with the hook
grapplinghook.craft.<hook_id> - Allows player to craft the grappling hook defined in recipes.yml with id = <hook_id>
grapplinghook.operator - Allows player to use commands
grapplinghook.player.nopull - Player can not be pulled by other players
grapplinghook.player.nocooldown - Player ignores grapple cooldown (if one is set)
Also, if you enjoy my plugins and want to buy me a coffee, you can donate below. Thank you!