Rizlaaa Posted May 6, 2012 Posted May 6, 2012 A light donate system , made by me. It works like all but it's faster and it works with .txt file. Tested *No SQL Connections *Less memory usage *can be easy handled For add/remove donator: //setdonator or in the text file in a new line add the new character name. //removedonator or delete the character name from the txt file. Example: Iracundus Test Blabla Donator32 Lordofpvp ### Eclipse Workspace Patch 1.0 #P Chr.6GMS Index: java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 5263) +++ java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (working copy) @@ -27,6 +27,7 @@ import net.sf.l2j.Config; import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.gameserver.Announcements; +import net.sf.l2j.gameserver.Donate; import net.sf.l2j.gameserver.GmListTable; import net.sf.l2j.gameserver.LoginServerThread; import net.sf.l2j.gameserver.Olympiad; @@ -251,6 +252,7 @@ SevenSigns.getInstance().sendCurrentPeriodMsg(activeChar); Announcements.getInstance().showAnnouncements(activeChar); + Donate.onEnter(activeChar); Quest.playerEnter(activeChar); activeChar.sendPacket(new QuestList()); Index: java/net/sf/l2j/gameserver/Donate.java =================================================================== --- java/net/sf/l2j/gameserver/Donate.java (revision 0) +++ java/net/sf/l2j/gameserver/Donate.java (revision 0) @@ -0,0 +1,134 @@ +package net.sf.l2j.gameserver; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.LineNumberReader; +import java.util.StringTokenizer; + +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import javolution.util.FastList; + + +public class Donate{ + private static Donate _instance = null; + public static FastList<String> donators = new FastList<String>(); + static File file = new File(Config.DATAPACK_ROOT, "data/donators.txt"); + + public Donate(){ + loadDonatorsAtStart(); + } + + public static Donate getInstance(){ + if(_instance == null) + _instance = new Donate(); + + return _instance; + } + + public static boolean isDonator(L2PcInstance activeChar){ + if(donators.contains(activeChar.getName())) + return true; + return false; + } + + public static void onEnter(L2PcInstance activeChar){ + if(donators.contains(activeChar.getName())){ + Announcements.getInstance().announceToAll("Donator: "+activeChar.getName()+" is now online"); + activeChar.getAppearance().setNameColor(0xFFFF); + } + } + + public static void newDonate(L2PcInstance activeChar){ + Announcements.getInstance().announceToAll("Player "+activeChar.getName()+" is a server donator now"); + activeChar.getAppearance().setNameColor(0xFFFF); + activeChar.broadcastUserInfo(); + activeChar.sendMessage("You have become a server donator now , congratulations"); + } + + public static void oldDonate(L2PcInstance activeChar){ + Announcements.getInstance().announceToAll("Player "+activeChar.getName()+" is no more a server donator"); + activeChar.sendMessage("You are no longer a server donator"); + } + + public static void removeDonator(L2PcInstance activeChar){ + String name = activeChar.getName(); + donators.remove(name); + + FileWriter s = null; + try + { + s = new FileWriter(file); + for (int i = 0; i < donators.size(); i++) + { + s.write(donators.get(i)); + s.write("\r\n"); + } + s.flush(); + s.close(); + s = null; + } + catch (IOException e) + { + e.printStackTrace(); + } + } + + public static void addExtraDonator(L2PcInstance activeChar){ + String name = activeChar.getName(); + donators.add(name); + + FileWriter s = null; + try + { + s = new FileWriter(file); + for (int i = 0; i < donators.size(); i++) + { + s.write(donators.get(i)); + s.write("\r\n"); + } + s.flush(); + s.close(); + s = null; + } + catch (IOException e) + { + e.printStackTrace(); + } + } + + public static void loadDonatorsAtStart(){ + LineNumberReader l = null; + try{ + String line = null; + int counter = 0; + l = new LineNumberReader(new FileReader(file)); + while ( (line = l.readLine()) != null) + { + StringTokenizer st = new StringTokenizer(line,"\n\r"); + if (st.hasMoreTokens()) + { + String n = st.nextToken(); + donators.add(n); + counter++; + } + } + System.out.print("Loaded: "+counter+" donator players"); + } + catch(Exception e){ + e.printStackTrace(); + } + finally + { + try + { + l.close(); + } + catch (Exception e) + { + } + } + } +} \ No newline at end of file Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminDonate.java =================================================================== --- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminDonate.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminDonate.java (revision 0) @@ -0,0 +1,77 @@ + +package net.sf.l2j.gameserver.handler.admincommandhandlers; + +import net.sf.l2j.gameserver.Donate; +import net.sf.l2j.gameserver.handler.IAdminCommandHandler; +import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; + + +public class AdminDonate implements IAdminCommandHandler +{ + + private static final String[] commands = {"admin_setdonator","admin_removedonator"}; + + public boolean useAdminCommand(String command, L2PcInstance activeChar) + { + if(command.equalsIgnoreCase("admin_setdonator")){ + if(activeChar == null) + return false; + + L2Object t = activeChar.getTarget(); + L2PcInstance target = null; + + if(t == null) + return false; + + if(!(t instanceof L2PcInstance)) + return false; + target = (L2PcInstance) t; + + if(target == activeChar) + return false; + + if(Donate.isDonator(target)){ + activeChar.sendMessage("This player is already a donator"); + return false; + } + + Donate.addExtraDonator(target); + Donate.newDonate(target); + } + + else if(command.equalsIgnoreCase("admin_removedonator")){ + if(activeChar == null) + return false; + + L2Object t = activeChar.getTarget(); + L2PcInstance target = null; + + if(t == null) + return false; + + if(!(t instanceof L2PcInstance)) + return false; + target = (L2PcInstance) t; + + if(target == activeChar) + return false; + + if(!Donate.isDonator(target)){ + activeChar.sendMessage("This player is not a donator"); + return false; + } + + Donate.removeDonator(target); + Donate.oldDonate(target); + } + + return true; + } + + + public String[] getAdminCommandList() + { + return commands; + } +} Index: data/donators.txt =================================================================== Index: java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- java/net/sf/l2j/gameserver/GameServer.java (revision 5263) +++ java/net/sf/l2j/gameserver/GameServer.java (working copy) @@ -78,6 +78,7 @@ import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminCreateItem; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminCursedWeapons; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminDelete; +import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminDonate; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminDoorControl; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEditChar; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEditNpc; @@ -404,6 +405,7 @@ Announcements.getInstance(); MapRegionTable.getInstance(); EventDroplist.getInstance(); + Donate.getInstance(); /** Load Manor data */ L2Manor.getInstance(); @@ -518,6 +520,7 @@ _adminCommandHandler = AdminCommandHandler.getInstance(); _adminCommandHandler.registerAdminCommandHandler(new AdminAdmin()); + _adminCommandHandler.registerAdminCommandHandler(new AdminDonate()); _adminCommandHandler.registerAdminCommandHandler(new AdminInvul()); _adminCommandHandler.registerAdminCommandHandler(new AdminDelete()); _adminCommandHandler.registerAdminCommandHandler(new AdminKill()); And create a new file name donators.txt in data folder. Quote
Rizlaaa Posted May 6, 2012 Author Posted May 6, 2012 nice coding style,brah. good job. Thanks man :D Quote
Zake Posted May 6, 2012 Posted May 6, 2012 Thanks Zake i'd like to give you karma again, but they 're gonna call me abuser. Quote
Rizlaaa Posted May 6, 2012 Author Posted May 6, 2012 i'd like to give you karma again, but they 're gonna call me abuser. lol anyway...who cares about karma ;D Quote
Zake Posted May 6, 2012 Posted May 6, 2012 lol anyway...who cares about karma ;D Dunno maybe elfocrash. It's a motivation for people to share. Quote
Rizlaaa Posted May 6, 2012 Author Posted May 6, 2012 It's a motivation for people to share. true story Quote
An4rchy Posted May 6, 2012 Posted May 6, 2012 Since a getInstance() method exists in Donate.java, you don't need to set the methods to static. You get a new object of the class with the getInstance() method... Quote
Rizlaaa Posted May 6, 2012 Author Posted May 6, 2012 Since a getInstance() method exists in Donate.java, you don't need to set the methods to static. You get a new object of the class with the getInstance() method... True, i didn't care it. Quote
ServeSATAN Posted May 6, 2012 Posted May 6, 2012 Nice Work Iracundus You Are Helpfull On This Forum! who cares about pixels.. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.