Pacifism
A lightweight PVP toggling plugin. Players can turn PVP on or off, with optional grace periods and cooldowns.
Requires: BukkitOfUtils
Support: Streamline Hub Discord
Why Pacifism?
Simple configuration, minimal setup, and very lightweight. Blocks both direct melee and projectile damage, with configurable grace periods.
Installation
- Install BukkitOfUtils.
- Download the correct version of Pacifism for your server version.
- Place it in your
pluginsfolder. - Restart your server.
Commands
Notation: <required> = mandatory, (optional) = optional, "thing" = a value you provide (e.g., player name)
| Command | Description |
|---|---|
/tpvp ("player") (-f) | Toggle PVP for yourself or another player. -f bypasses cooldown. |
/spvp <on/off> ("player") (-f) | Set PVP to on or off. -f bypasses cooldown. |
/worldwhitelist <set-as> <whitelist|blacklist> | Set whether the world list acts as a whitelist or blacklist. |
/worldwhitelist <add/remove> ["world"] | Add or remove a world from the list. |
/worldwhitelist <list> | List all worlds in the whitelist/blacklist. |
/setgracetime <"ticks"> ["player"] | Set the grace period in ticks for a player. |
Permissions
Command Permissions
| Permission | Description |
|---|---|
pacifism.command.togglepvp | Use /tpvp |
pacifism.command.setpvp | Use /spvp |
pacifism.command.worldwhitelist | Use /worldwhitelist |
pacifism.command.setgracetime | Use /setgracetime |
Modifier Permissions
| Permission | Description |
|---|---|
pacifism.others.toggle | Toggle other players' PVP |
pacifism.others.set | Set other players' PVP on/off |
pacifism.others.gracetime | Set other players' grace time |
pacifism.force | Bypass cooldowns with -f |
Placeholders
Requires PlaceholderAPI.
Time Units
Use these in placeholder names below: ticks, seconds, minutes, hours, days, weeks (20 ticks = 1 second).
Available Placeholders
| Placeholder | Description | Example |
|---|---|---|
%pacifism_gracetime_left_<unit>% | Grace time remaining (integer) | 120 |
%pacifism_gracetime_left_<unit>_fancy% | Grace time remaining (formatted) | 5 minutes |
%pacifism_gracetime_left_combined% | Full formatted grace time | 1 minute 1 second 1 tick |
%pacifism_cooldown_left_<unit>% | Toggle cooldown remaining (integer) | 7 |
%pacifism_cooldown_left_<unit>_fancy% | Toggle cooldown remaining (formatted) | 3.25 seconds |
%pacifism_cooldown_left_combined% | Full formatted cooldown | 30 seconds |
%pacifism_status_simple% | PVP status as boolean | true / false |
%pacifism_status_fancy% | PVP status (configured text) | ON / OFF |
%pacifism_as_<player>_<placeholder>% | Any of the above, for a different player | %pacifism_as_Drakified_status_simple% |
Config Formatting Placeholders
These placeholders are used inside the placeholders section of config.yml to customize how values are displayed:
| Placeholder | Description |
|---|---|
%gracetime_left_<unit>% | Grace time left (rounded down) |
%gracetime_left_<unit>_full% | Grace time left (with decimals) |
%gracetime_left_<unit>_truncated:<places>% | Grace time left (truncated to N decimal places) |
%cooldown_left_<unit>% | Cooldown left (rounded down) |
%cooldown_left_<unit>_full% | Cooldown left (with decimals) |
%cooldown_left_<unit>_truncated:<places>% | Cooldown left (truncated to N decimal places) |
Configuration
config.yml
yaml
player:
# Grace period — forces PVP on after a set time.
force-toggle:
enabled: true
after: 18000 # Ticks until PVP is forced on (18000 = 15 minutes)
set-as: true # Status to set when grace period expires (true = PVP enabled)
message: "&7&oYou seem fit to &c&lfight&8&o! &7&oWe have enabled your &c&lPVP&8&o!"
send-message: true
countdown:
enabled: true
commands:
'6000':
- '(message) %player_name% &7&oYou have &a&o5 &f&ominutes &7&oleft of your grace period.'
'1200':
- '(message) %player_name% &7&oYou have &a&o1 &f&ominute &7&oleft of your grace period.'
'600':
- '(message) %player_name% &7&oYou have &a&o30 &f&oseconds &7&oleft of your grace period.'
'300':
- '(message) %player_name% &7&oYou have &a&o15 &f&oseconds &7&oleft of your grace period.'
'100':
- '(message) %player_name% &7&oYou have &a&o5 &f&oseconds &7&oleft of your grace period.'
'80':
- '(message) %player_name% &a&o4 &f&oseconds&7&o...'
'60':
- '(message) %player_name% &a&o3 &f&oseconds&7&o...'
'40':
- '(message) %player_name% &a&o2 &f&oseconds&7&o...'
'20':
- '(message) %player_name% &a&o1 &f&osecond&7&o...'
toggle:
cool-down:
enabled: true
ticks: 600 # 30 seconds between toggles
explosions:
materials:
list:
- 'WHITE_BED'
- 'ORANGE_BED'
- 'MAGENTA_BED'
- 'LIGHT_BLUE_BED'
- 'YELLOW_BED'
- 'LIME_BED'
- 'PINK_BED'
- 'GRAY_BED'
- 'LIGHT_GRAY_BED'
- 'CYAN_BED'
- 'PURPLE_BED'
- 'BLUE_BED'
- 'BROWN_BED'
- 'GREEN_BED'
- 'RED_BED'
- 'BLACK_BED'
- 'TNT'
- 'RESPAWN_ANCHOR'
is-blacklist: false
radius: 15
entities:
list:
- 'MINECART_TNT'
- 'PRIMED_TNT'
- 'ENDER_CRYSTAL'
is-blacklist: false
radius: 15
placeholders:
gracetime:
left:
negatives:
replace: true
replace-to: 0
ticks:
simple: "%gracetime_left_ticks%"
fancy: "&a%gracetime_left_ticks% &fticks"
seconds:
simple: "%gracetime_left_seconds%"
fancy: "&a%gracetime_left_seconds% &fseconds"
minutes:
simple: "%gracetime_left_minutes%"
fancy: "&a%gracetime_left_minutes% &fminutes"
hours:
simple: "%gracetime_left_hours%"
fancy: "&a%gracetime_left_hours% &fhours"
days:
simple: "%gracetime_left_days%"
fancy: "&a%gracetime_left_days% &fdays"
weeks:
simple: "%gracetime_left_weeks%"
fancy: "&a%gracetime_left_weeks% &fweeks"
combined:
fancy: "%weeks% %days% %hours% %minutes% %seconds% %ticks%"
sections:
only-show-if-not-zero: true
weeks: "&a%amount% &fweeks"
days: "&a%amount% &fdays"
hours: "&a%amount% &fhours"
minutes: "&a%amount% &fminutes"
seconds: "&a%amount% &fseconds"
ticks: "&a%amount% &fticks"
cooldown:
left:
negatives:
replace: true
replace-to: 0
ticks:
simple: "%cooldown_left_ticks%"
fancy: "&a%cooldown_left_ticks% &fticks"
seconds:
simple: "%cooldown_left_seconds%"
fancy: "&a%cooldown_left_seconds% &fseconds"
minutes:
simple: "%cooldown_left_minutes%"
fancy: "&a%cooldown_left_minutes% &fminutes"
hours:
simple: "%cooldown_left_hours%"
fancy: "&a%cooldown_left_hours% &fhours"
days:
simple: "%cooldown_left_days%"
fancy: "&a%cooldown_left_days% &fdays"
weeks:
simple: "%cooldown_left_weeks%"
fancy: "&a%cooldown_left_weeks% &fweeks"
combined:
fancy: "%weeks% %days% %hours% %minutes% %seconds% %ticks%"
sections:
only-show-if-not-zero: true
weeks: "&a%amount% &fweeks"
days: "&a%amount% &fdays"
hours: "&a%amount% &fhours"
minutes: "&a%amount% &fminutes"
seconds: "&a%amount% &fseconds"
ticks: "&a%amount% &fticks"
status:
pvp-off:
simple: "%status_pvp%"
fancy: "&c&lOFF"
pvp-on:
simple: "%status_pvp%"
fancy: "&a&lON"
database:
type: 'SQLITE' # MYSQL or SQLITE
host: 'localhost'
port: 3306
username: 'root'
password: 'password'
table-prefix: 'pacifism_'
database: 'pacifism'
sqlite-file-name: 'pacifism.db'messages.yml
yaml
status:
enabled: "&aenabled"
disabled: "&cdisabled"
# Set any message to "" to disable it.
toggle:
success:
self:
self: "&eYou have %status% &eyour PVP&8!"
upon:
enable: "&7(You will be able to take damage from other players.)"
disable: "&7(You will not be able to take damage from other players.)"
other:
self: "&eYou have %status% &b%player_name%&e's PVP&8!"
other: "&eYour PVP has been %status% &eby &b%player_name%&8!"
upon:
enable: "&7(They will be able to take damage from other players.)"
disable: "&7(They will not be able to take damage from other players.)"
cannot:
self:
self: "&cYou cannot toggle your PVP&8!"
time-left: "&cYou have &f%cooldown_left_seconds% &cseconds left before you can toggle your PVP again&8!"
other:
self: "&cYou cannot toggle &b%player_name%&c's PVP&8!"
time-left: "&cThey have &f%cooldown_left_seconds% &cseconds left before they can toggle their PVP again&8!"
set:
success:
self:
self: "&eYou have %status% &eyour PVP&8!"
upon:
enable: "&7(You will be able to take damage from other players.)"
disable: "&7(You will not be able to take damage from other players.)"
other:
self: "&eYou have %status% &b%player_name%&e's PVP&8!"
other: "&eYour PVP has been %status% &eby &b%player_name%&8!"
upon:
enable: "&7(They will be able to take damage from other players.)"
disable: "&7(They will not be able to take damage from other players.)"
cannot:
self:
self: "&cYou cannot toggle your PVP&8!"
time-left: "&cYou have &f%cooldown_left_seconds% &cseconds left before you can toggle your PVP again&8!"
other:
self: "&cYou cannot toggle &b%player_name%&c's PVP&8!"
time-left: "&cThey have &f%cooldown_left_seconds% &cseconds left before they can toggle their PVP again&8!"
set-grace-time:
success:
self:
self: "&eYou have set your grace-time to &b%gracetime_left_seconds% &eseconds&8!"
other:
self: "&eYou have set &b%player_name%&e's grace-time to &b%gracetime_left_seconds% &eseconds&8!"
other: "&eYour grace-time has been set to &b%gracetime_left_seconds% &eseconds&8!"
pvp:
disabled:
self: "&cYou have PVP disabled! You cannot hurt other players."
other: "&cThat player has PVP disabled! You cannot hurt them."