Phoenix Anti-Cheat 2.0.0-pre6

Anti-Hack System.

  1. TheMuhammed2188
    Native Minecraft Version:
    1.13
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    [​IMG]
    [​IMG]
    PAC is an anti-cheat system. Currently, it doesn't have check for all hack types but I'll add them soon. You can support us by reporting bugs :)

    Discord: https://discord.gg/zB7797a
    GitHub (for issues): Confuser2188/PhoenixAntiCheat
    Example usage of actions section:
    Code (Text):
    killaura:
      enabled: true
      actions: cancel:notify:vl>=3:pacmessage r u using <hack> m8?:vl==5:kick <player> <tag> st0p h4ck1ng n00b
    In this usage, it will cancel all violations and notify admins. If violation is equal or more than 3, it will send message to player. If violation is equal to 5, it will kick him.

    Use ':' character for multiple commands. If you want to use it in message or something else, use '\:' character.

    Operators to check violation:
    • == (equal to)
    • > (greater than)
    • < (less than)
    • >= (greater than or equal to)
    • <= (less than or equal to)

    Available internal commands: cancel, notify, pacmessage, pacbroadcast
    Available placeholders: <player>, <tag>, <vl>, <ping>, <tps>, <hack> or <module>​
    [​IMG]
    The latest version of PAC currently compatible with
    Spigot 1.7, 1.8, 1.9, 1.10. 1.11, 1.12, 1.13

    Also, PAC supports protocol hack (1.7 - 1.8) and ViaVersion plugin.

    [​IMG]
    If your server version is compatible with PAC, you can freely use it without any plugins.

    [​IMG]
    Current list of permissions
    Phoenix.Command - You can use PAC commands if you have this permission
    Phoenix.Notification - You can see notifications if you have this permission
    Phoenix.Bypass.<module_name> - You can bypass this check if you have this permission


    [​IMG]
    Combat:
    • KillAura
    • ForceField
    • TpAura
    • Criticals
    Movement:
    • Flight/Fly
    • Speed
    • Glide
    • LongJump
    • AirJump
    • Blink
    • AntiWeb
    • BunnyHop
    • InventoryMove
    • Spider
    • Timer
    • HeadRoll
    • Phase
    Player:
    • ImpossibleInteract
    • MoreInventory
    • Regen
    Chat:
    • Spam
    • UnknownCharacters
    Render:
    • HealthESP/DamageIndicator
    Other:
    • SpamBot
    • NBT exploit

    [​IMG]

    WARNING: API is broken on version 2.0.0-pre6
    API Version: 1

    PACAPI: Main class for API

    Usage:
    Code (Java):
    import me.themuhammed2188.pac.api.PACAPI;
    import org.bukkit.plugin.java.JavaPlugin;

    public class Main extends JavaPlugin{

        PACAPI pacapi;

        public void onEnable() {
            pacapi = new PACAPI(this);
        }
    }

    Methods:
    Code (Java):
    PlayerPAC getPlayer(Player player) // Returns custom player class
    int getMajorVersion() // Returns major version of API
    int getMinorVersion() // Returns minor version of API
    ServerPAC getServer() // Returns custom server class
    String getVersionPAC() // Returns version of PAC plugin
    Plugin getPlugin() // Returns PAC as a Plugin
    void addCheck(Check check)  // Adds check to list
    boolean removeCheck(Check check) // Removes check from list
    PlayerViolationEvent: Called when player is failed a check.

    Usage:
    Code (Java):
    import me.themuhammed2188.pac.api.HackType;
    import me.themuhammed2188.pac.api.event.PlayerViolationEvent;
    import me.themuhammed2188.pac.api.utils.Attribute;
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;

    public class Main extends JavaPlugin implements Listener{

        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }

        @EventHandler
        public void onViolation(PlayerViolationEvent event)
        {
            Player player = event.getPlayer();
            HackType hackType = event.getHackType();
            int VL = event.getVL();
            Attribute[] attributes = event.getAttributes();

            event.setCancelled(true);
        }
    }
     


    PlayerPacketReceivedEvent: Called when server received a packet from player.
    PlayerPacketSentEvent: Called when server sent a packet to player.

    Usage:
    Code (Java):
    import me.themuhammed2188.pac.api.event.PlayerPacketReceivedEvent;
    import me.themuhammed2188.pac.api.event.PlayerPacketSentEvent;
    import me.themuhammed2188.pac.api.utils.Packet;
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;

    public class Main extends JavaPlugin implements Listener{

        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }

        @EventHandler
        public void onPacketReceived(PlayerPacketReceivedEvent event)
        {
            Player player = event.getPlayer();
            Packet packet = event.getPacket();

            event.setCancelled(true);
        }

        @EventHandler
        public void onPacketSent(PlayerPacketSentEvent event)
        {
            Player player = event.getPlayer();
            Packet packet = event.getPacket();

            event.setCancelled(true);
        }
    }
     


    PhoenixCommandEvent: Called when player used a command that starts with "/pac"

    Usage:
    Code (Java):
    import me.themuhammed2188.pac.api.event.PhoenixCommandEvent;
    import org.bukkit.Bukkit;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;

    public class Main extends JavaPlugin implements Listener{

        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }

        @EventHandler
        public void onCommand(PhoenixCommandEvent event)
        {
            Player player = event.getPlayer();
            CommandSender sender = event.getSender();
            String[] args = event.getArgs();
            String cmd = event.getCmd();
        }
    }
     
    You need to use addCheck(Check paramCheck) method in PACAPI to enable your module.

    Usage:
    Code (Java):
    import me.themuhammed2188.pac.api.Check;
    import me.themuhammed2188.pac.api.utils.Attribute;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.player.PlayerMoveEvent;

    public class TestCheck extends Check {

        public TestCheck() {
            super("Test");
        }

        @EventHandler
        public void onMove(PlayerMoveEvent e)
        {
            sendNotification(e.getPlayer(), "moving = hacking", 1, new Attribute[] { Attribute.get("type", 999)});
        }
    }
     

    Methods:
    Code (Java):
    String getName()
    void sendNotification(Player player, String info, int vl, Attribute[] attributes)
    Methods:
    Code (Java):
    Player getBukkitPlayer() // Returns org.bukkit.entity.Player
    int getCPS() // Returns clicks per second
    int getMovementPacketRate() // Returns movement packets per second
    int getPing() // Returns NMS ping
    boolean isOnGround() // Returns onGround method in PAC
    Methods:
    Code (Java):
    List<Plugin> getPlugins() // Returns list of PAC addons
    double getTPS() // Returns server ticks per second
    String getVersion() // Returns server version
    String getMinecraftVersion() // Returns server's minecraft version
    String getSpigotName() // Returns server's build name
    Code (Java):
    MorePackets:
    ("type", String: "instant") ("rate", int: rate) ("expected", expected)
    ("type", String: "sendRate") ("rate", int: preRate) ("expected", expected)

    ASCII:
    ("msg", message)

    Inventory:
    ("type", String: "move")
    ("type", String: "hit")

    KillAura:
    ("type", String: "autoBlock")
    ("type", String: "forcefield") ("count", int: count)
    ("type", String: "instant") ("prev", fp) ("cur", float: diff)
    ("type", String: "static") ("val", float: val)
    ("type", String: "reaction") ("avg", float: avg) ("diff", float: diff) ("diffb", float: diffb)
    ("type", String: "zero") ("cur", float: cur) ("prev", int: 0)
    ("type", String: "wrong") ("diff", float: diff1) ("diff2" float: diff2)

    HeadRoll:
    ("pitch", float: pitch)

    Phase:
    ("block", org.bukkit.block.Block: b)

    Speed:
    ("flags", String: flags) ("speed", double: dist) ("expected", double: expected)

    Flight:
    ("type", String: "levitationSpeed") ("speed", double: speed) ("expected", double: expected)
    ("type", String: "fastLadder") ("speed", double: ladderSpeed) ("excepted", double: defaultSpeed)
    ("type", String: "miniJump") ("height", double: distHeight) ("jumpStep", int: jumpStep)
    ("type", String: "airJump") ("diff", double: adiff)
    ("type", String: "step") ("diff" double: adiff)
    ("type", String: "maxHeight") ("maxJumpHeight", double: max) ("height", double: adiff)
    ("type", String: "fastFall") ("height", double: height)
    ("type", String: "glide") ("fs", double: fallSpeed)
    ("type", String: "glide-b")

    NBT:
    ("type", String: "bookPages") ("pages", int: list.size)
    ("type", String: "bookLength") ("length" int: list.length)
    .


    [​IMG]
    B_Z_27_MC, Hypov, qwertzy and 52 others like this.

Recent Updates

  1. PAC 2.0.0-pre6
  2. PAC 2.0.0-pre5
  3. PAC 2.0.0-pre4

Recent Reviews

  1. coolpvpv
    coolpvpv
    1/5,
    Version: 2.0.0-pre6
    if you put this on 1.12.2 or 1.13.2 theres like a million false flags like holy crap i had this on my server and within like 20 mins of just doing stuff i set off so many logs for fly speed etc
  2. Romitou
    Romitou
    2/5,
    Version: 2.0.0-pre6
    The plugin detect Flight but not detect Jesus (on water), fastplace and fastblock... Great but :) (sorry for my bad english)
  3. Arthynox
    Arthynox
    1/5,
    Version: 2.0.0-pre6
    Absolutely nothing is detected, KillAura or Flight.

    ----------------------------------------------
  4. TacoGuy12321
    TacoGuy12321
    2/5,
    Version: 2.0.0-pre6
    -------
    Plugin doesn't works with ProtocolSupportPE, also a lot of false alarms.
  5. xxBoWiExx
    xxBoWiExx
    1/5,
    Version: 2.0.0-pre6
    ------------------------------------------
    Very bad plugin
    Config very limited
    Do not use!
    ------------------------------------------
  6. GreenMist10
    GreenMist10
    1/5,
    Version: 2.0.0-pre6
    False positives overkill; almost lost some players over the problems. Console errors immediately on startup.
    Notifications overkill; killed my chat history often.
    Maybe with hours of config tweaking I could get it to work, but I don't have that luxury.
  7. HassyRassy
    HassyRassy
    3/5,
    Version: 2.0.0-pre6
    Quite problematic, there's a lot of issues doing completely non hacking normal things.
  8. StriKraft_Owner
    StriKraft_Owner
    3/5,
    Version: 2.0.0-pre6
    This is a solid anti-cheat with excellent potential to develop into something that's widely used. However, in its current state, I don't see it being used almost at all. It does what it's supposed to do, but the false positives are ridiculous. Flight and speed in particular flood anyone with the notify permission node as well as the console. Again, this absolutely blocks cheaters, but its unreasonably aggressive canceling and notifying (which can be disabled in the config, but then what is the anti-cheat doing?) make it too much of hassle to deal with.
  9. KaanDeniz
    KaanDeniz
    5/5,
    Version: 2.0.0-pre6
    thanks for making such a protection free
    ----------------------------------------------------------
  10. Xanter
    Xanter
    3/5,
    Version: 2.0.0-pre5
    Almost Everything works, but the Flight/Fly module works too aggressively and blocks clean players on the slab and ladders :( . There are also false detections from the killaura and hitbox modules also on clean players.

    1.13.2