
Carpet PVP
Fork of Carpet Mod that fixes PVP-related bugs with carpet fake players and adds some new commands.
About
This mod was made to be used by Theobald's PVP Practice map.
This mod fixes bugs and quirks with Carpet mod's fake players to be more consistent with real players, and adds extra commands for controlling players through a datapack.
Updated for 1.4: Do not reference this for 1.2
<details> <summary>Differences from Carpet Mod</summary> <details> <summary>Fixes</summary>-
Fixed gliding to work with
/player jumpwhile in midair -
Fixed fall distance not updating correctly (fixes crit and mace behavior)
-
Fixed downward motion not being saved in some cases
-
Fixed
/player lookyaw/pitch being reversed -
Fixed multiple edge cases related to fake player movement and actions
-
Added a toggle to allow/disallow shield stunning for players
-
Added target selector support to player commands
-
Renamed
/player <name> spawnto/playerspawn <name>- now it is
/playerspawn <name> [at <coords> [in <gamemode> [on <world>]]]
- now it is
-
Added look mode options to
/player <target> look upon <entity> [eyes|feet|closest]-
eyes- looks at the entity’s eyes (default) -
feet- looks at the entity’s feet -
closest- looks at the closest point of the entity’s hitbox
-
-
Added
itemCdcommand for item cooldown control-
itemCd- resets all item cooldowns [returns how many items were reset] -
itemCd <item>- shows how many ticks left on the item's cooldown, says ready if no cooldown [returns how many ticks left] -
itemCd <item> reset- resets cooldown [returns how many players were targeted] -
itemCd <item> set- applies the default item cooldown without using it [returns how many players were targeted]. If there is no default item cooldown, will not do anything [for example cobblestone] -
itemCd <item> set <ticks>- applies a custom total cooldown duration without using it [returns how many players were targeted]
-
-
Added swing animation command for fake players
-
Swings a hand without performing an action
-
Resets attack cooldown
-
No parameters stop any ongoing swinging
-
-
Changed
/player use(no parameters) to stop using without triggering another use- Previously behaved the same as
/player use once
- Previously behaved the same as
-
Changed
/distanceto store spherical distance values into scoreboards -
Added
eargument to/distancefor higher scale- for example:
/distance from HerobaneNair to TheobaldTheBot e 4while we're 4 blocks away will return4000to be stored in a scoreboard as needed
- for example:
-
Added support for measuring distance between two entities
-
Added horizontal and vertical distance measurement:
-
/distance from <from> to <to> horizontal|vertical -
Allows measuring horizontal or vertical distance between entities or positions
-
-
Added carpet rule for shield stunning
-
Added carpet rule for editable player NBT
/carpet editablePlayerNbt
-
Added carpet rule to disable fire from anchors and beds
/carpet explosionNoFire
-
Changed explosion block damage rule behavior:
-
false- vanilla behavior -
most- affects non-solid blocks except glowstone and redstone-redirecting blocks (buttons, levers, etc.) -
true- prevents all block damage
-
Versions
## Changes & Fixes ### Fixes - Fixed gliding to work with `/player jump` while in midair - Fixed fall distance not updating correctly (fixes crit and mace behavior) - Fixed downward motion not being saved in some cases - Fixed `/player look` yaw/pitch being reversed - Fixed multiple edge cases related to fake player movement and actions ### Player Commands - Added target selector support to player commands - Renamed `/player <name> spawn` to `/playerspawn <name>` #### `/player look` - Added look mode options to `/player <target> look upon <entity> [eyes|feet|closest]` - `eyes` — looks at the entity’s eyes (default) - `feet` — looks at the entity’s feet - `closest` — looks at the closest point of the entity’s hitbox #### Fake Player Actions - Added swing animation command for fake players - Swings a hand without performing an action - Resets attack cooldown - No parameters stop any ongoing swinging - Changed `/player use` (no parameters) to stop using without triggering another use - Previously behaved the same as `/player use once` ### Distance Measurement - Changed `/distance` to store spherical distance values into scoreboards - Added `scale` argument to `/distance` for higher precision - Added support for measuring distance between two entities - Added horizontal and vertical distance measurement: - `/distance from <from> to <to> horizontal|vertical` - Allows measuring horizontal or vertical distance between entities or positions ### Item Cooldowns - Added `itemCd` command for item cooldown control - `itemCd` — resets all item cooldowns - `itemCd minecraft:shield` — returns the shield delay in ticks as a storable value - `itemCd minecraft:shield reset` — resets the shield delay - `itemCd minecraft:ender_pearl set` — applies the default pearl cooldown without using a pearl - `itemCd minecraft:ender_pearl set <ticks>` — applies a custom total cooldown duration - Enables custom application, retrieval, and resetting of item cooldowns
- Fakeplayer no longer disconnects on death, instead respawns where it was originally spawned, making bot death way less annoying to deal with in a datapack - Added `/player disconnect` subcommand for the fakeplayer - Added Carpet setting for toggling shield stunning! usage: `/carpet shieldStunning <true/false>` - Fixed knockback issues (mainly with knockback enchanted swords during fire ticks) - Added a poor man's `@s` target selector to the `/player` command. By using `/execute as ... run player s ...`, fake players are now able to target themselves with commands. This removes the need to hard code bot names in datapacks, and allows for controlling multiple players with a single `/execute` command