Replace super-slow global refreshPermissions() with user- and group-specific refreshes that don't also remove every permission beforehand (another super-slow operation).
Use getPlayerExact in situations where the exact player name is known (anywhere outside commands).