No Feather Attack

A small Paper plugin that makes feather hits deal no damage, only applying light (configurable) knockback.

46

Quick challenge

How far can you run before the mobs catch you?

No Feather Attack

No Feather Attack

[aka Feather Attack Cancel]

Feather hit is not an attack — a small Paper plugin that turns feather hits into knockback-only interactions. It cancels damage (so villagers don’t get angry and no damage side-effects fire) while still applying a light custom knockback.

Features

- Knockback-only feather hits: cancels the damage event and applies custom push. - Per-player toggle via command `/featherhit`. - Auto-enable on player join (and on plugin reload for already-online players). - Client language message support: `en_us`, `de_de`, `fr_fr`, `es_es`, `hu_hu`. - Builds for multiple MC versions via Maven profiles (1.21.7 and 1.21.8).

Requirements

- Java 21 (Paper 1.21+ requires Java 21). - PaperMC server 1.21.7 or 1.21.8 (matching the built JAR).

Installation

1. Download/build the JAR for your server version (see Build section). 2. Place the JAR into your server’s `plugins/` folder. 3. Start the server. The plugin will create: - `plugins/NoFeatherAttack/config.yml` - `plugins/NoFeatherAttack/lang/*.yml`

Commands

- `/featherhit` — Toggle feather knockback-only mode for yourself.

Permissions: none (by default all players can use the command).

Configuration

File: `plugins/NoFeatherAttack/config.yml` (use spaces only, no TABs)

Keys - trigger-item: Uppercase Bukkit material name for the item that triggers the knockback-only hit. Default: FEATHER

- knockback: - min-charge: Number (0.0–1.0). Minimum attack cooldown required to apply knockback. 1.0 = fully charged. Default: 0.9 - horizontal: Number. Base horizontal strength of the knockback vector. Default: 0.6 - min-upward: Number. Ensures at least this upward (Y) component so hits don’t push targets downward. Default: 0.35 - scale-by-charge: Boolean. If true, scales horizontal strength by the current attack charge (prevents weak spam from being as strong as full hits). Default: false - clamp-velocity: Boolean. If true, clamps the target’s final velocity magnitude to avoid “stacking” launches. Default: true - max-velocity: Number. Maximum final velocity magnitude when clamping is enabled. Default: 1.2

- behavior: - auto-enable-on-enable: Boolean. When the plugin enables (e.g., server start/reload), automatically enables the feature for players already online. Default: true - auto-enable-on-join: Boolean. Automatically enables the feature for players when they join. Default: true

Applying changes - There is no reload subcommand; `/featherhit` only toggles the feature for the executing player. - To apply config changes, restart the server (or stop/start).

Language files - Path: `plugins/NoFeatherAttack/lang/` - Fallback order: exact client tag (e.g., `de-de.yml`) → underscore form (e.g., `de_de.yml`) → `en_us.yml`. - Color codes: use `&` (e.g., `&6`, `&a`).

Examples ```yaml

Softer knockback that scales with charge

trigger-item: FEATHER knockback: min-charge: 0.9 horizontal: 0.45 min-upward: 0.30 scale-by-charge: true clamp-velocity: true max-velocity: 1.0 behavior: auto-enable-on-enable: true auto-enable-on-join: true ```

Notes on Namespaced Command Suggestions

If tab-complete shows a namespaced command like `/nofeatherattack:featherhit`, this comes from the plugin name namespace. On Paper, you can hide namespaced suggestions by setting `send-namespaced=false` in `paper-global.yml` (or relevant Paper config for your version).

ADS