Repository navigation
API
eldor edited this page Nov 12, 2025
·
2 revisions
Developer documentation for integrating with ChestLockLite.
ChestLockLitePlugin plugin = (ChestLockLitePlugin) Bukkit.getPluginManager().getPlugin("ChestLockLite");
if (plugin == null || !plugin.isEnabled()) {
// Plugin not loaded
return;
}DatabaseManager dbManager = plugin.getDatabaseManager();
// Check if location is locked
boolean isLocked = dbManager.isLocked(location);
// Get lock data
DatabaseManager.LockData lockData = dbManager.getLockData(location);
if (lockData != null) {
UUID ownerUUID = lockData.getOwnerUUID();
String ownerName = lockData.getOwnerName();
boolean hasPassword = lockData.hasPassword();
}LockManager lockManager = plugin.getLockManager();
// Check if player can open chest
boolean canOpen = lockManager.canOpenChest(player, location);
// Check if block is a chest
boolean isChest = lockManager.isChest(block);ConfigManager configManager = plugin.getConfigManager();
// Get configuration values
boolean allowPasswords = configManager.isPasswordEnabled();
int maxChests = configManager.getMaxChestsPerPlayer();
int passwordCooldown = configManager.getPasswordCooldown();ChestLockLite may fire custom events for integration:
@EventHandler
public void onChestLock(ChestLockEvent event) {
Location location = event.getLocation();
Player player = event.getPlayer();
// Handle lock event
}
@EventHandler
public void onChestUnlock(ChestUnlockEvent event) {
Location location = event.getLocation();
Player player = event.getPlayer();
// Handle unlock event
}DatabaseManager dbManager = plugin.getDatabaseManager();
boolean locked = dbManager.isLocked(location);LockManager lockManager = plugin.getLockManager();
boolean canOpen = lockManager.canOpenChest(player, location);DatabaseManager dbManager = plugin.getDatabaseManager();
boolean isOwner = dbManager.isOwner(location, player.getUniqueId());DatabaseManager dbManager = plugin.getDatabaseManager();
boolean isTrusted = dbManager.isTrustedPlayer(location, player.getUniqueId());DatabaseManager dbManager = plugin.getDatabaseManager();
List<DatabaseManager.TrustedPlayerData> trusted = dbManager.getTrustedPlayers(location);
for (DatabaseManager.TrustedPlayerData data : trusted) {
UUID uuid = data.getTrustedUUID();
String name = data.getTrustedName();
}DatabaseManager dbManager = plugin.getDatabaseManager();
DatabaseManager.LockData lockData = dbManager.getLockData(location);
boolean hasPassword = lockData != null && lockData.hasPassword();PasswordHasher passwordHasher = new PasswordHasher();
String passwordHash = lockData.getPasswordHash();
boolean valid = passwordHasher.verifyPassword(password, passwordHash);- Cache lock data when possible
- Use async operations for database queries
- Don't check locks on every block break (use events)
- Database operations should be on main thread (Bukkit API requirement)
- Use Bukkit scheduler for async work
- Lock data is cached, updates may be delayed
- Always check if plugin is enabled
- Handle null returns from managers
- Verify locations are valid
- Check database connection
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
Block block = event.getBlock();
ChestLockLitePlugin plugin = (ChestLockLitePlugin) Bukkit.getPluginManager().getPlugin("ChestLockLite");
if (plugin == null || !plugin.isEnabled()) {
return;
}
LockManager lockManager = plugin.getLockManager();
if (lockManager.isChest(block)) {
DatabaseManager dbManager = plugin.getDatabaseManager();
if (dbManager.isLocked(block.getLocation())) {
DatabaseManager.LockData lockData = dbManager.getLockData(block.getLocation());
if (!lockData.getOwnerUUID().equals(event.getPlayer().getUniqueId())) {
event.setCancelled(true);
event.getPlayer().sendMessage("This chest is locked!");
}
}
}
}- API may change between versions
- Check plugin version before using API
- Test integrations after plugin updates
For API questions or feature requests:
- Check GitHub issues
- Review plugin source code
- Contact plugin maintainer
- Main plugin source code
- Database Management