private void checkMethodCache(World world, Firework firework) throws Exception {

        if (world_getHandle == null) {
            world_getHandle = world.getClass().getDeclaredMethod("getHandle");
        }

        if (firework_getHandle == null) {
            firework_getHandle = firework.getClass().getDeclaredMethod("getHandle");
        }

        if (nmsFirwork_setInvisible == null) {
            for (Method method : firework_getHandle.invoke(firework).getClass().getMethods()) {
                if (method.getName().equals("setInvisible")) {
                    nmsFirwork_setInvisible = method;
                    break;
                }
            }
        }

        if (nmsWorld_broadcastEntityEffect == null) {
            for (Method method : world_getHandle.invoke(world).getClass().getMethods()) {
                if (method.getName().equals("broadcastEntityEffect")) {
                    nmsWorld_broadcastEntityEffect = method;
                    break;
                }
            }
        }
    }