Gam3Master Posted June 18, 2016 Share Posted June 18, 2016 (edited) Code for forbidden names which users can't name their characters. ### Eclipse Workspace Patch 1.0 #P aCis_350 Index: config/server.properties =================================================================== --- config/server.properties (revision 5) +++ config/server.properties (working copy) @@ -64,6 +64,9 @@ # Allow delete chars after D days, 0 = feature disabled. DeleteCharAfterDays = 7 +#Restricted names for characters +RestrictedNames = fuck,dildo,admin + # Define how many players are allowed to play simultaneously on your server. MaximumOnlineUsers = 100 Index: java/net/sf/l2j/Config.java =================================================================== --- java/net/sf/l2j/Config.java (revision 5) +++ java/net/sf/l2j/Config.java (working copy) @@ -521,6 +521,8 @@ /** clients related */ public static int DELETE_DAYS; + public static String FORBIDDEN_NAMES; + public static List<String> LIST_FORBIDDEN_NAMES = new ArrayList<>(); public static int MAXIMUM_ONLINE_USERS; public static int MIN_PROTOCOL_REVISION; public static int MAX_PROTOCOL_REVISION; @@ -1108,6 +1110,12 @@ SERVER_LIST_TESTSERVER = server.getProperty("TestServer", false); DELETE_DAYS = server.getProperty("DeleteCharAfterDays", 7); + FORBIDDEN_NAMES = server.getProperty("RestrictedNames", "fuck,dildo,admin"); + LIST_FORBIDDEN_NAMES = new ArrayList<>(); + for (String listid : FORBIDDEN_NAMES.split(",")) + { + LIST_FORBIDDEN_NAMES.add(listid); + } MAXIMUM_ONLINE_USERS = server.getProperty("MaximumOnlineUsers", 100); MIN_PROTOCOL_REVISION = server.getProperty("MinProtocolRevision", 730); MAX_PROTOCOL_REVISION = server.getProperty("MaxProtocolRevision", 746); Index: java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java (revision 5) +++ java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java (working copy) @@ -79,6 +79,18 @@ return; } + if(!Config.FORBIDDEN_NAMES.isEmpty()) + { + for(String st : Config.LIST_FORBIDDEN_NAMES) + { + if(_name.toLowerCase().contains(st)) + { + sendPacket(new CharCreateFail(CharCreateFail.REASON_INCORRECT_NAME)); + return; + } + } + } + if (!StringUtil.isValidPlayerName(_name)) { sendPacket(new CharCreateFail(CharCreateFail.REASON_INCORRECT_NAME)); Edited June 20, 2016 by Gam3Master 1 Link to comment Share on other sites More sharing options...
MeLDevGree Posted June 18, 2016 Share Posted June 18, 2016 give a credits Link to comment Share on other sites More sharing options...
Gam3Master Posted June 18, 2016 Author Share Posted June 18, 2016 I wrote it on my own, If it is already shared don't know... Link to comment Share on other sites More sharing options...
AccessDenied Posted June 19, 2016 Share Posted June 19, 2016 give a credits Give credits for what? its 1 line code and is already implement in every project (acis, l2j e.t.c) Link to comment Share on other sites More sharing options...
Gam3Master Posted June 19, 2016 Author Share Posted June 19, 2016 Give credits for what? its 1 line code and is already implement in every project (acis, l2j e.t.c) Really? I am not sure if aCis has it. Link to comment Share on other sites More sharing options...
AccessDenied Posted June 19, 2016 Share Posted June 19, 2016 Really? I am not sure if aCis has it. ελεος.. ειναι 1 γραμμη κωδικα ολα τα project το εχουν.. Link to comment Share on other sites More sharing options...
classycraw Posted June 19, 2016 Share Posted June 19, 2016 (edited) Code for forbidden names which users can't name their characters. http://pastebin.com/9JXurCeE Your code will not work properly. If you forbid one player name, if statement return false. Just change if(Config.FORBIDDEN_NAMES.length > 1) to if(Config.FORBIDDEN_NAMES.length >= 1) or if(Config.FORBIDDEN_NAMES.length > 0) Thank you for your sharing ;) Edited June 19, 2016 by ClassyCraw Link to comment Share on other sites More sharing options...
Gam3Master Posted June 19, 2016 Author Share Posted June 19, 2016 Your code will not work properly. If you forbid one player name, if statement return false. Just change if(Config.FORBIDDEN_NAMES.length > 1) to if(Config.FORBIDDEN_NAMES.length >= 1) or if(Config.FORBIDDEN_NAMES.length > 0) Thank you for your sharing ;) thanks for response I will update it Link to comment Share on other sites More sharing options...
SweeTs Posted June 19, 2016 Share Posted June 19, 2016 (edited) Both ways sux. Simply if (!Config.WHAT_EVER_CONFIG_IT_IS.isEmpty()) So, if config is empty, the feature is disabled. Edited June 19, 2016 by SweeTs Link to comment Share on other sites More sharing options...
Gam3Master Posted June 19, 2016 Author Share Posted June 19, 2016 Both ways sux. Simply if (!Config.WHAT_EVER_CONFIG_IT_IS.isEmpty()) So, if config is empty, the feature is disabled. Link to comment Share on other sites More sharing options...
SweeTs Posted June 19, 2016 Share Posted June 19, 2016 (edited) Oh right it's [], so simply length > 0. Also, in your case you can't leave it empty (error otherwise) :P Also, while the config uses lower case letters, you don't have to use st.toLowerCase(), simply st is enough. Edited June 19, 2016 by SweeTs Link to comment Share on other sites More sharing options...
Tryskell Posted June 20, 2016 Share Posted June 20, 2016 (edited) Also, while the config uses lower case letters, you don't have to use st.toLowerCase(), simply st is enough. That would mean Dildo, dIldo, diLdo, dilDo, dildO (and all others possibilies) would be legit. And yeah I did that to write dildo 5x. Now 6x. Edited June 20, 2016 by Tryskell Link to comment Share on other sites More sharing options...
Nik Posted June 20, 2016 Share Posted June 20, 2016 Lets not forget Amouncements, Anouncements, Announcenets, Annonucements, Announcenemts, Annauncements, Nlk, Admln and whatever else I saw in my servers xD Link to comment Share on other sites More sharing options...
Gam3Master Posted June 20, 2016 Author Share Posted June 20, 2016 Thanks everybody for response. I updated patch. from String[] I modified to ArrayList. Didn't test but should work. Link to comment Share on other sites More sharing options...
Tryskell Posted June 20, 2016 Share Posted June 20, 2016 (edited) + for (String listid : FORBIDDEN_NAMES.split(",")) + { + LIST_FORBIDDEN_NAMES.add(String.valueOf(listid)); + } String.valueOf is useless. + if(!Config.FORBIDDEN_NAMES.isEmpty()) + { + for(String st : Config.LIST_FORBIDDEN_NAMES) + { + if(_name.toLowerCase().contains(st)) + { + sendPacket(new CharCreateFail(CharCreateFail.REASON_INCORRECT_NAME)); + return; + } + } + } > if (LIST_FORBIDDEN_NAMES.contains(_name.toLowerCase()) { sendPacket(new CharCreateFail(CharCreateFail.REASON_INCORRECT_NAME)); return; } Edited June 20, 2016 by Tryskell Link to comment Share on other sites More sharing options...
Recommended Posts