View difference between Paste ID: HKLN2Smy and gFUrqZPY
SHOW: | | - or go back to the newest paste.
1
### Eclipse Workspace Patch 1.0
2
#P aCis_gameserver
3
Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
4
===================================================================
5
--- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(revision 65)
6
+++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(working copy)
7
@@ -33,6 +33,7 @@
8
 import net.sf.l2j.gameserver.model.L2Clan;
9
 import net.sf.l2j.gameserver.model.L2World;
10
 import net.sf.l2j.gameserver.model.actor.L2Character;
11
+import net.sf.l2j.gameserver.model.actor.ipCatcher;
12
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
13
 import net.sf.l2j.gameserver.model.entity.ClanHall;
14
 import net.sf.l2j.gameserver.model.entity.Couple;
15
@@ -175,6 +176,10 @@
16
 		if (Config.ALLOW_WEDDING)
17
 			engage(activeChar);
18
 		
19
+	    final ipCatcher ipc = new ipCatcher();
20
+	    if(ipc.isCatched(activeChar))
21
+	          activeChar.logout();
22
+	        
23
 		// Announcements, welcome & Seven signs period messages
24
 		activeChar.sendPacket(SystemMessageId.WELCOME_TO_LINEAGE);
25
 		SevenSigns.getInstance().sendCurrentPeriodMsg(activeChar);
26
Index: java/net/sf/l2j/gameserver/model/actor/ipCatcher.java
27
===================================================================
28
--- java/net/sf/l2j/gameserver/model/actor/ipCatcher.java	(revision 0)
29
+++ java/net/sf/l2j/gameserver/model/actor/ipCatcher.java	(revision 0)
30
@@ -0,0 +1,192 @@
31
+package net.sf.l2j.gameserver.model.actor;
32
+ 
33
+import java.io.File;
34
+import java.io.FileReader;
35
+import java.io.FileWriter;
36
+import java.io.IOException;
37
+import java.io.LineNumberReader;
38
+import java.net.InetAddress;
39
+import java.net.NetworkInterface;
40
+import java.net.SocketException;
41
+import java.net.UnknownHostException;
42
+import java.util.StringTokenizer;
43
+ 
44
+import javolution.util.FastList;
45
+ 
46
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
47
+ 
48
+/**
49
+ * @author AbsolutePower
50
+ */
51
+public class ipCatcher
52
+{
53
+        public static FastList<String> ips = new FastList<>();                                               
54
+          static File file = new File("data/ips.txt");  
55
+         
56
+          public String getMacAddr(L2PcInstance p)
57
+          {
58
+                  StringBuilder sb = new StringBuilder();      
59
+                  byte[] mac = null;
60
+                 
61
+                  if(p != null)            
62
+                        try
63
+                        {      
64
+                                
65
+								@SuppressWarnings("static-access")
66
+								final InetAddress ip = p.getClient().getConnection().getInetAddress().getLocalHost();
67
+                                NetworkInterface network = NetworkInterface.getByInetAddress(ip);      
68
+                               
69
+                                if(network !=null)
70
+                                {
71
+                                        mac = network.getHardwareAddress();
72
+                                }
73
+                               
74
+                                if(mac!=null)          
75
+                                {
76
+                                for (int i = 0; i < mac.length; i++)
77
+                                {
78
+                                        sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
79
+                                }
80
+                                }
81
+                                else
82
+                                        sb.append("No mac found");
83
+                 
84
+                        }
85
+                        catch (SocketException e)
86
+                        {
87
+                 
88
+                                e.printStackTrace();
89
+                 
90
+                        }
91
+                        catch (UnknownHostException e)
92
+                        {
93
+                                e.printStackTrace();
94
+                        }
95
+                       
96
+                        return sb.toString();
97
+           }
98
+         
99
+           public String getIp(L2PcInstance p)
100
+           {
101
+                    return p.getClient().getConnection().getInetAddress().getHostAddress();
102
+           }   
103
+           
104
+           //return true if catched :D
105
+           public boolean isCatched(L2PcInstance p)
106
+           {
107
+                        if(ips.contains(getMacAddr(p)) || ips.contains(getIp(p)))
108
+                           return true;
109
+                       
110
+                        return false;
111
+           }
112
+           
113
+           //make textfile if not exist
114
+           public static void MkTiNe()
115
+           {
116
+                   if(file == null)
117
+                   file.mkdirs();
118
+           }
119
+           
120
+        public void addIp(L2PcInstance p)
121
+        {
122
+                MkTiNe();
123
+                        final String ip = getIp(p);
124
+                        final String name = p.getName();
125
+                       
126
+                        if(ip != null && name != null)
127
+                        ips.add("Name");
128
+                        ips.add(name);
129
+                        ips.add("Ip");
130
+                        ips.add(ip);
131
+                        ips.add("Mac Addres");
132
+                        ips.add(getMacAddr(p));
133
+                        ips.add("-");
134
+               
135
+                        FileWriter s = null;
136
+                        try
137
+                        {
138
+                                s = new FileWriter(file);
139
+                                for (int i = 0; i < ips.size(); i ++)
140
+                                {
141
+                                        s.write(ips.get(i));
142
+                                        s.write("\r\n");
143
+                                }
144
+                                s.flush();
145
+                                s.close();
146
+                                s = null;
147
+                        }
148
+                        catch (IOException e)
149
+                        {
150
+                                e.printStackTrace();
151
+                        }
152
+                        ipsLoad();
153
+        }
154
+ 
155
+        public void removeIp(L2PcInstance p)
156
+        {
157
+                        final String ip = getIp(p);
158
+                        final String name = p.getName();
159
+                       
160
+                        if(ip != null && name != null)
161
+                        ips.remove("Name");
162
+                        ips.remove(name);
163
+                        ips.remove("Ip");
164
+                        ips.remove(ip);
165
+                        ips.remove("Mac Addres");
166
+                        ips.remove(getMacAddr(p));
167
+                        ips.remove("-");
168
+               
169
+                        FileWriter s = null;
170
+                        try
171
+                        {
172
+                                s = new FileWriter(file);
173
+                                for (int i = 0; i < ips.size(); i ++)
174
+                                {
175
+                                        s.write(ips.get(i));
176
+                                        s.write("\r\n");
177
+                                }
178
+                                s.flush();
179
+                                s.close();
180
+                                s = null;
181
+                        }
182
+                        catch (IOException e)
183
+                        {
184
+                                e.printStackTrace();
185
+                        }
186
+                        ipsLoad();
187
+        }
188
+                
189
+        public static void ipsLoad()
190
+        {
191
+                        MkTiNe();
192
+                        LineNumberReader l = null;
193
+                                try
194
+                                {
195
+                                        String line = null;
196
+                                        l = new LineNumberReader(new FileReader(file));
197
+                                        while ( (line = l.readLine()) != null)
198
+                                        {
199
+                                                StringTokenizer st = new StringTokenizer(line,"\n\r");
200
+                                                if (st.hasMoreTokens())
201
+                                                {
202
+                                                        String n = st.nextToken();
203
+                                                        ips.add(n);
204
+                                                }                                      
205
+                                        }      
206
+                                }
207
+                                catch(Exception e){
208
+                                        e.printStackTrace();
209
+                                }
210
+                                finally
211
+                                {
212
+                                        try
213
+                                        {
214
+                                                if(l != null)
215
+                                                l.close();
216
+                                        }
217
+                                        catch (Exception e)
218
+                                        {
219
+                                        }
220
+                        }
221
+                  }
222
+}
223
\ No newline at end of file
224
Index: java/net/sf/l2j/gameserver/GameServer.java
225
===================================================================
226
--- java/net/sf/l2j/gameserver/GameServer.java	(revision 65)
227
+++ java/net/sf/l2j/gameserver/GameServer.java	(working copy)
228
@@ -95,6 +95,7 @@
229
 import net.sf.l2j.gameserver.model.L2World;
230
 import net.sf.l2j.gameserver.model.PartyMatchRoomList;
231
 import net.sf.l2j.gameserver.model.PartyMatchWaitingList;
232
+import net.sf.l2j.gameserver.model.actor.ipCatcher;
233
 import net.sf.l2j.gameserver.model.entity.AutoAnnouncement;
234
 import net.sf.l2j.gameserver.model.entity.Castle;
235
 import net.sf.l2j.gameserver.model.entity.Hero;
236
@@ -293,7 +294,8 @@
237
 		AutoAnnouncement.getInstance();
238
 		if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS)
239
 		OfflineTradersTable.restoreOfflineTraders();
240
-        
241
+		ipCatcher.ipsLoad();
242
+		
243
 		Util.printSection("System");
244
 		TaskManager.getInstance();
245
 		
246
Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBan.java
247
===================================================================
248
--- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBan.java	(revision 65)
249
+++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBan.java	(working copy)
250
@@ -24,6 +24,7 @@
251
 import net.sf.l2j.gameserver.LoginServerThread;
252
 import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
253
 import net.sf.l2j.gameserver.model.L2World;
254
+import net.sf.l2j.gameserver.model.actor.ipCatcher;
255
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
256
 import net.sf.l2j.gameserver.network.SystemMessageId;
257
 import net.sf.l2j.gameserver.util.GMAudit;
258
@@ -49,7 +50,9 @@
259
 		"admin_unban_chat",
260
 		
261
 		"admin_jail",
262
-		"admin_unjail"
263
+		"admin_unjail",
264
+		"admin_permaban",
265
+		"admin_removeperma"
266
 	};
267
 	
268
 	@Override
269
@@ -131,6 +134,36 @@
270
 			auditAction(command, activeChar, (targetPlayer == null ? player : targetPlayer.getName()));
271
 			return changeCharAccessLevel(targetPlayer, player, activeChar, -100);
272
 		}
273
+        else if (command.startsWith("admin_permaban"))
274
+        {                       if (targetPlayer == null && player.equals(""))                  {
275
+                        activeChar.sendMessage("Usage: //permaban <char_name> (if none, target char is banned)");
276
+                        return false;
277
+                }
278
+                 final ipCatcher ipc = new ipCatcher();
279
+                 if(targetPlayer!=null && !targetPlayer.isGM())
280
+                 {
281
+                 ipc.addIp(targetPlayer);
282
+                 activeChar.sendMessage(targetPlayer.getName()+" banned permanently");
283
+                 targetPlayer.sendMessage("You are banned permanently from " +activeChar.getName()+"!");
284
+                 targetPlayer.sendMessage("if you will log out you won't be able to log in again!server gave you a opportunity to stay and ask for forgiveness!");
285
+                 //targetPlayer.logout();
286
+                 }
287
+        }
288
+        else if (command.startsWith("admin_removeperma"))
289
+        {
290
+                if (targetPlayer == null && player.equals(""))
291
+                {
292
+                        activeChar.sendMessage("Usage: //removeperma <char_name> (if none, target char is unbanned)");
293
+                        return false;
294
+                }
295
+                 final ipCatcher ipc = new ipCatcher();
296
+                 if(targetPlayer!=null)
297
+                 {
298
+                 ipc.removeIp(targetPlayer);
299
+                 activeChar.sendMessage(targetPlayer.getName()+" permanently ban has been removed!");
300
+                 targetPlayer.sendMessage("Your permanently ban has been removed from " +activeChar.getName()+"!");
301
+                 }
302
+        }
303
 		else if (command.startsWith("admin_ban_chat"))
304
 		{
305
 			if (targetPlayer == null && player.equals(""))