AgreedPvP 1.5

Civilised Player versus Player combat. Players can only pvp if both players agree!

  1. Zedwick
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    Civilised Player versus Player combat. Players can only pvp if both players agree!

    Players are protected from PvP at all times, unless both have agreed to pvp with the other. Players can easily agree to PvP with patented (not really) sneak & slap technology! Players simply hold their sneak button (default: shift) and slap (default: left click) the other player to challenge them to a duel! The second player can sneak+slap back to agree to pvp. Once both players have agreed to the duel, they can freely hurt each other.

    Version 1.5+ is fully compatible with the 1.13 API, as-well as spigot versions from 1.8 through 1.12.2.

    SectionHeader_Features.png
    • No commands required! sneak+slap to agree to pvp, and sneak+slap with an empty hand to cancel pvp.
    • Commands available! Use /agreedpvp toggle [player] to agree to pvp globally or per player
    • Players' pvp agreements are reset when joining the server. They must agree once per session!
    • Player's pvp agreements can optionally be reset when they die. (See config)
    • Players are protected from a variety of pvp (melee, arrow, snowball, tnt, flame, etc.)
    • All plugin messages are shown in the action bar
    • Run other plugin's commands whenever a player agrees/disagrees to pvp!
    • Disable players using other plugin's commands whilst they have agreed to pvp.
    • Per-world configs; enable/disable AgreedPvP protections in each world seperately!

    SectionHeader_Config.png

    config.yml

    Code (Text):
    messages:
      attacker:
        bypass: You are bypassing AgreedPvP!
        nopvp: You must agree to pvp before you can attack %v!
        nopvpvictim: '%v must agree to pvp before you may hurt them.'
        generic: You were protected from %a.
      victim:
        nopvp: You must agree to pvp before %a can hurt you.
        nopvpattacker: '%a must agree to pvp before they may hurt you.'
        generic: You were protected from %a.
      toggle:
        off:
          player: You no longer agree to pvp with %p.
          playernotify: %p no longer agrees to pvp with you.
        on:
          player: You have invited %p to PvP!
          playernotify: %p has invited you to PvP!
          bothagree: %p has agreed to PvP with you!
      commands:
        disabled: You cannot use this command whilst you have agreed to pvp!
    autotoggle:
      death: false
    enable:
      sneakandslap: true
    commands:
      onAgree: []
      onDisagree: []
      onEnable: []
      onDisable: []
      disable:
        onAgree: []
     
    world/world.yml

    Code (Text):
    enabled: true
    commands:
      onAgree: []
      onDisagree: []
      onEnable: []
      onDisable: []
     

    SectionHeader_Setup.png

    Installation is easy, just drop it into your plugins folder. Everything should be ready to go with no configuration necessary!

    Configuration explained

    The default plugin config contains some messages the plugin uses, you can change these as desired.

    • messages.attacker.bypass: Displayed to a player with the permission node agreedpvp.pvpbypass when they attack another player.
    • messages.attacker.nopvp: Displayed to any player who has not yet agreed to pvp when trying to attack another player.
    • messages.attacker.nopvpvictim: Displayed to any player who is trying to attack another player who has not yet agreed to pvp.
    • messages.attacker.generic: Displayed to any player when trying to attack another player when the above instances, for whatever reason, do not apply.
    • messages.victim.nopvp: Displayed to any player who has not yet agreed to pvp when protected from another player's attack.
    • messages.victim.nopvpattacker: Displayed to any player who has already agreed to pvp when protected from another player's attack.
    • messages.victim.generic: Displayed to any player when protected from another players' attack when the above instances, for whatever reason, do not apply.
    • messages.toggle.off.player: Displayed to a player when they cancel pvp with another player.
    • messages.toggle.off.playernotify: Displayed to a player when another player cancels pvp with them.
    • messages.toggle.on.player: Displayed to a player when they agree to pvp with another player
    • messages.toggle.on.playernotify: Displayed to a player when another player has agreed to pvp with them.
    • messages.toggle.on.bothagree: Displayed to both players when they have both agreed to pvp. (Usually when the second player has agreed).
    • autotoggle.death: if true, will auto-toggle a player's pvp off when they die.
    • enable.sneakandslap: if false, will disable the sneak+slap feature for agreeing to pvp. (default: true)
    • commands.onAgree: A list of commands to run when a player agrees to pvp with another player; supports the %player% and %other% placeholders.
    • commands.onDisagree: A list of commands to run when a player no longer agrees to pvp with another player; supports the %player% and %other% placeholders.
    • commands.onEnable: A list of commands to run when a player enables pvp with all players; supports the %player% placeholder.
    • commands.onDisable: A list of commands to run when a player disables pvp with all players; supports the %player% placeholder.
    • commands.disable.onAgree: A list of commands and subcommands to disable when a player has agreed to pvp with one or more players.
    The per-world configs contain settings for each world individually.

    • enabled: when false, AgreedPvP will be disabled in this world. (default: true)
    • commands.onAgree: A list of commands to run when a player agrees to pvp with another player whilst in this world; supports the %player% and %other% placeholders. This list will be ran after commands.onAgree commands from the default plugin config.
    • commands.onDisagree: A list of commands to run when a player no longer agrees to pvp with another playerwhilst in this world; supports the %player% and %other% placeholders.This list will be ran after commands.onDisagree commands from the default plugin config.
    • commands.onEnable: A list of commands to run when a player enables pvp with all players whilst in this world; supports the %player% placeholder. This list will be ran after commands.onEnable commands from the default plugin config.
    • commands.onDisable: A list of commands to run when a player disables pvp with all players whilst in this world; supports the %player% placeholder. This list will be ran after commands.onDisable commands from the default plugin config.


    SectionHeader_Screenshot.png

    Coming soon...

    SectionHeader_Notes.png

    This plugin uses the TextAPI library by theluca98, which is included in this plugin's jar.
    You do not need to install any other plugin dependencies in order to use this plugin.
    Sr.Sawa likes this.

Recent Reviews

  1. Mrgts
    Mrgts
    5/5,
    Version: 1.5
    fantastic plugins, does exactly what it says it does.

    can you also please add support for 1.14/1.14.1?

    would really appreciate it <3
    1. Zedwick
      Author's Response
      Thanks for the review! ^_^

      As far as I am aware, version 1.5 should be fully compatible with MC 1.14/1.14.1. However, I plan to release a minor update compiled and tested against 1.14.1 later this week.
  2. MrHumblePie
    MrHumblePie
    5/5,
    Version: 1.1.5
    Fantastic little plugin, the interface is slimline and minimal, suitable config options, and it lets players decide if they want to take part in pvp or not.
    1. Zedwick
      Author's Response
      Thank you for the review! ^_^
  3. ReachesHigh
    ReachesHigh
    4/5,
    Version: 1.1.4
    Awesome plugin. Does exactly what it says. It is very refined and doesn't get in the way or spam messages saying that you can't attack someone. This is exactly what I wanted on my server, and this plugin almost completely met my expectations. About that, I wish that the agreement to PvP reset once one person died, instead of having to reconnect. Also, there doesn't seem to be a command that enables pvp globally for that one player, and I wish that was possible. Either way, it is the best plugin I was able to find, great job!
    1. Zedwick
      Author's Response
      Thank you for the review! ^_^
      If you are looking for a command to agree to pvp globally with any player willing then you can currently use "/agreedpvp toggle", but the other player also has to toggle it on globally or agree to pvp with you specifically. I will add toggle-off when a player dies as a config option in a future update. If you have any other feedback or suggestions, then please don't hesitate to send me a PM.