function kickPlayer(player) {
    try {
        const lands = Land.getLands(player);

        if (!Array.isArray(lands) || lands.length === 0) {
            player.sendMessage("§cYou do not own any plots.");
            return;
        }

        // Create a form to select a plot to kick a player from
        const landSelectionForm = new ActionFormData()
            .title("§y§rSelect a Plot to Kick a Player")
            .body("Please select a plot from which to remove a player's access.");

        lands.forEach(land => {
            landSelectionForm.button(`PLOT# ${land.landID}`);
        });

        landSelectionForm.show(player).then(landSelectionResult => {
            if (landSelectionResult.canceled) return;

            const selectedLand = lands[landSelectionResult.selection];
            const members = Land.getInvites(selectedLand.landID);

            if (!members || members.length === 0) {
                player.sendMessage("§cThere are no members in this plot to kick.");
                return;
            }

            const kickForm = new ModalFormData()
                .title("§y§rKick Player from Plot")
                .dropdown("Select Player to Kick", members)
                .textField("Reason (optional)", "Enter reason here...");

            kickForm.show(player).then(async (kickResult) => {
                if (kickResult.canceled) return;

                const [selectedPlayerIndex, reason] = kickResult.formValues;
                const playerToKick = members[selectedPlayerIndex];

                const result = Land.removeInvite(selectedLand.landID, playerToKick);

                if (result) {
                    player.sendMessage(`§aSuccessfully kicked ${playerToKick} from the plot.`);
                    const kickedPlayer = world.getPlayers().find(p => p.name === playerToKick);
                    if (kickedPlayer) {
                        NotificationManager.showKickNotification(kickedPlayer, selectedLand.landID, reason || "No reason provided");
                    }
                    
                    // Reload land timers to ensure they continue running
                    await LandTimerManager.loadLandTimers();
                } else {
                    player.sendMessage("§cFailed to kick the player. Please try again.");
                }
            });
        });
    } catch (error) {
        console.error("Error in kickPlayer:", error);
        player.sendMessage("§cAn error occurred while trying to kick the player.");
    }
}