public static void doDonation(MapleClient c, String name, short damount, String email) {
        ChannelServer cserv = c.getChannelServer();
        try {
            WorldLocation loc = cserv.getWorldInterface().getLocation(name);
            if (loc != null) {
                MapleCharacter victim = ChannelServer.getInstance(loc.channel).getPlayerStorage().getCharacterByName(name);
                if (victim == null) {
                    c.dropMessage("Player " + name + " does not exist.");
                    return;
                }
                // first add points...
                victim.modifyDAmount(damount);
                victim.modifyDPoints(damount);
                victim.showMessage(1, "[TheBass] Thank you for donating $" + damount + " to NinjaMS. A total of " + victim.getDPoints() + " Donator Points has been set for you by default.\r\n\r\nSee your chatbox if you have any extra functions given to you.");
                c.dropMessage("[TheBass] Successfully distributed " + damount + " to " + victim.getName());
                // extra point at one time!
                short extrapoints = 0;
                for (int i = 10; i <= damount; i += 10) {
                    extrapoints += 1;
                }
                if (extrapoints > 0) {
                    victim.modifyDPoints(extrapoints);
                    victim.showMessage(5, "[TheBass] You have gained " + extrapoints + " extra Donator Points. (You get 1 more for every $10 you donate at once.)");
                    c.dropMessage("[TheBass] Successfully distributed " + extrapoints + " extra donator point because of higher donation amount to " + victim.getName());
                }
                // rewards package
                if (victim.getDAmount() >= 20 && !victim.isGenin()) {
                    Status.setGMLevel(victim, (byte)1);
                    victim.showMessage(5, "[TheBass]You have successfully gained Donator Status! See #commands for your commands!");
                    c.dropMessage("[TheBass]" + victim.getName() + " has gained donator points.");
                }
                donationCheck(c, victim, damount, email);
                // complete
                victim.showMessage(5, "[TheBass]Donation process complete.");
                c.dropMessage("[TheBass]Donation process complete.");
                victim.saveToDB(false, false);
            } else {
                c.dropMessage("[Anbu] Ninja named '" + name + "' does not exist, is CCing, or is offline.");
            }
        } catch (Exception e) {
            c.dropMessage("[Anbu] Ninja named '" + name + "' does not exist, is CCing, or is offline.");
        }
    }