
Added cross-inventory checks to prevent illegal items
Fixed a problem with the Oaexploits GUI not being usable on version 1.20.6.
Changelog
Version 1.4.1
New Features:
- Permission Bypass: Introduced the
oaexploits.bypasspermission.- Players with this permission can bypass illegal item checks, avoiding the removal or notification processes.
- Configurable via luckperms
Improvements:
- Enhanced logging for illegal item interactions.
- Improved inventory scanning performance.
Bug Fixes:
- Fixed issues with handling commands that include subcommands or arguments.
- Removed the
regeneratechunkcommand and its associated permissionoaexploits.regeneratechunk.
- Permission Bypass: Introduced the
Version 1.4.0
- Update Notification: Enhanced the update message format when a new version is available on Spigot.
- Java Version: Updated the plugin to be built on Java 17.
- Paper Version: Upgraded to Paper version 1.21 (from 1.20.6) to support new items.
- Discord Webhook: Refined the Discord webhook code for sending embed messages.
New Features
- Discord Webhook Integration:
- Added support for sending alerts to a Discord channel using webhooks.
- Configurable webhook URL to specify the Discord channel for receiving alerts.
- Alerts include details about illegal items interactions, such as the player's name, the item involved, and the action taken.
- Item images are displayed in the alerts using the Minecraft Item API.
Improvements
- Configuration File Enhancements:
- Reorganized and categorized the configuration file for better readability and maintainability.
- Added comments to the configuration file to provide clarity on each section's purpose.
Bug Fixes
- Fixed issues with missing or incorrect item images in Discord alerts.
- Improved logging for illegal item interactions and enhanced error handling in the Discord alert system.
Configuration Changes
-
New Configuration Section for Discord Alerts:
discord-alerts: webhook-url: "YOUR_DISCORD_WEBHOOK_URL" # Replace with your actual Discord webhook URL- Ensure to replace
"YOUR_DISCORD_WEBHOOK_URL"with the actual URL of your Discord webhook.
- Ensure to replace
-
Example Configuration for Discord Alerts:
# Discord alerts configuration discord-alerts: webhook-url: "YOUR_DISCORD_WEBHOOK_URL" # Replace with your actual Discord webhook URL
How to Upgrade
- Backup Your Configuration Files: Before upgrading, make sure to back up your existing configuration files.
- Update the Plugin: Replace the old OaExploits plugin JAR file with the new version.
- Modify Configuration Files:
- Add the new
discord-alertssection to your configuration file. - Review the configuration file for any other new settings or changes.
- Add the new
- Restart Your Server: Restart your Minecraft server to apply the changes.
Known Issues
- None reported in this release. Please report any issues on our GitHub Issues page.
- Discord Webhook Integration:
New Features
- Deop on Leave Toggle:
- Introduced a new option to toggle the deop on leave feature directly from the main settings GUI.
- This allows administrators to enable or disable the feature without editing the configuration file manually.
- Access this setting under the "OaExploits Settings" menu.
Improvements
-
Settings GUI Enhancements:
- New Option: Added Toggle Deop on Leave to the GUI for easy access and control.
- Enhanced Feedback: Users now receive chat messages indicating the status of settings when toggled.
- Sound Effects: Added sound feedback (ENTITY_PLAYER_LEVELUP and BLOCK_NOTE_BLOCK_PLING) for a better user experience when interacting with the GUI.
- Particle Effects: Added particle effects (HAPPY_VILLAGER) to enhance visual feedback when settings are changed.
-
Configurable Deop on Leave:
- Added the ability to enable or disable the deop on leave feature through the configuration.
- Whitelist Feature: Specific players can be whitelisted to avoid being deopped on leave.
- Teleport Configuration: Players who are deopped can be teleported to a configurable location.
-
Enhanced Admin Alerts and Notifications:
- Admin Alert Cooldown: Implemented a cooldown period for admin alerts to prevent spam.
- Clear Notifications: Improved the clarity and detail of notifications for illegal item interactions, movements, and placements.
- Sound and Particle Effects: Added sound and particle effects to notifications for illegal activities to improve user experience.
Configuration Changes
- New Configuration Options:
deop-on-leave.enabled: Boolean setting to enable or disable the deop on leave feature.deop-on-leave.whitelist.players: List of player names to be exempted from deop on leave.deop-on-leave.teleport: Configurable location settings for teleporting deopped players.messagessection updated for more detailed and customizable messages related to illegal item interactions and admin alerts.
Code Changes
-
Added New Handler for Deop on Leave Toggle:
componentHandlers.put(TOGGLE_DEOP_ON_LEAVE, player -> handleConfigOptionClick("deop-on-leave.enabled", "Deop on Leave", player)); -
Improved
handleBlockPlaceMethod:private void handleBlockPlace(BlockPlaceEvent event) { Player player = event.getPlayer(); ItemStack item = event.getItemInHand(); Material blockType = event.getBlock().getType(); if (removeIllegalItemsEnabled && (shouldRemoveItem(item) || isIllegalBlock(blockType))) { event.setCancelled(true); int removedCount = item.getAmount(); Material itemType = item.getType(); String itemTypeString = itemType.toString(); removeItem(item); notifyPlayerAndAdmins(player, illegalItemPlacementTitle, illegalItemPlacementSubtitle.replace("%item%", blockType.toString()), itemTypeString); plugin.getLogger().info("\u001B[31mRemoved " + removedCount + " illegal items from player " + player.getName()); checkPlayerInventory(player); } else if (isShulkerBox(item) && cleanShulkersOnPlaceEnabled) { handleShulkerBoxContents(item); } } -
Configurable Teleport Location:
private Optional<Location> getTargetLocation() { String worldName = config.getString("deop-on-leave.teleport.world"); if (worldName == null) { plugin.getLogger().warning("World name for deop teleport location is not configured."); return Optional.empty(); } World world = Bukkit.getWorld(worldName); if (world == null) { plugin.getLogger().warning("World '" + worldName + "' for deop teleport location does not exist."); return Optional.empty(); } double x = config.getDouble("deop-on-leave.teleport.x", 0.0); double y = config.getDouble("deop-on-leave.teleport.y", 64.0); double z = config.getDouble("deop-on-leave.teleport.z", 0.0); float yaw = (float) config.getDouble("deop-on-leave.teleport.yaw", 0.0); float pitch = (float) config.getDouble("deop-on-leave.teleport.pitch", 0.0); return Optional.of(new Location(world, x, y, z, yaw, pitch)); }
Bug Fixes
-
Illegal Block Placement:
- Resolved an issue where illegal blocks could not be placed even when the
remove-illegal-itemsfeature was turned off. - The plugin now respects the
removal-options.remove-illegal-itemsconfiguration setting correctly.
- Resolved an issue where illegal blocks could not be placed even when the
-
Inventory Interaction Handling:
- Improved the handling and feedback for illegal item interactions and movements.
- Fixed issues where certain interactions were not properly logged or handled, ensuring comprehensive tracking and management of illegal items.
Additional Changes
- General Code Optimization:
- Improved the overall readability and maintainability of the codebase.
- Streamlined event handling and configuration loading processes for better performance and ease of use.
- Deop on Leave Toggle:
Changelog for OaExploits v1.3.90
New Features
- Ban and Unban GUI:
- Added a new intuitive GUI for banning and unbanning players.
- Admins can now easily select players to ban or unban from a list of online players.
- The GUI displays player heads for easy identification.
- Confirmation messages are shown to admins after banning or unbanning players.
- Ensures admins cannot ban themselves.
General Enhancements
- Improved overall GUI design for better user experience.
- Added dark gray stained glass panes as placeholders for unused slots in the GUI.
- Ban and Unban GUI:
Added
- Enhanced Performance: Optimized server performance with improved threading and resource management.
- New Event Handlers: Added support for new player interaction events and world events.
- Adventure API Integration: Full integration with Adventure API for modern and flexible message formatting.
- Async Tasks: Enhanced support for asynchronous tasks using
CompletableFutureto improve server responsiveness.
Changed
- Configuration Management: Externalized configuration settings to provide better flexibility and ease of updates.
- Dependency Injection: Refactored code to use dependency injection for better modularity and testability.
- Event Handling: Updated event handling mechanisms for improved reliability and performance.
Deprecated
- Legacy Methods: Deprecated several old methods and replaced them with more efficient alternatives. Refer to the documentation for migration steps.
Removed
- Dropped Support for Older Versions: We have dropped support for Minecraft versions older than 1.20. Please update your server to the latest version to continue receiving updates and support.
OaExploits Plugin Changelog
Version 1.3.80
New Features
- GUI Improvements:
- Enhanced GUI for settings management.
- Consolidated multiple toggles into an organized interface.
- Added aggregated message handling to prevent chat spam for illegal enchantments.
Enchantment Handling
- Implemented message aggregation for illegal enchantments.
- Reverted illegal enchantments to allowed maximum levels.
- Added player notifications with summarized illegal enchantment messages.
- Improved logging to summarize illegal enchantments detected.
Bug Fixes
- Fixed illegal enchantments reverting issues.
- Updated deprecated methods for latest Bukkit version compatibility.
Configuration
- Added new enchantment settings.
- Updated default configuration for new GUI settings.
Installation
- Download the latest version from the modrinth versions Page.
- Place the file in your server's plugins folder.
- Restart the server to apply changes.
For detailed instructions and support, visit our Discord server.
- GUI Improvements:
Release Update Changelog for OaExploits
Version 1.3.73 - 2024-07-11
New Features:
-
Wither Spawn Sound Alert:
- Introduced a new feature that plays a distinct sound for all players within a configurable radius when a Wither is spawned.
- Configuration options added to
config.yml:wither-sound.radius: Sets the radius within which players will hear the sound.wither-sound.sound: Specifies the sound to be played (default isENTITY_WITHER_SPAWN).
- This feature enhances player awareness by providing an audible alert, ensuring players can respond promptly to Wither spawns.
-
Clear Withers in Chunk:
- Added a new GUI option for admins to clear all Withers in the chunk where they are currently located.
- This feature can be accessed through the
/oaexploitsguicommand. - Helps maintain server performance by allowing quick removal of multiple Withers, preventing potential lag or disruptions caused by Wither entities.
Enhancements:
- Configuration Reload Support:
- Updated the
oaexploits reloadcommand to include reloading the Wither sound configuration. - Ensures that any changes made to the Wither sound settings in
config.ymlare applied immediately without needing a server restart. - Provides a smoother and more efficient way to update server settings on-the-fly.
- Updated the
Fixes and Improvements:
- Improved performance and efficiency in Wither removal by checking entity types directly, rather than using
instanceof. - Enhanced the GUI experience by adding visual and audio feedback for actions, ensuring admins have a clear understanding of the changes being made.
Configuration Example:
wither-sound: radius: 20 sound: ENTITY_WITHER_SPAWNInstallation and Usage:
- Download and Install: Download the plugin and place it in your server's plugins folder.
- Configure: Edit the
config.ymlfile to suit your server's needs. - Start Your Server: Restart your server to load the plugin.
- Enjoy: Your server is now protected with OaExploits!
For any issues or support, please visit: OaExploits Discord
Enhance your server's security and fairness with OaExploits! Download now and keep your server running smoothly. Leave a review of the plugin on Spigot and let us know what you think!
-
OaExploits Plugin Update - Version 1.3.65
Update Summary
I'm excited to announce the latest update to the OaExploits plugin, packed with new features, improvements, and bug fixes to enhance your server's security and player experience. This update focuses on improved command blocking, illegal item handling, and enhanced configuration options.
New Features
-
Dynamic Debug Mode:
- Added the ability to toggle debug mode on and off without restarting the server.
- Usage: Call the
setDebugEnabled(true)method to enable andsetDebugEnabled(false)to disable debug mode dynamically.
-
Enhanced Illegal Item Handling:
- Introduced a configuration option to allow placing illegal items when
remove-illegal-itemsis set tofalse. - Players can now place illegal items if this setting is disabled, providing more flexible server management.
- Introduced a configuration option to allow placing illegal items when
Improvements
-
Command Blocking:
- Refactored
CommandBlockerto efficiently handle whitelist and blacklist commands. - Cached whitelist and blacklist status to avoid repeated method calls.
- Improved logging and cancellation logic for better performance and clarity.
- Configurable command whitelist and blacklist with nested configuration support.
- Refactored
-
Illegal Item Detection and Removal:
- Refined item interaction handling across various inventory events.
- Added robust methods to handle item interactions, movements, and placements efficiently.
- Enhanced handling of Shulker Boxes to ensure illegal items within are detected and removed correctly.
-
Configuration Reloading:
- Enhanced the
reloadConfigValuesmethod to correctly read nested configuration values. - Improved validation and error handling for missing or incorrect configuration entries.
- Added debug logs for better troubleshooting and visibility into the plugin's operations.
- Enhanced the
-
Player Interaction Handling:
- Added comprehensive checks for player interactions with illegal items across multiple event handlers.
- Improved messages and notifications to players and admins for illegal item interactions.
Bug Fixes
-
Illegal Item Handling:
- Fixed issues where illegal items were not correctly identified and removed in certain scenarios.
- Resolved problems with handling illegal items within Shulker Boxes and other nested inventories.
-
Event Handling:
- Corrected issues with event handling to ensure smooth and accurate detection of illegal items and command usage.
- Addressed potential race conditions and concurrency issues in the handling of illegal items.
Configuration Changes
Command Whitelist Configuration
command-whitelist: enabled: true commands: - help - vote - joindate - kill - discord - togglechat - toggleconnectionmsgs - toggletells - togglewhispering - toggleprivatemsgs - ignore - ignorelist - ignorehard - toggledeathmsg - dmt - worldstats - playtime - stats - tps - msg - whisper - w - m - t - pm - tell - r - reply - last - kill - shop - skinCommand Blacklist Configuration
command-blacklist: enabled: true commands: - op - deop - plugins - pl - bukkit:plugins - bukkit:pl - bukkit:? - bukkit:help - .pluginsRemoval Options
removal-options: remove-illegal-items: true clean-shulkers-on-place: true notify-player-on-illegal-placement: trueDebug Mode Configuration
debug-enabled: falseMessages for Different Events
messages: illegal-item-placement: title: "&cIllegal Block!" subtitle: "&cYou cannot place that block!" illegal-item-interaction: title: "&cIllegal Item!" subtitle: "&cYou tried to interact with an illegal item: %item%" illegal-item-movement: subtitle: "&cContainer tried to move an illegal item: %item%" illegal-item-removal: title: "&cIllegal Items Removed!" subtitle: "&cIllegal items were removed from your inventory." admin-alert: "&c%player% tried to interact with an illegal item: %item%"How to Update:
- Download the latest version of the OaExploits plugin.
- Replace the old JAR file in your server's plugins directory with the new one.
- Restart your server to apply the update.
- Review and update your configuration file to take advantage of new settings and improvements.
I hope you enjoy the new features and improvements in this release. Thank you for using OaExploits to keep your server secure and enjoyable!
-
Fixes Implemented
-
Fixed Bug Where Players Could Not Drop Items or Interact with Them:
Previously, the plugin's GUI implementation inadvertently prevented players from dropping items or interacting with their inventories outside of the custom GUI. This was likely due to the event handling logic being too restrictive and canceling interactions even when they shouldn't have been.
How It Was Fixed:
- The
onInventoryClickmethod was updated to specifically check if the interaction was within the custom GUI. - A
Set<UUID>namedplayersWithGuiOpenwas used to track which players have the custom GUI open. This ensures that only those players are affected by the interaction restrictions, allowing all other players to interact with their inventories normally.
- The
-
Fixed GUI Reload Not Working:
The previous implementation of the GUI's reload functionality did not properly reload the configuration from the
config.ymlfile. This was because the configuration reload command was not being executed correctly from within the GUI.How It Was Fixed:
- A new command
ReloadCommandwas implemented and registered to handle reloading the plugin configuration. - The
reloadPluginConfigmethod in theOaExploitsGUIclass was updated to dispatch theoaexploits reloadcommand programmatically. This ensures that when the "Reload Configuration" item in the GUI is clicked, theReloadCommandis executed, which correctly reloads the configuration and updates any necessary settings.
- A new command
Detailed Steps for Each Fix
-
Fixing Player Interaction with Items:
In the
OaExploitsGUIclass:@EventHandler public void onInventoryClick(InventoryClickEvent event) { if (!(event.getWhoClicked() instanceof Player player)) return; UUID playerId = player.getUniqueId(); if (!playersWithGuiOpen.contains(playerId)) return; // Only handle events for players with the GUI open long currentTime = System.currentTimeMillis(); // Prevent rapid toggling by using a cooldown if (lastInteractionTimes.containsKey(playerId) && currentTime - lastInteractionTimes.get(playerId) < 500) { event.setCancelled(true); return; } lastInteractionTimes.put(playerId, currentTime); Inventory inventory = event.getClickedInventory(); if (inventory == null || event.getCurrentItem() == null || !event.getCurrentItem().hasItemMeta()) return; // Check if the clicked inventory is our custom GUI if (event.getView().title().equals(GUI_TITLE)) { event.setCancelled(true); ItemStack clickedItem = event.getCurrentItem(); Component displayName = clickedItem.getItemMeta().displayName(); if (!player.isOp()) { player.sendMessage(Component.text("You do not have permission to change these settings.").color(NamedTextColor.RED)); return; } if (Objects.equals(displayName, TOGGLE_ILLEGAL_ITEMS)) { handleConfigOptionClick(player, "removal-options.remove-illegal-items", "Illegal Items Removal"); } else if (Objects.equals(displayName, TOGGLE_ADMIN_ALERTS)) { handleConfigOptionClick(player, "admin-alerts.enabled", "Admin Alerts"); } else if (Objects.equals(displayName, TOGGLE_SHULKER_CLEAN)) { handleConfigOptionClick(player, "removal-options.clean-shulkers-on-place", "Shulker Box Cleaning"); } else if (Objects.equals(displayName, RELOAD_CONFIGURATION)) { reloadPluginConfig(player); } // Refresh the GUI to update statuses Bukkit.getScheduler().runTaskLater(plugin, () -> refreshSettingsGUI(player), 1); } }This logic ensures that inventory interactions are only canceled when the player is interacting with the custom GUI, allowing normal interactions elsewhere.
-
Fixing GUI Reload Functionality:
In the
ReloadCommandclass:package fanlim.dev.oaexploits.commands; import fanlim.dev.oaexploits.Oaexploits; import fanlim.dev.oaexploits.antiexploits.AntiIllegalItems; import fanlim.dev.oaexploits.chunks.ChunkLimiter; import fanlim.dev.oaexploits.players.PlayerDeopOnLeave; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; public class ReloadCommand implements CommandExecutor { private final Oaexploits plugin; private final AntiIllegalItems antiIllegalItems; private final ChunkLimiter chunkLimiter; private final PlayerDeopOnLeave playerDeopOnLeave; public ReloadCommand(@NotNull Oaexploits plugin, @NotNull AntiIllegalItems antiIllegalItems, @NotNull ChunkLimiter chunkLimiter, @NotNull PlayerDeopOnLeave playerDeopOnLeave) { this.plugin = plugin; this.antiIllegalItems = antiIllegalItems; this.chunkLimiter = chunkLimiter; this.playerDeopOnLeave = playerDeopOnLeave; } @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (command.getName().equalsIgnoreCase("oaexploits")) { if (args.length > 0 && args[0].equalsIgnoreCase("reload")) { plugin.reloadConfig(); antiIllegalItems.reloadConfigValues(); chunkLimiter.reloadChunkLimiterConfig(); playerDeopOnLeave.reloadConfigValues(); sender.sendMessage("Oaexploits configuration reloaded."); return true; } } return false; } }In the
OaExploitsGUIclass, thereloadPluginConfigmethod dispatches theoaexploits reloadcommand:private void reloadPluginConfig(Player player) { CommandSender sender = Bukkit.getConsoleSender(); Bukkit.dispatchCommand(sender, "oaexploits reload"); player.sendMessage(Component.text("Configuration reloaded.").color(NamedTextColor.GREEN)); }
Certainly! Here's the complete explanation with the code details included:
Fixes Implemented
-
Fixed Bug Where Players Could Not Drop Items or Interact with Them:
Problem: The plugin's GUI implementation inadvertently prevented players from dropping items or interacting with their inventories outside of the custom GUI.
Solution:
- The event handling logic was updated to specifically check if the interaction was within the custom GUI.
- A set was used to track which players have the custom GUI open. This ensures that only those players are affected by the interaction restrictions, allowing all other players to interact with their inventories normally.
Code Changes:
In the
OaExploitsGUIclass:@EventHandler public void onInventoryClick(InventoryClickEvent event) { if (!(event.getWhoClicked() instanceof Player player)) return; UUID playerId = player.getUniqueId(); if (!playersWithGuiOpen.contains(playerId)) return; // Only handle events for players with the GUI open long currentTime = System.currentTimeMillis(); // Prevent rapid toggling by using a cooldown if (lastInteractionTimes.containsKey(playerId) && currentTime - lastInteractionTimes.get(playerId) < 500) { event.setCancelled(true); return; } lastInteractionTimes.put(playerId, currentTime); Inventory inventory = event.getClickedInventory(); if (inventory == null || event.getCurrentItem() == null || !event.getCurrentItem().hasItemMeta()) return; // Check if the clicked inventory is our custom GUI if (event.getView().title().equals(GUI_TITLE)) { event.setCancelled(true); ItemStack clickedItem = event.getCurrentItem(); Component displayName = clickedItem.getItemMeta().displayName(); if (!player.isOp()) { player.sendMessage(Component.text("You do not have permission to change these settings.").color(NamedTextColor.RED)); return; } if (Objects.equals(displayName, TOGGLE_ILLEGAL_ITEMS)) { handleConfigOptionClick(player, "removal-options.remove-illegal-items", "Illegal Items Removal"); } else if (Objects.equals(displayName, TOGGLE_ADMIN_ALERTS)) { handleConfigOptionClick(player, "admin-alerts.enabled", "Admin Alerts"); } else if (Objects.equals(displayName, TOGGLE_SHULKER_CLEAN)) { handleConfigOptionClick(player, "removal-options.clean-shulkers-on-place", "Shulker Box Cleaning"); } else if (Objects.equals(displayName, RELOAD_CONFIGURATION)) { reloadPluginConfig(player); } // Refresh the GUI to update statuses Bukkit.getScheduler().runTaskLater(plugin, () -> refreshSettingsGUI(player), 1); } }This logic ensures that inventory interactions are only canceled when the player is interacting with the custom GUI, allowing normal interactions elsewhere.
-
Fixed GUI Reload Not Working:
Problem: The previous implementation of the GUI's reload functionality did not properly reload the configuration from the
config.ymlfile.Solution:
- A new command
ReloadCommandwas implemented and registered to handle reloading the plugin configuration. - The method in the GUI class that handles the reload was updated to programmatically execute the reload command. This ensures that when the "Reload Configuration" item in the GUI is clicked, the reload command is executed, which correctly reloads the configuration and updates any necessary settings.
Code Changes:
In the
ReloadCommandclass:package fanlim.dev.oaexploits.commands; import fanlim.dev.oaexploits.Oaexploits; import fanlim.dev.oaexploits.antiexploits.AntiIllegalItems; import fanlim.dev.oaexploits.chunks.ChunkLimiter; import fanlim.dev.oaexploits.players.PlayerDeopOnLeave; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; public class ReloadCommand implements CommandExecutor { private final Oaexploits plugin; private final AntiIllegalItems antiIllegalItems; private final ChunkLimiter chunkLimiter; private final PlayerDeopOnLeave playerDeopOnLeave; public ReloadCommand(@NotNull Oaexploits plugin, @NotNull AntiIllegalItems antiIllegalItems, @NotNull ChunkLimiter chunkLimiter, @NotNull PlayerDeopOnLeave playerDeopOnLeave) { this.plugin = plugin; this.antiIllegalItems = antiIllegalItems; this.chunkLimiter = chunkLimiter; this.playerDeopOnLeave = playerDeopOnLeave; } @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (command.getName().equalsIgnoreCase("oaexploits")) { if (args.length > 0 && args[0].equalsIgnoreCase("reload")) { plugin.reloadConfig(); antiIllegalItems.reloadConfigValues(); chunkLimiter.reloadChunkLimiterConfig(); playerDeopOnLeave.reloadConfigValues(); sender.sendMessage("Oaexploits configuration reloaded."); return true; } } return false; } }In the
OaExploitsGUIclass, thereloadPluginConfigmethod dispatches theoaexploits reloadcommand:private void reloadPluginConfig(Player player) { CommandSender sender = Bukkit.getConsoleSender(); Bukkit.dispatchCommand(sender, "oaexploits reload"); player.sendMessage(Component.text("Configuration reloaded.").color(NamedTextColor.GREEN)); }This setup ensures that when the "Reload Configuration" item is clicked in the GUI, the
oaexploits reloadcommand is executed, which reloads the plugin's configuration and updates the settings as needed. - A new command
Additional Feature
- Reload Command Usable In-Game:
The new reload command can also be used in-game by executing
/oaexploits reload. This allows administrators to reload the plugin configuration directly from the game without needing to access the server console.
Benefits of the Fixes
-
Improved User Experience: Players can now interact with their inventories and drop items normally when not using the custom GUI, improving overall gameplay experience.
-
Reliable Configuration Reload: The configuration reload functionality now works as expected. Admins can reload the configuration via the GUI, ensuring that any changes to the
config.ymlfile are applied without needing to restart the server. -
Convenient In-Game Administration: Administrators can easily reload the plugin configuration while in-game using the
/oaexploits reloadcommand, making server management more convenient.
-
OaExploits Plugin Update v1.3.60
Overview
We are excited to announce the release of OaExploits v1.3.60! This update introduces several new features, visual enhancements, and performance improvements to provide a better user experience. Below is a detailed list of the changes and instructions on how to update your existing installation.
Changelog
New Features
- Detailed Item Descriptions: Each setting item in the GUI now has a detailed description and tooltip to provide more context to the players.
- Configurable Status Indicators: Added visual indicators to show the current status (Enabled/Disabled) of each setting directly in the GUI.
Improvements
- Enhanced GUI Layout: Improved the organization and layout of items in the settings GUI for better readability and user experience.
- Sound Effects: Added sound effects for opening the GUI and changing settings to provide auditory feedback.
- Code Optimization: Refactored the code to eliminate redundancies and improve performance.
Bug Fixes
- Cooldown Management: Fixed issues related to the cooldown mechanism for toggling settings, ensuring smoother interactions.
- Permissions Handling: Corrected permission checks to ensure only OP players can access and modify settings through the GUI.
Instructions for Updating
-
Backup Your Existing Configuration
- Before updating the plugin, make sure to back up your existing configuration files to avoid any loss of custom settings.
-
Download the Latest Version
- Download the latest version of OaExploits v1.3.60 from the Modrinth Resource Page.
-
Replace the Old Plugin File
- Stop your Minecraft server.
- Navigate to the
pluginsdirectory in your server folder. - Replace the old
OaExploits.jarfile with the newOaExploits-v1.3.60.jarfile.
-
Restart Your Server
- Start your Minecraft server to load the new version of the plugin. The plugin will automatically update the configuration files if necessary.
-
Verify the Update
- Ensure that the plugin has loaded correctly by checking the server console for any errors.
- Open the OaExploits settings GUI by using the command
/oaexploitsguiand verify that the new features and improvements are working as expected.
How to Use the New Features
-
Accessing the Settings GUI
- Use the command
/oaexploitsguito open the settings GUI. This command is restricted to OP players.
- Use the command
-
Reading Item Descriptions
- Hover over the setting items in the GUI to view detailed descriptions and tooltips that explain the functionality of each setting.
-
Changing Settings
- Click on the items in the GUI to toggle settings on or off. The status indicators will update to reflect the current state of each setting.
Notes
This release focuses on enhancing the user experience with new features and improvements. If you encounter any issues or have suggestions for future updates, please create an issue on the GitHub repository.
Changelog for OaExploits from v1.3.5 to v1.3.53
v1.3.53
Important Update:
- We have made a significant update to the
build.gradlefile to enhance compatibility with multiple Java versions. This change ensures that the plugin now supports Java 8, 16, 17, and 21. The script dynamically detects the server's Java version and sets the appropriate toolchain for compilation, ensuring broader compatibility and stability across different server environments. This update is crucial for maintaining the flexibility and robustness of the plugin in diverse deployment scenarios.
v1.3.52
Bug Fixes:
- Fixed null pointer exceptions in event handlers.
- Corrected item type identification and logging in AntiIllegalItems.
- Resolved issues with illegal item removal in shulker boxes.
Improvements:
- Enhanced logging to prevent leaking coordinates.
- Generalized illegal item removal messages to avoid specifying item types.
Code Cleanup:
- Removed the ChunkDataHandler class.
- Eliminated unnecessary logging of specific items removed from containers.
v1.3.51
New Features:
- Added configuration options for enabling/disabling admin alerts.
- Introduced customizable messages for illegal item interactions.
Bug Fixes:
- Addressed issues with inventory scan depth settings.
- Improved handling of container inventories to prevent illegal item movements.
Improvements:
- Enhanced notification system for players when interacting with illegal items.
v1.3.5
Performance Improvements:
- Optimized asynchronous processing of block state events.
- Improved efficiency of inventory checks and item removal processes.
Bug Fixes:
- Resolved various minor bugs reported by users.
- We have made a significant update to the
Here’s an improved and more detailed description of the plugin for its first release on Modrinth:
OaExploits Plugin - First Release
Welcome to the first release of the OaExploits plugin on Modrinth! This powerful tool is designed specifically for anarchy servers and other Minecraft servers dealing with illegal items and block limits. OaExploits offers a comprehensive set of features to maintain server integrity and enhance gameplay.
Key Features:
-
Illegal Items Management:
- Automatically detects and removes illegal items from players' inventories and containers.
- Ensures that the server remains fair and free from game-breaking items.
-
Chunk Limits:
- Set limits for specific items in each chunk to prevent excessive block placement and potential server lag.
- Fully customizable through the configuration file, allowing you to set limits for various items.
-
Command Control:
- Block specific commands and whitelist allowed commands to control server operations.
- Enhance server security by preventing unauthorized command usage.
-
Customizable Notifications:
- Notify players when they attempt to place or interact with illegal items.
- Customizable messages to fit your server's style and rules.
-
Built-in /stats Command:
- Provides comprehensive world statistics for server admins and players.
- Useful for monitoring server health and player activities.
-
Admin Alerts:
- Sends alerts to admins when players attempt to interact with illegal items.
- Prevents abuse and keeps server administrators informed.
Configuration:
OaExploits is highly configurable to suit your server's needs. All settings can be adjusted in the
config.ymlfile:removal-options: remove-illegal-items: true clean-shulkers-on-place: true notify-player-on-illegal-placement: true- remove-illegal-items: Toggle the removal of illegal items.
- clean-shulkers-on-place: Clean shulker boxes of illegal items when placed or opened.
- notify-player-on-illegal-placement: Notify players upon attempting to place illegal items.
Installation and Usage:
- Download and Install: Download the plugin from Modrinth and place it in your server's plugins folder.
- Configure: Edit the
config.ymlfile to suit your server's requirements. - Start Your Server: Restart your server to load the plugin.
- Enjoy: Your server is now protected with OaExploits!
Whether you run a large anarchy server or a small private server, OaExploits helps you maintain order and prevent exploitation. Download now and enhance your server's security and fairness!
-

