Sueta

PvPDuels

0.0.2

Non-Kit based PvP duels for Survival/Faction Servers

·Plugin

Non-Kit based PvP duels for Survival/Faction Servers

I designed this plugin for Non-PvP based servers wishing to add a PvP style element to the server. For this reason, I avoided the kit route.

Please Note: This plugin is very buggy! use at your own peril

Features:

  • Matchmaking & Requests
  • Full GUI
  • In-Game map creator
  • Stats & Win Count
  • High Customisation with Permissions & Config
  • Fully Customisation Language File
  • Multi-Lingual
  • Tab Complete
Images

Known Bugs:

  • Commands dont work
  • Some Mistakes in language file
  • Slow Targeted Match Start
  • Maps enabled/disabled inverted

- Will Fix soon - sam
------------------------------------------------------------------------------------

Installation:

  • Download the Resource (.jar file)
  • Place it in your /plugins folder of your server
  • Reload/Restart the Sever

Commands:

User Commands:

/pvp - Help/GUI
/pvp gui - GUI
/pvp matchmake - Join the Matchmake Queue
/pvp request <name> - Request a Duel with another player
/pvp accept <name> - Accept a Duel from another player
/pvp stats - View Player Stats

Admin Commands:

/pvpadmin - Admin Help
/pvpadmin list - List all Maps
/pvpadmin create <id> - Create a new map
/pvpadmin delete <id> - Delete a map
/pvpadmin info <id> - Show map info
/pvpadmin edit <id> <spawn1 | spawn2> - Set a map spawn
/pvpadmin edit <id> name <value> - Set map formal name
/pvpadmin enable <id> - Enable a map into circulation
/pvpadmin disable <id> - Disable a map out of circulation

------------------------------------------------------------------------------------

Usage:

Create a new map

For this we can assume our new map id as map1 .
Replace map1 with your new map id.

Step 1: Build or Download your map.

Setup the map in the location you desire

Step 2: Create the map

/pvpadmin create map1
/pvpadmin edit map1 name Example Map

Step 3: Set Spawns

Go to the locations that you want the player to spawn.
Make sure to look in the direction you want the player to spawn.
/pvpadmin edit map1 spawn1
or
/pvpadmin edit map1 spawn2

Step 4: Enable the map

Maps are disabled by default
/pvpadmin enable map1
By enabling the map, it allows the map to be put into match creation

------------------------------------------------------------------------------------

Configs:
There are a 4 config files created upon startup:

configuration.yml

Chat Formating
Game Settings
Rewards and Commands

language.yml

Stores all text for responses and GUI
Holds multiple languages

maps.yml

Stores all map settings

store.yml

Stores Player data
Other stuff
Not recommended to be edited

Example Configs:

configuration.yml
format  :  
  lang   :  en  
  format   :   " §p$prefix§r  §m$msg"   
  colour  :  
    highlight   :   "§8"   
    msg   :   "§7"   
    warn   :   "§e"   
    success   :   "§a"   
    error   :   "§c"   
    info   :   "§3"   
  prefix  :  
    error   :   "§l✖"   
    warn   :   "⚠"   
    success   :   "§l✔§r"   
    info   :   "⚔"   
game  :  
  match  :  
    gametime   :  60  
    timewarnings   :   [  1,2,3,4,5,10,20,30,60,90,120,150  ]   
    countdown   :  3  
  waitformap   :  30  
  targetcountdown   :  5  
  commands  :  
    start   :   [   ]   
    finish   :   [   ]   
    winner   :   [   ]   
    loser   :   [   ]   
    tie   :   [   ]
language.yml
en  :  
  error  :  
    senderTypeError   :   "You must be a player to Execute this command"   
    notImplemented   :   "This feature is not implemented"   
    noResponse   :   "Command returned no response"   
    usage   :   "Usage: §h/$command §m$usage"   
    permission   :   "You do not have permission to run this command"   
    permission-admin   :   "$message §h($permission)"   
    noplayer   :   "A player with that name does not exist"   
  admin  :  
    maps  :  
      exist   :   "Map with id '$id' already exists"   
      noexist   :   "Map with id '$id' does not exist"   
      list   :   "$count maps: §h$list"   
      create   :   "Created new map '$id'"   
      delete   :   "Deleted map '$id'"   
      info  :  
        header   :   "    §m------ §hMAP INFO §m------"   
        footer   :   "    §m------ -------- ------"   
        body   :   "    §m$key: §h$value"   
      edit   :   "Set map $key for '$id' to $value"   
      disable   :   "Disabled map '$id'"   
      enable   :   "Enabled map '$id'"   
  play  :  
    wait  :  
      map   :   "Waiting for map"   
      peer   :   "Waiting for peer"   
      setup   :   "Setting up Match. (Approx $time seconds)"   
    matchmake  :  
      join   :   "You have joined the Matchmaking Queue"   
      leave   :   "You have left the Matchmaking Queue"   
      queue   :   "Queue Position: $pos"   
      found   :   "Found Matchmake: $player1v$player2"   
    target  :  
      send   :   "Sent PvP request to $player"   
      recv   :   "$player wants to PvP you! To accept run $command"   
      expire   :   "Your PvP request to $player has expired"   
      exist   :   "You have already requested to PvP '$player'"   
      accept   :   "Accepted $player PvP request."   
      accepted   :   "$player has accepted your request."   
      none   :   "You have no PvP Requests"   
      multiple   :   "You have multiple PvP Requests. Do /pvp accept <name>"   
      noplayer   :   "You dont have a PvP Request from that player"   
      start   :   "Starting Match in $time seconds"   
    stats  :  
      header   :   "    §m------ §h Player Stats §m------"   
      footer   :   "    §m------ §h ------------ §m------"   
      body   :   "    §m$key: §h$value"  
 
  time  :  
    seconds   :   "seconds"   
    second   :   "second"   
    minutes   :   "minutes"   
    minute   :   "minute"   
  game  :  
    msg  :  
      remain   :   "$time remaining"   
      lost   :   "You lost against $other"   
      win   :   "You won against $other"   
    title  :  
      time   :   "§7$time §7remaining"   
      timewarn   :   "§c$time §7remaining"   
      start   :   "§aFIGHT!"   
      win   :   "§aYou Won!"   
      lose   :   "§cYou Lost"   
      tie   :   "§6You Tied"   
  gui  :  
    general  :  
      close  :  
        title   :   "Close"   
        subtitle   :   "Close the menu"   
      back  :  
        title   :   "Back"   
        subtitle   :   "Go to the Previous Menu"  
 
    home  :  
      title   :   "PvPDuels Menu"   
      matchmake  :  
        title   :   "Play: Matchmake"   
        subtitle   :   "Starting A PvP duel with a random person"   
      request  :  
        title   :   "Play: Request"   
        subtitle   :   "Invite a specific person to a PvP duel!"   
      accept  :  
        title   :   "Play: Incoming Request"   
        subtitle   :   "Accept an Incoming request"   
      stats  :  
        title   :   "Player Stats"   
        subtitle   :   "See your wins and loses"   
      credit   :   "Credit"   
    stats  :  
      title   :   "PvPDuels Player Stats ($player)"   
      wins  :  
        title   :   "Wins"   
        subtitle   :   "§f$v §7wins"   
      loses  :  
        title   :   "Loses"   
        subtitle   :   "§f$v §7loses"   
      ties  :  
        title   :   "Ties"   
        subtitle   :   "§f$v §7ties"   
      count  :  
        title   :   "Total"   
        subtitle   :   "§f$v §7total games"   
    request  :  
      title   :   "PvPDuels Request Duel"   
      clickable  :  
        title   :   "$player"   
        subtitle   :   "Invite to PvP Duel"   
    accept  :  
      title   :   "PvPDuels Accept Duel"   
      clickable  :  
        title   :   "$player"   
        subtitle   :   "Accept Pvp Duel from $player"
maps.yml
maps  :  
  test  :  
    name   :  Epic Test map  
    spawn1  :  
      world   :  world  
      x   :  -27  
      y   :  84  
      z   :  -33  
      rx   :  -0.0  
      ry   :  -180.0  
      'null'   :  false  
    spawn2  :  
      world   :  world  
      x   :  -27  
      y   :  84  
      z   :  -42  
      rx   :  -0.0  
      ry   :  17.860754013061523  
      'null'   :  false  
    enabled   :  false  
  demo  :  
    name   :  Demo  
    spawn1  :  
      world   :  world  
      x   :  -17  
      y   :  55  
      z   :  -140  
      rx   :  -0.15020181238651276  
      ry   :  -180.37744140625  
      'null'   :  false  
    spawn2  :  
      world   :  world  
      x   :  -17  
      y   :  55  
      z   :  -176  
      rx   :  1.3495675325393677  
      ry   :  -359.3263854980469  
      'null'   :  false  
    enabled   :  true
store.yml
players  :  
  f39e8647-c99f-3d71-a09b-2ebf5daa121f  :  
    name   :  Landon1986  
    stats  :  
      c   :  10  
      t   :  1  
      w   :  1  
      l   :  8  
    games   :   [   ]   
  a6a08663-91c9-3062-b2dc-cfc6c045fadf  :  
    name   :  SamHDev  
    stats  :  
      c   :  10  
      t   :  1  
      w   :  8  
      l   :  1  
    games   :   [   ]

Permissions:
You can use PEX or other permission mangers to assign permissions
In General:

For users - pvpduels.use.*
For Admins - pvpduels.use.* + pvpduels.admin.* or pvpduels.*

All Permissions
permissions  :  
  pvpduels.admin  :  
    description   :   "Allows PvP Duels admin commands"   
  pvpduels.admin.list  :  
    description   :   "Allows PvP Duels maps to be listed"   
  pvpduels.admin.create  :  
    description   :   "Allows PvP Duels maps to be created"   
  pvpduels.admin.delete  :  
    description   :   "Allows PvP Duels maps to be deleted"   
  pvpduels.admin.edit  :  
    description   :   "Allows PvP Duels maps to be edited"  
 
  pvpduels.use  :  
    description   :   "Allows PvP Duels commands to be used"  
 
  pvpduels.use.gui  :  
    description   :   "Allows PvP Duels GUI to be used"  
 
  pvpduels.use.matchmake  :  
    description   :   "Allows PvP Duels Matches to be created by matchmaking"  
 
  pvpduels.use.request  :  
    description   :   "Allows PvP Duels Matches to be created by targeted"  
 
  pvpduels.use.accept  :  
    description   :   "Allows PvP Duels Matches to be accepted"  
 
  pvpduels.use.stats  :  
    description   :   "Allows PvP Duels Stats to be shown"  
 
  pvpduels.use.stats.other  :  
    description   :   "Allows PvP Duels Stats to be shown of another Player"

Similar projects

Plugin →