Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tv.rewinside.antihacks;
- import java.util.HashMap;
- import java.util.List;
- import java.util.UUID;
- import lombok.Getter;
- import net.minecraft.server.MinecraftServer;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.java.JavaPlugin;
- import tv.rewinside.CloudConnector.CloudConnectorPlugin;
- import tv.rewinside.MinigameAPI.Config;
- import tv.rewinside.MinigameAPI.MinigameAPI;
- import tv.rewinside.antihacks.armor.AutoArmorChecker;
- import tv.rewinside.antihacks.armor.AutoArmorListener;
- import tv.rewinside.antihacks.armor.AutoArmorTimer;
- import tv.rewinside.antihacks.autoclicker.ClickCounterTask;
- import tv.rewinside.antihacks.command.ClickWatcherCommand;
- import tv.rewinside.antihacks.fly.FlyNoCheat;
- import tv.rewinside.antihacks.jesus.JesusChecker;
- import tv.rewinside.antihacks.killaura.KillauraChecker;
- import tv.rewinside.antihacks.killaura.KillauraListener;
- import tv.rewinside.antihacks.knockback.KnockbackChecker;
- import tv.rewinside.antihacks.knockback.KnockbackListener;
- import tv.rewinside.antihacks.spam.SpamChecker;
- import tv.rewinside.antihacks.step.StepChecker;
- import tv.rewinside.database.ban.DatabaseBan;
- import tv.rewinside.database.ban.DatabaseBanHistoryEntry;
- import tv.rewinside.database.bukkit.DatabasePlugin;
- import tv.rewinside.database.logging.BanLogData;
- import tv.rewinside.database.logging.DatabaseLogEntry;
- import tv.rewinside.database.logging.LogType;
- import tv.rewinside.database.permission.DatabaseGroup;
- import tv.rewinside.database.player.DatabaseOnlinePlayer;
- import tv.rewinside.database.player.DatabasePlayer;
- public class AntiHacksPlugin extends JavaPlugin {
- @Getter private static AntiHacksPlugin instance;
- @Getter private static final String reportEslPrefix = "§8[§bRAC-ESL§8] ";
- @Getter private KnockbackChecker knockbackChecker;
- @Getter private KillauraChecker killauraChecker;
- @Getter private AutoArmorChecker autoArmorChecker;
- @Getter private StepChecker stepChecker;
- @Getter private FlyNoCheat flyNoCheat;
- private KnockbackListener knockbackListener;
- @Override
- public void onEnable() {
- instance = this;
- this.getConfig().addDefault("AntiKnockback", false);
- this.getConfig().addDefault("AntiKillaura", false);
- this.getConfig().addDefault("FlyNoCheat", true);
- this.getConfig().addDefault("AntiJesus", true);
- this.getConfig().addDefault("AntiAutoArmor", true);
- this.getConfig().addDefault("AntiStep", true);
- this.getConfig().addDefault("AntiSpam", true);
- this.getConfig().addDefault("AntiAutoclick.enabled", false);
- this.getConfig().addDefault("AntiAutoclick.limit", 25.0);
- this.getConfig().options().copyDefaults(true);
- this.saveConfig();
- this.reloadConfig();
- if (this.getConfig().getBoolean("AntiKnockback")) {
- this.getLogger().info("Enabled Anti Knockback!");
- this.knockbackChecker = new KnockbackChecker();
- this.knockbackListener = new KnockbackListener(this.knockbackChecker);
- MinecraftServer.getServer().getPacketManager().addListener(this.knockbackListener);
- Bukkit.getPluginManager().registerEvents(this.knockbackListener, this);
- }
- if (this.getConfig().getBoolean("AntiKillaura")) {
- this.getLogger().info("Enabled Anti Killaura!");
- this.killauraChecker = new KillauraChecker();
- MinecraftServer.getServer().getPacketManager().addListener(this.killauraChecker);
- this.getServer().getPluginManager().registerEvents(new KillauraListener(), this);
- }
- if (this.getConfig().getBoolean("FlyNoCheat")) {
- this.getLogger().info("Enabled fly no-cheat!");
- this.getServer().getPluginManager().registerEvents(this.flyNoCheat = new FlyNoCheat(), this);
- }
- if (this.getConfig().getBoolean("AntiJesus")) {
- this.getLogger().info("Enabled Anti Jesus!");
- Bukkit.getPluginManager().registerEvents(new JesusChecker(), this);
- }
- if (this.getConfig().getBoolean("AntiAutoArmor")) {
- this.getLogger().info("Enabled Anti Auto-Armor!");
- this.autoArmorChecker = new AutoArmorChecker();
- Bukkit.getPluginManager().registerEvents(new AutoArmorListener(this.autoArmorChecker), this);
- Bukkit.getScheduler().runTaskTimer(this, new AutoArmorTimer(this.autoArmorChecker), 200L, 200L);
- }
- if (this.getConfig().getBoolean("AntiStep")) {
- this.getLogger().info("Enabled Anti Step!");
- this.stepChecker = new StepChecker();
- Bukkit.getPluginManager().registerEvents(this.stepChecker, this);
- MinecraftServer.getServer().getPacketManager().addListener(this.stepChecker);
- }
- if (this.getConfig().getBoolean("AntiSpam")) {
- this.getLogger().info("Enabled Anti Spam!");
- Bukkit.getPluginManager().registerEvents(new SpamChecker(), this);
- }
- if (this.getConfig().getBoolean("AntiAutoclick.enabled")) {
- this.getLogger().info("Enabled Anti Autoclicker!");
- ClickCounterTask.HACKER_CLICK_LIMIT = this.getConfig().getDouble("AntiAutoclick.limit");
- Bukkit.getScheduler().runTaskTimerAsynchronously(this, new ClickCounterTask(), 0, 20);
- }
- //clickwatcher command & quit listener
- ClickWatcherCommand clickWatcherCommand = new ClickWatcherCommand();
- this.getCommand("clickwatcher").setExecutor(clickWatcherCommand);
- Bukkit.getPluginManager().registerEvents(clickWatcherCommand, this);
- }
- @Override
- public void onDisable() {
- Bukkit.getScheduler().cancelTasks(this);
- if (this.knockbackListener != null)
- MinecraftServer.getServer().getPacketManager().removeListener(this.knockbackListener);
- if (this.stepChecker != null)
- MinecraftServer.getServer().getPacketManager().removeListener(this.stepChecker);
- }
- public boolean shouldCheck(Player player) {
- DatabaseGroup group = (DatabaseGroup) player.getExtraData().get("group");
- return ((group.getGroupId() == 0 || group.getGroupId() == 7 || group.getGroupId() == 9) && !this.isSpectator(player) && this.isGameStarted());
- }
- public boolean isGameStarted() {
- if (Bukkit.getPluginManager().isPluginEnabled("MinigameAPI")) {
- return MinigameAPI.getInstance().isGameStarted();
- }
- return false;
- }
- public boolean isSpectator(Player player) {
- if (!Bukkit.getPluginManager().isPluginEnabled("MinigameAPI")) {
- return false;
- }
- return MinigameAPI.getInstance().isSpectator(player);
- }
- public List<Player> getIngamePlayers() {
- if (!Bukkit.getPluginManager().isPluginEnabled("MinigameAPI")) {
- return (List<Player>) Bukkit.getOnlinePlayers();
- }
- return MinigameAPI.getInstance().getIngamePlayers();
- }
- public void banPlayerWithDelay(final String uuid, final String banner) {
- int delay = (int) (Math.random() * 40 + 15);
- Player player = Bukkit.getPlayer(UUID.fromString(uuid));
- if (player != null) {
- if (player.getExtraData().containsKey("DelayBan")) return;
- player.getExtraData().put("DelayBan", System.currentTimeMillis() + delay * 1000);
- }
- Bukkit.getScheduler().runTaskLater(this, () -> {
- AntiHacksPlugin.this.banPlayer(uuid, banner);
- }, delay * 20L);
- }
- public void banPlayer(final String uuid, final String banner) {
- DatabasePlugin.getInstance().getAsync().runDatabaseAction(() -> {
- final DatabasePlayer dbPlayer = DatabasePlugin.getInstance().getConnection().getPlayer(uuid, DatabasePlayer.AccessRule.GROUP, DatabasePlayer.AccessRule.LAST_NAME, DatabasePlayer.AccessRule.BAN_POINTS);
- if (dbPlayer == null || (dbPlayer.getGroup().getGroupId() != 0 && dbPlayer.getGroup().getGroupId() != 7 && dbPlayer.getGroup().getGroupId() != 9)) {
- return;
- }
- final DatabaseOnlinePlayer dbOnline = DatabasePlugin.getInstance().getConnection().getOnlinePlayerFromUUID(dbPlayer.getUUID(), DatabaseOnlinePlayer.AccessRule.BUNGEECORD_ID);
- final DatabaseBan ban = new DatabaseBan();
- ban.setUUID(uuid);
- ban.setStartTime(System.currentTimeMillis());
- ban.setBanPoint(dbPlayer.getBanPoints() + 720L);
- ban.setReason(0);
- ban.setBanner(banner);
- if (Bukkit.getPluginManager().isPluginEnabled("MinigameAPI")) {
- ban.setExtraMessage(MinigameAPI.getInstance().getGameLog().getId());
- }
- ban.setDuration(720L * 60L * 60L * 1000L + ((dbPlayer.getBanPoints() * 60L * 60L * 1000L) / 2));
- DatabaseBan dbBan = DatabasePlugin.getInstance().getConnection().getBanFromPlayer(uuid, DatabaseBan.AccessRule.REASON);
- if (dbBan != null && dbBan.getReason().equals(ban.getReason())) {
- return;
- }
- DatabasePlugin.getInstance().getConnection().setBan(ban);
- DatabaseLogEntry logEntry = new DatabaseLogEntry(LogType.BAN, banner, System.currentTimeMillis(), new BanLogData(ban.getReason(), uuid));
- DatabasePlugin.getInstance().getConnection().addLogEntry(logEntry);
- {
- DatabaseBanHistoryEntry historyEntry = new DatabaseBanHistoryEntry();
- historyEntry.loadFromBan(ban);
- historyEntry.setType(DatabaseBanHistoryEntry.BanType.BAN);
- DatabasePlugin.getInstance().getConnection().addBanHistory(historyEntry);
- }
- dbPlayer.setBanPoints(dbPlayer.getBanPoints() + 720);
- DatabasePlugin.getInstance().getConnection().updatePlayer(dbPlayer, DatabasePlayer.AccessRule.BAN_POINTS);
- StringBuilder sb = new StringBuilder();
- sb.append("§cDu wurdest vom rewinside Netzwerk gebannt.").append("\n");
- if (Bukkit.getPluginManager().isPluginEnabled("MinigameAPI")) {
- sb.append("§cGrund: §aCLIENTMODS (").append(MinigameAPI.getInstance().getGameLog().getId()).append(")");
- } else {
- sb.append("§cGrund: §aCLIENTMODS");
- }
- sb.append("\n\n");
- sb.append("§eDu kannst auf §arewinsi.de/unban §eeinen Entbannungsantrag stellen.");
- CloudConnectorPlugin.getInstance().kickPlayer(dbPlayer.getLastName(), sb.toString());
- if (Bukkit.getPluginManager().isPluginEnabled("MinigameAPI")) {
- CloudConnectorPlugin.getInstance().broadcastMessage(AntiHacksPlugin.getBanPrefix() + "§a" + banner + " §7hat §c" + dbPlayer.getLastName() + " §7mit dem Grund §cCLIENTMODS (" + MinigameAPI.getInstance().getGameLog().getId() + ") §7vom Server gebannt.", "bungee.announce.ban");
- } else {
- CloudConnectorPlugin.getInstance().broadcastMessage(AntiHacksPlugin.getBanPrefix() + "§a" + banner + " §7hat §c" + dbPlayer.getLastName() + " §7mit dem Grund §cCLIENTMODS §7vom Server gebannt.", "bungee.announce.ban");
- }
- CloudConnectorPlugin.getInstance().sendPayload(new String[] { dbOnline.getBungeeCordId() }, "RAC_triggerMultiaccountBan",
- new HashMap<String, Object>() {{
- put("UUID", dbPlayer.getUUID());
- }}
- );
- });
- }
- public static String getReportPrefix() {
- if (!Config.ESL) {
- return "§8[§cRAC§8] ";
- } else {
- return "§8[§b§lRAC-ESL§r§8] ";
- }
- }
- public static String getBanPrefix() {
- return "§8[§cRAC§8] ";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement