Kyra - An Advanced Infractions System

Status
This thread has been locked.

MarkElf

9+ Year Member
Supreme
Feedback score
27
Posts
1,215
Reactions
1,217
Resources
2

yellowwhatskyra.png
Kyra is a punishment system intended to be used with an anti-cheat plugin (NoCheatplus, Spartan, AAC, Reflex, Horizon, etc) as an infractions system. An infraction is a fancy word for point(s) with a negative connotation. This punishment system is not a replacement for your current ban plugin; Kyra is intended to act as a middleman between your anti-cheat and the plugin responsible for enforcing bans/kicks/muting players.

The philosophy behind this plugin is simple: I want to provide server owners with a means of fairly punishing players with no excuses for a false punishment. I have always been against letting an anti-cheat, no matter which one or how accurate it may be, ban a player over a single check.

Server owners have a configurable amount of points and actions that can be executed when a player reaches X infractions; this is intended to be automated by your anti-cheat plugin. If a player were to reach, let’s say 3 infractions, there is no excuse for them claim they have been falsely banned when they were caught breaking rules on 3 separate occasions.

Kyra logs every action it takes into a file for server owners to monitor in JSON. MySQL is also an option which serves well for bungee servers.
Code:
{
  "logs": [
    "2019-12-03 10:46:05 | CONSOLE has punished MarkElf for combat. Infractions: 1",
    "2019-12-03 10:46:15 | CONSOLE has punished MarkElf for combat. Infractions: 2",
    "2019-12-03 10:46:18 | CONSOLE has punished MarkElf for combat. Infractions: 3"
  ]
}

  • /Kyra
  • /infraction add (player) (category/alias)
  • /infraction check (player) (category)
  • /infraction remove (player) (category)
  • /infraction removeall (player) (category)
  • /infraction set (player) (category) (amount)
  • Aliases: inf, infractions
  • Kyra.infraction.add
  • Kyra.infraction.set
  • Kyra.infraction.remove
  • Kyra.infraction.check
  • Kyra.recieve
Code:
#  _  __                  _____             __ _                       _   _
# | |/ /                 / ____|           / _(_)                     | | (_)
# | ' /_   _ _ __ __ _  | |     ___  _ __ | |_ _  __ _ _   _ _ __ __ _| |_ _  ___  _ __
# |  <| | | | '__/ _` | | |    / _ \| '_ \|  _| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \
# | . \ |_| | | | (_| | | |___| (_) | | | | | | | (_| | |_| | | | (_| | |_| | (_) | | | |
# |_|\_\__, |_|  \__,_|  \_____\___/|_| |_|_| |_|\__, |\__,_|_|  \__,_|\__|_|\___/|_| |_|
#       __/ |                                     __/ |              
#      |___/                                     |___/
#
#Kyra was released by MarkElf in colaboration with Lryq.
Messages:
  bc_msg: "" #Broadcast message: &2&lKyra &a>> &2%player% &ahas been punished for &2%reason%&a.
  punished_msg: '&2&lKyra &a>> &2%player% &ahas been punished for &2%reason%&a. Infractions: %infractions%'
  forgive_msg: "&2&lKyra &a>>&b &2%player% &ahas been forgiven for &2%reason%&a. Infractions: %infractions%"
  set_msg: "&2&lKyra &a>> &2%player% &avl for &2%reason%&a has been set to: %infractions%"
  no_type: "&2&lError &a>>&a There is no type for &2%reason%&a."
  no_player: '&2&lError &a>> &2%player%&a does not exist'
  no_perm: '&2&lKyra &a>> You do not have access to that command.'
  check_points: '&2&lKyra &a>> &2%player% &ais at &2%infractions%&a for &2%reason%&a.'
Log:
  addition: "%time% | %sender% has punished %player% for %reason%. Infractions: %infractions%"
  removal: '%time% | %sender% has forgiven %player% for %reason%. Infractions: %infractions%'
  set: '%time% | %sender% has set the infractions of %player% for %reason% %infractions%'
Categories:
  spam:
    identifiers:
      - ad
      - ads
      - advertising
      - caps
      - spambot
    addition:
      1:
        - 'tellraw %player% {"text":"You have been warned for spam."}'
      2:
        - 'mute %player% 1 hour'
      3:
        - 'mute %player% 6 hours'
      4:
        - 'mute %player% 24 hours'
      5:
        - 'mute %player% 48 hours'
      6:
        - 'mute %player% 72 hours'
    removal:
      0:
        - 'unmute %player%'
      1:
        - 'unmute %player%'
      2:
        - 'unmute %player%'
      3:
        - 'unmute %player%'
      4:
        - 'unmute %player%'
      5:
        - 'unmute %player%'
  combat:
    identifiers:
      - aimbot
      - killaura
      - aimbot
      - aimassist
      - antiknockback
      - autoclicker
      - aura
      - clickaura
      - criticals
      - cps
      - crits
      - fastbow
      - instantbow
      - inventoryhit
      - killaura
      - legitaura
      - noswing
      - reach
      - regen
      - tpaura
    addition:
      2:
        - 'kick %player% Using combat cheats'
      3:
        - 'ban %player% Combat cheats'
    removal:
      0:
        - 'unban %player%'
      2:
        - 'unban %player%'
  movement:
    identifiers:
      - airjump
      - blink
      - boatfly
      - bhop
      - bunnyhop
      - extraelytra
      - fastfall
      - fastladder
      - fly
      - glide
      - hclip
      - jesus
      - longjump
      - lowhop
      - morepackets
      - nofall
      - noslow
      - omnisprint
      - packetsneak
      - passable
      - phase
      - selfhit
      - speed
      - spider
      - step
      - vclip
      - yclip
    addition:
      2:
        - 'kick %player% Using movement cheats'
      3:
        - 'ban %player% Movement cheats'
    removal:
      0:
        - 'unban %player%'
      2:
        - 'unban %player%'
  world:
    identifiers:
      - bedfucker
      - cheststeal
      - chestesp
      - civbreak
      - derp
      - elytrafly
      - fastplace
      - fastbreak
      - fasteat
      - freecam
      - ghosthand
      - headless
      - inventorymove
      - noweb
      - nuker
      - playeresp
      - scaffold
      - packetsneak
      - tower
    addition:
      2:
        - 'kick %player% Using world cheats'
      3:
        - 'ban %player% world cheats'
    removal:
      0:
        - 'unban %player%'
      2:
        - 'unban %player%'
  banavoid:
    identifiers:
      - alt
      - alts
    addition:
      1:
        - 'banip %player% &cYou have been banned for ban avoiding.'
    removal:
      0:
        - 'unban %player%'

Spigot: Messaging - MarkElf
MC-Market: Messaging - MarkElf

Asking for a vouch copy means I'll ignore your message and report it for breaking mc-market rules.
 
Last edited:
PebbleHost
High performance, consistent uptime and fast support. Minecraft hosting that just works.

MarkElf

9+ Year Member
Supreme
Feedback score
27
Posts
1,215
Reactions
1,217
Resources
2
Reserved.
 
Status
This thread has been locked.
Top