public void unstuck() {
        sendGMMsg("Unstucking " + getName());
        try {
            getMap().broadcastMessage(MaplePacketCreator.removePlayerFromMap(id));
            try {
                map.removePlayer(this);
                sendGMMsg("tried to remove player from map");
            } catch (Exception e) {
                getMap().broadcastMessage(MaplePacketCreator.removePlayerFromMap(id));
                sendGMMsg("Tried to broadcast remove player packet as removing player failed");
            }
            try {
                if (getEventInstance() != null) {
                    getEventInstance().unregisterPlayer(this);
                    sendGMMsg("Event stuck tried to fix by unregistering the character in the event");
                }
            } catch (Exception e) {
                System.err.println("Unstuck ERROR : " + e);
            }
            try {
                if (NPCScriptManager.getInstance().getCM(client) != null) {
                    NPCScriptManager.getInstance().dispose(client);
                }
            } catch (Exception e) {
                System.err.println("Unstuck ERROR : " + e);
            }
            try {
                if (client.getChannelServer().getPlayerStorage().getCharacterById(this.id) != null) { // check, null pointer no thanks
                    client.getChannelServer().removePlayer(this); // this is all you need.
                    sendGMMsg("player was in the player storage so tried to remove him from that");
                }
            } catch (Exception e) {
                System.err.println("Unstuck ERROR : " + e);
            }
            try {
                client.disconnect(true, false);
                sendGMMsg("Tried to disconnect his client");
            } catch (Exception e) {
                System.err.println("Unstuck ERROR : " + e);
            }
            try {
                Connection con = DatabaseConnection.getConnection();
                PreparedStatement ps = con.prepareStatement("UPDATE accounts SET loggedin = ? WHERE id = ?");
                ps.setInt(1, 0);
                ps.setInt(2, accountid);
                ps.executeUpdate();
                ps.close();
            } catch (SQLException ignored) {
            }
        } catch (Exception e) {
            System.err.println("Unstuck ERROR : " + e);
        }

    }