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]
    qwertzy, AdaLovelace, omar46 and 50 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. 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
  2. chuky025
    chuky025
    1/5,
    Version: 2.0.0-pre5
    Absolutely everything he detects is false.

    ----------------------------------------------
  3. ClashGames
    ClashGames
    1/5,
    Version: 2.0.0-pre5
    Trident with Riptide can not use and bug...




    Sorry for Spam but i will "Submit Rating"
  4. Tikru
    Tikru
    3/5,
    Version: 2.0.0-pre5
    1.12.2 theres no gui so i don't like this plugin can u fix this fast then i will rate 5 stars
  5. maldu
    maldu
    3/5,
    Version: 2.0.0-pre5
    probably the best choice for a free anticheat in 1.13.2, but it's incredibly aggressive, and it restricts players who don't cheat. the only reason i would use this is to alert me to players who repeatedly fail checks, i don't trust it enough to allow it to kick players or to cancel actions on it's own.
  6. andrew01745
    andrew01745
    3/5,
    Version: 2.0.0-pre5
    Messes up on flowers and just does not work, please update to 1.13.2, i was also getting lag on the server when i installed this plugin ... i have plenty of Ram and other things like that so it is down to the plugin, good plugin just needs to be updated
  7. Immedicable
    Immedicable
    4/5,
    Version: 2.0.0-pre5
    It's good, BUT a very big issue I have is it's blocking levitation effect from shulkers and makes gameplay kinda impossible whilst exploring End Cities.
  8. Dudullle
    Dudullle
    5/5,
    Version: 2.0.0-pre5
    Nice plugin and API.

    Good support on discord ! Thanks to the author ^^
  9. Kruize
    Kruize
    4/5,
    Version: 2.0.0-pre5
    Works well. Phase seems to cause issues, but I disabled it. There's a bit of tuning I had to do, but I'm happy with the results. Primarily used this to prevent speed and flying hacks.

    Doesn't seem to block "Jetpack" hack.

    Players on my 1.13.1 server can walk on water with Aristois hack client, no warnings appear. Any thoughts?
  10. Chibideer
    Chibideer
    2/5,
    Version: 2.0.0-pre4
    I like how the detecting hacks works, but as a owner or other staff flying around and etc like that.. It stops staffs in general from doing their jobs as well, like could use some works in this plugin. :(