· 7 years ago · Sep 07, 2018, 05:06 AM
1Index: build/dist/game/config/l2j-version.properties
2===================================================================
3--- build/dist/game/config/l2j-version.properties (revision 16)
4+++ build/dist/game/config/l2j-version.properties (working copy)
5@@ -1,2 +1,2 @@
6 version=${l2j.version}
7-builddate=28/08/2018 18:00
8\ No newline at end of file
9+builddate=02/09/2018 15:45
10\ No newline at end of file
11Index: java/com/l2jserver/gameserver/couple/CoupleRevenge.java
12===================================================================
13--- java/com/l2jserver/gameserver/couple/CoupleRevenge.java (revision 4)
14+++ java/com/l2jserver/gameserver/couple/CoupleRevenge.java (working copy)
15@@ -1,6 +1,7 @@
16 package com.l2jserver.gameserver.couple;
17
18 import com.l2jserver.Config;
19+import com.l2jserver.gameserver.eventengine.PhoenixInterface;
20 import com.l2jserver.gameserver.model.L2World;
21 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
22 import com.l2jserver.gameserver.network.clientpackets.Say2;
23@@ -14,7 +15,7 @@
24 {
25 public static void checkForPartner(final L2PcInstance player)
26 {
27- if (!player.isAtEvent())
28+ if (!player.isInOlympiadMode() && !PhoenixInterface.getInstance().isRunning(player.getObjectId()))
29 {
30 final L2PcInstance partner = L2World.getInstance().getPlayer(player.getPartnerId());
31 if (partner != null && partner.isOnline() && !partner.isDead() && Util.calculateDistance(player, partner, true) <= Config.RADIUS_COUPLE_REVENGE)
32Index: java/com/l2jserver/gameserver/datatables/DonationTable.java
33===================================================================
34--- java/com/l2jserver/gameserver/datatables/DonationTable.java (revision 9)
35+++ java/com/l2jserver/gameserver/datatables/DonationTable.java (working copy)
36@@ -35,8 +35,14 @@
37 public class DonationTable
38 {
39 protected static final Logger _log = Logger.getLogger(DonationTable.class.getName());
40+
41 private final Map<Integer, List<DonationInfo>> _data = new HashMap<>();
42
43+ private final static String CHARACTER_UPDATE_SQL = "UPDATE accounts SET donate_points =? WHERE login=?";
44+ private final static String CHARACTER_INSERT_SQL = "INSERT INTO character_donation (objectId, service, time, points) VALUES (?,?,?,?)";
45+ private final static String CHARACTER_SELECT_SQL = "SELECT * FROM character_donation";
46+ private final static String TRUNCATE_SQL = "TRUNCATE TABLE character_donation";
47+
48 public DonationTable()
49 {
50 load();
51@@ -72,7 +78,7 @@
52 {
53 try (Connection con = L2DatabaseFactory.getInstance().getConnection())
54 {
55- final PreparedStatement st = con.prepareStatement("SELECT donate_points FROM accounts WHERE login=?");
56+ final PreparedStatement st = con.prepareStatement(CHARACTER_SELECT_SQL);
57 st.setString(1, player.getAccountName());
58 final ResultSet rset = st.executeQuery();
59 if (rset.next())
60@@ -93,7 +99,7 @@
61 {
62 try (Connection con = L2DatabaseFactory.getInstance().getConnection())
63 {
64- final PreparedStatement st = con.prepareStatement("UPDATE accounts SET donate_points =? WHERE login=?");
65+ final PreparedStatement st = con.prepareStatement(CHARACTER_UPDATE_SQL);
66 st.setLong(1, points);
67 st.setString(2, player.getAccountName());
68 st.execute();
69@@ -109,7 +115,7 @@
70 {
71 try (Connection con = L2DatabaseFactory.getInstance().getConnection())
72 {
73- final PreparedStatement statement = con.prepareStatement("SELECT * FROM character_donation");
74+ final PreparedStatement statement = con.prepareStatement(CHARACTER_SELECT_SQL);
75 final ResultSet rset = statement.executeQuery();
76 while (rset.next())
77 {
78@@ -132,10 +138,10 @@
79 {
80 try (Connection con = L2DatabaseFactory.getInstance().getConnection())
81 {
82- PreparedStatement statement = con.prepareStatement("TRUNCATE TABLE character_donation");
83+ PreparedStatement statement = con.prepareStatement(TRUNCATE_SQL);
84 statement.execute();
85 statement.close();
86- statement = con.prepareStatement("INSERT INTO character_donation (objectId, service, time, points) VALUES (?,?,?,?)");
87+ statement = con.prepareStatement(CHARACTER_INSERT_SQL);
88 for (Entry<Integer, List<DonationInfo>> list : _data.entrySet())
89 {
90 for (DonationInfo info : list.getValue())
91@@ -184,11 +190,6 @@
92
93 private static class LogComparator implements Comparator<DonationInfo>
94 {
95- public LogComparator()
96- {
97-
98- }
99-
100 @Override
101 public int compare(DonationInfo info1, DonationInfo info2)
102 {
103Index: java/com/l2jserver/gameserver/eventengine/AbstractEvent.java
104===================================================================
105--- java/com/l2jserver/gameserver/eventengine/AbstractEvent.java (revision 14)
106+++ java/com/l2jserver/gameserver/eventengine/AbstractEvent.java (working copy)
107@@ -243,7 +243,7 @@
108 {
109 Buffer.getInstance().buffPlayer(player);
110 }
111- else if ((player.getOwner().getUserPanel().getEventScheme() != null) && !player.getOwner().getUserPanel().getEventScheme().isEmpty())
112+ else if ((player.getOwner().getPreferences().getEventScheme() != null) && !player.getOwner().getPreferences().getEventScheme().isEmpty())
113 {
114 Buffer.getInstance().schemeBuffPlayer(player);
115 }
116@@ -900,7 +900,7 @@
117 {
118 Buffer.getInstance().buffPlayer(player);
119 }
120- else if ((player.getOwner().getUserPanel().getEventScheme() != null) && !player.getOwner().getUserPanel().getEventScheme().isEmpty())
121+ else if ((player.getOwner().getPreferences().getEventScheme() != null) && !player.getOwner().getPreferences().getEventScheme().isEmpty())
122 {
123 Buffer.getInstance().schemeBuffPlayer(player);
124 }
125Index: java/com/l2jserver/gameserver/eventengine/PhoenixInterface.java
126===================================================================
127--- java/com/l2jserver/gameserver/eventengine/PhoenixInterface.java (revision 14)
128+++ java/com/l2jserver/gameserver/eventengine/PhoenixInterface.java (working copy)
129@@ -50,20 +50,13 @@
130
131 public boolean areTeammates(final EventPlayer player, final EventPlayer target)
132 {
133- if (AbstractEvent.getEvent() == null)
134- {
135- return false;
136- }
137- if (AbstractEvent.getEvent().getNumberOfTeams() == 1)
138+ if (AbstractEvent.getEvent() == null || AbstractEvent.getEvent().getNumberOfTeams() == 1)
139 {
140 return false;
141 }
142 if (AbstractEvent.getEvent().getNumberOfTeams() > 1)
143 {
144- if (player.getMainTeam() == target.getMainTeam())
145- {
146- return true;
147- }
148+ return player.getMainTeam() == target.getMainTeam();
149 }
150 return false;
151 }
152@@ -74,11 +67,7 @@
153 {
154 return false;
155 }
156- if (PlayerContainer.getInstance().getPlayer(playerId) != null && PlayerContainer.getInstance().getPlayer(targetId) != null)
157- {
158- return areTeammates(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
159- }
160- return false;
161+ return areTeammates(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
162 }
163
164 public boolean canAttack(final EventPlayer player, final EventPlayer target)
165@@ -92,11 +81,7 @@
166 {
167 return true;
168 }
169- if (PlayerContainer.getInstance().getPlayer(playerId) != null && PlayerContainer.getInstance().getPlayer(targerId) != null)
170- {
171- return canAttack(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targerId));
172- }
173- return true;
174+ return canAttack(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targerId));
175 }
176
177 private boolean canTargetPlayer(final EventPlayer player, final EventPlayer target)
178@@ -110,11 +95,7 @@
179 {
180 return true;
181 }
182- if (PlayerContainer.getInstance().getPlayer(playerId) != null && PlayerContainer.getInstance().getPlayer(targetId) != null)
183- {
184- return canTargetPlayer(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
185- }
186- return true;
187+ return canTargetPlayer(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
188 }
189
190 public boolean canUseSkill(final int playerId, final int skillId)
191@@ -133,12 +114,7 @@
192 return;
193 }
194
195- final EventPlayer pi = PlayerContainer.getInstance().getPlayer(playerId);
196-
197- if (pi != null)
198- {
199- AbstractEvent.getEvent().onCast(pi, skill);
200- }
201+ AbstractEvent.getEvent().onCast(PlayerContainer.getInstance().getPlayer(playerId), skill);
202 }
203
204 public void eventOnLogout(final int playerId)
205@@ -148,12 +124,7 @@
206 return;
207 }
208
209- final EventPlayer pi = PlayerContainer.getInstance().getPlayer(playerId);
210-
211- if (pi != null)
212- {
213- AbstractEvent.getEvent().onLogout(pi);
214- }
215+ AbstractEvent.getEvent().onLogout(PlayerContainer.getInstance().getPlayer(playerId));
216 }
217
218 private boolean isParticipating(final EventPlayer player)
219@@ -194,26 +165,8 @@
220 }
221
222 /**
223- * Check if engine is in running phase.
224- * @return
225- */
226- public boolean isRunning()
227- {
228- if (!Main.isLoaded())
229- {
230- return false;
231- }
232- if (AbstractEvent.getPhase() == AbstractPhase.RUNNING)
233- {
234- return true;
235- }
236- return false;
237- }
238-
239- /**
240- * Check only if even is in running phase.
241 * @param playerId
242- * @return
243+ * @return if player participate and event is running
244 */
245 public boolean isRunning(final int playerId)
246 {
247@@ -221,14 +174,7 @@
248 {
249 return false;
250 }
251- if (PlayerContainer.getInstance().getPlayer(playerId) != null && AbstractEvent.getEvent() != null)
252- {
253- if (AbstractEvent.getPhase() == AbstractPhase.RUNNING)
254- {
255- return true;
256- }
257- }
258- return false;
259+ return isParticipating(playerId);
260 }
261
262 private void onDie(final EventPlayer victim, final EventPlayer killer)
263@@ -252,10 +198,7 @@
264 {
265 return;
266 }
267- if (PlayerContainer.getInstance().getPlayer(playerId) != null)
268- {
269- onBypassFeedback(PlayerContainer.getInstance().getPlayer(playerId), command);
270- }
271+ onBypassFeedback(PlayerContainer.getInstance().getPlayer(playerId), command);
272 }
273
274 private void onBypassFeedback(final EventPlayer player, final String command)
275@@ -269,10 +212,7 @@
276 {
277 return;
278 }
279- if (PlayerContainer.getInstance().getPlayer(playerId) != null && PlayerContainer.getInstance().getPlayer(targetId) != null)
280- {
281- onDie(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
282- }
283+ onDie(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
284 }
285
286 public void onPick(final int playerId, final L2Item item)
287@@ -281,10 +221,7 @@
288 {
289 return;
290 }
291- if (PlayerContainer.getInstance().getPlayer(playerId) != null)
292- {
293- onPick(PlayerContainer.getInstance().getPlayer(playerId), item);
294- }
295+ onPick(PlayerContainer.getInstance().getPlayer(playerId), item);
296 }
297
298 public void onTeleport(final int playerId)
299@@ -293,10 +230,7 @@
300 {
301 return;
302 }
303- if (PlayerContainer.getInstance().getPlayer(playerId) != null)
304- {
305- onTeleport(PlayerContainer.getInstance().getPlayer(playerId));
306- }
307+ onTeleport(PlayerContainer.getInstance().getPlayer(playerId));
308 }
309
310 private void onReconnect(final EventPlayer actor)
311@@ -327,10 +261,7 @@
312 {
313 return;
314 }
315- if (PlayerContainer.getInstance().getPlayer(playerId) != null && PlayerContainer.getInstance().getPlayer(targetId) != null)
316- {
317- onHit(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
318- }
319+ onHit(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
320 }
321
322 private void onKill(final EventPlayer victim, final EventPlayer killer)
323@@ -344,10 +275,7 @@
324 {
325 return;
326 }
327- if (PlayerContainer.getInstance().getPlayer(playerId) != null && PlayerContainer.getInstance().getPlayer(targetId) != null)
328- {
329- onKill(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
330- }
331+ onKill(PlayerContainer.getInstance().getPlayer(playerId), PlayerContainer.getInstance().getPlayer(targetId));
332 }
333
334 private void onMonsterKill(final EventPlayer killer, final EventNpc victim)
335@@ -361,7 +289,7 @@
336 {
337 return;
338 }
339- if (PlayerContainer.getInstance().getPlayer(playerId) != null && NpcContainer.getInstance().getNpc(npcId) != null)
340+ if (NpcContainer.getInstance().getNpc(npcId) != null)
341 {
342 onMonsterKill(PlayerContainer.getInstance().getPlayer(playerId), NpcContainer.getInstance().getNpc(npcId));
343 }
344@@ -395,12 +323,7 @@
345 return;
346 }
347
348- final EventPlayer pi = PlayerContainer.getInstance().getPlayer(player);
349-
350- if (pi != null)
351- {
352- onSay(pi, type, text);
353- }
354+ onSay(PlayerContainer.getInstance().getPlayer(player), type, text);
355 }
356
357 public boolean talkNpc(final int player, final int npcId)
358@@ -410,11 +333,7 @@
359 ManagerNpc.getInstance().showMain(player);
360 return true;
361 }
362- if (isParticipating(player) && onTalkNpc(npcId, player))
363- {
364- return true;
365- }
366- return false;
367+ return isParticipating(player) && onTalkNpc(npcId, player);
368 }
369
370 public boolean onTalkNpc(final int player, final int npcId)
371@@ -424,14 +343,7 @@
372 return false;
373 }
374
375- final EventPlayer pi = PlayerContainer.getInstance().getPlayer(player);
376-
377- if (pi != null)
378- {
379- return AbstractEvent.getEvent().onTalkNpc(pi, npcId);
380- }
381-
382- return false;
383+ return AbstractEvent.getEvent().onTalkNpc(PlayerContainer.getInstance().getPlayer(player), npcId);
384 }
385
386 public boolean onUseItem(final int player, final int itemId)
387@@ -441,14 +353,7 @@
388 return false;
389 }
390
391- final EventPlayer pi = PlayerContainer.getInstance().getPlayer(player);
392-
393- if (pi != null)
394- {
395- return AbstractEvent.getEvent().onUseItem(pi, itemId);
396- }
397-
398- return false;
399+ return AbstractEvent.getEvent().onUseItem(PlayerContainer.getInstance().getPlayer(player), itemId);
400 }
401
402 public boolean onMove(final int playerId, final Location pos)
403@@ -458,13 +363,7 @@
404 return true;
405 }
406
407- final EventPlayer pi = PlayerContainer.getInstance().getPlayer(playerId);
408-
409- if (pi != null)
410- {
411- return AbstractEvent.getEvent().onMove(pi, pos);
412- }
413- return true;
414+ return AbstractEvent.getEvent().onMove(PlayerContainer.getInstance().getPlayer(playerId), pos);
415 }
416
417 public boolean onUseMagic(final int playerId, final int skillId)
418@@ -474,14 +373,7 @@
419 return false;
420 }
421
422- final EventPlayer pi = PlayerContainer.getInstance().getPlayer(playerId);
423-
424- if (pi != null)
425- {
426- return AbstractEvent.getEvent().onUseMagic(pi, skillId);
427- }
428-
429- return false;
430+ return AbstractEvent.getEvent().onUseMagic(PlayerContainer.getInstance().getPlayer(playerId), skillId);
431 }
432
433 public boolean getBoolean(final String propName, final int playerId)
434Index: java/com/l2jserver/gameserver/eventengine/container/PlayerContainer.java
435===================================================================
436--- java/com/l2jserver/gameserver/eventengine/container/PlayerContainer.java (revision 14)
437+++ java/com/l2jserver/gameserver/eventengine/container/PlayerContainer.java (working copy)
438@@ -1,8 +1,8 @@
439 package com.l2jserver.gameserver.eventengine.container;
440
441 import java.util.Collection;
442-import java.util.HashMap;
443 import java.util.Map;
444+import java.util.concurrent.ConcurrentHashMap;
445
446 import com.l2jserver.gameserver.eventengine.Output;
447 import com.l2jserver.gameserver.eventengine.model.EventPlayer;
448@@ -12,38 +12,38 @@
449 */
450 public class PlayerContainer
451 {
452- private final Map<Integer, EventPlayer> info = new HashMap<>();
453+ private final Map<Integer, EventPlayer> _playersInfo = new ConcurrentHashMap<>();
454
455 public void clearPlayers()
456 {
457- info.clear();
458+ _playersInfo.clear();
459 }
460
461 public EventPlayer createInfo(final int player)
462 {
463 final EventPlayer pi = new EventPlayer(Output.getPlayer(player));
464- info.put(player, pi);
465+ _playersInfo.put(player, pi);
466 return pi;
467 }
468
469 public void deleteInfo(final EventPlayer player)
470 {
471- info.remove(player.getObjectId());
472+ _playersInfo.remove(player.getObjectId());
473 }
474
475 public void deleteInfo(final int player)
476 {
477- info.remove(player);
478+ _playersInfo.remove(player);
479 }
480
481 public EventPlayer getPlayer(final int id)
482 {
483- return info.get(id);
484+ return _playersInfo.get(id);
485 }
486
487 public Collection<EventPlayer> getPlayers()
488 {
489- return info.values();
490+ return _playersInfo.values();
491 }
492
493 private static class SingletonHolder
494Index: java/com/l2jserver/gameserver/eventengine/function/Buffer.java
495===================================================================
496--- java/com/l2jserver/gameserver/eventengine/function/Buffer.java (revision 12)
497+++ java/com/l2jserver/gameserver/eventengine/function/Buffer.java (working copy)
498@@ -146,7 +146,7 @@
499 {
500 try (Connection con = L2DatabaseFactory.getInstance().getConnection())
501 {
502- final String scheme = player.getOwner().getUserPanel().getEventScheme();
503+ final String scheme = player.getOwner().getPreferences().getEventScheme();
504 final PreparedStatement st = con.prepareStatement("SELECT id FROM npcbuffer_scheme_list WHERE player_id=" + player.getObjectId() + " AND scheme_name=" + (scheme == null ? "-" : scheme));
505 final ResultSet rset = st.executeQuery();
506 if (rset.next())
507Index: java/com/l2jserver/gameserver/model/L2Party.java
508===================================================================
509--- java/com/l2jserver/gameserver/model/L2Party.java (revision 9)
510+++ java/com/l2jserver/gameserver/model/L2Party.java (working copy)
511@@ -710,7 +710,7 @@
512 {
513 for (final L2Character member : rewardedMembers)
514 {
515- if (member.isDead() || member.getActingPlayer().getUserPanel().isExpRefusal())
516+ if (member.isDead() || member.getActingPlayer().getPreferences().isExpRefusal())
517 {
518 continue;
519 }
520Index: java/com/l2jserver/gameserver/model/Service.java
521===================================================================
522--- java/com/l2jserver/gameserver/model/Service.java (revision 0)
523+++ java/com/l2jserver/gameserver/model/Service.java (revision 0)
524@@ -0,0 +1,46 @@
525+/*
526+ * Copyright (C) 2004-2018 L2J Server
527+ *
528+ * This file is part of L2J Server.
529+ *
530+ * L2J Server is free software: you can redistribute it and/or modify
531+ * it under the terms of the GNU General Public License as published by
532+ * the Free Software Foundation, either version 3 of the License, or
533+ * (at your option) any later version.
534+ *
535+ * L2J Server is distributed in the hope that it will be useful,
536+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
537+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
538+ * General Public License for more details.
539+ *
540+ * You should have received a copy of the GNU General Public License
541+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
542+ */
543+package com.l2jserver.gameserver.model;
544+
545+/**
546+ * @author Kara
547+ */
548+public enum Service
549+{
550+ HERO("Hero Status", 100);
551+
552+ private String _name;
553+ private long _points;
554+
555+ Service(String name, long points)
556+ {
557+ _name = name;
558+ _points = points;
559+ }
560+
561+ public String getName()
562+ {
563+ return _name;
564+ }
565+
566+ public long getPoints()
567+ {
568+ return _points;
569+ }
570+}
571Index: java/com/l2jserver/gameserver/model/UserConfiguration.java
572===================================================================
573--- java/com/l2jserver/gameserver/model/UserConfiguration.java (revision 4)
574+++ java/com/l2jserver/gameserver/model/UserConfiguration.java (nonexistent)
575@@ -1,287 +0,0 @@
576-/*
577- * Copyright (C) 2004-2014 L2J Server
578- * This file is part of L2J Server.
579- * L2J Server is free software: you can redistribute it and/or modify
580- * it under the terms of the GNU General Public License as published by
581- * the Free Software Foundation, either version 3 of the License, or
582- * (at your option) any later version.
583- * L2J Server is distributed in the hope that it will be useful,
584- * but WITHOUT ANY WARRANTY; without even the implied warranty of
585- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
586- * General Public License for more details.
587- * You should have received a copy of the GNU General Public License
588- * along with this program. If not, see <http://www.gnu.org/licenses/>.
589- */
590-package com.l2jserver.gameserver.model;
591-
592-import java.sql.Connection;
593-import java.sql.PreparedStatement;
594-import java.sql.ResultSet;
595-import java.util.logging.Level;
596-import java.util.logging.Logger;
597-
598-import com.l2jserver.L2DatabaseFactory;
599-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
600-
601-/**
602- * @author Kara`
603- */
604-public class UserConfiguration
605-{
606- public static final Logger _log = Logger.getLogger(UserConfiguration.class.getName());
607-
608- /** ================ QUERIES ================ */
609-
610- private static final String RESTORE_CHARACTER_PANEL = "SELECT isPmRefusal, isTradeRefusal, isPartyRefusal, isPartyReconnect, isBuffShield, isExpRefusal, AutoMp, AutoCp, eventScheme, isAutoLoot, isHideStore FROM character_panel WHERE playerId=?";
611- private static final String INSERT_CHARACTER_PANEL = "INSERT INTO character_panel (playerId, isPmRefusal, isTradeRefusal, isPartyRefusal, isPartyReconnect, isBuffShield, isExpRefusal, AutoMp, AutoCp, eventScheme, isAutoLoot, isHideStore) values (?,?,?,?,?,?,?,?,?,?,?,?)";
612- private static final String UPDATE_CHARACTER_PANEL = "UPDATE character_panel SET isPmRefusal=?, isTradeRefusal=?, isPartyRefusal=?, isPartyReconnect=?, isBuffShield=?, isExpRefusal=?, AutoMp=?, AutoCp=?, eventScheme=?, isAutoLoot=?, isHideStore=? WHERE playerId=?";
613- private static final String CHECK_CHARACTER_PANEL = "SELECT playerId FROM character_panel WHERE playerId=?";
614-
615- /** ================ Variables ================ */
616-
617- private final L2PcInstance player;
618-
619- private boolean _isExpRefusal;
620- private boolean _isPmRefusal;
621- private boolean _isPartyRefusal;
622- private boolean _isTradeRefusal;
623- private boolean _isAutoLoot;
624- private String _eventScheme = null;
625- private boolean _isHidePrivateStore;
626- private int _autoMp;
627- private int _autoCp;
628- private boolean _partyReconnect;
629-
630- /** ================ METHODS ================ */
631-
632- public UserConfiguration(final L2PcInstance actor)
633- {
634- player = actor;
635- }
636-
637- public boolean isHidePrivateStore()
638- {
639- return _isHidePrivateStore;
640- }
641-
642- public void setIsHidePrivateStore(boolean h)
643- {
644- _isHidePrivateStore = h;
645- }
646-
647- public boolean isAutoLoop()
648- {
649- return _isAutoLoot;
650- }
651-
652- public void setIsAutoLoot(boolean var)
653- {
654- _isAutoLoot = var;
655- }
656-
657- public String getEventScheme()
658- {
659- return _eventScheme;
660- }
661-
662- public void setEventScheme(String scheme)
663- {
664- _eventScheme = scheme;
665- }
666-
667- public boolean isExpRefusal()
668- {
669- return _isExpRefusal;
670- }
671-
672- public boolean isPmRefusal()
673- {
674- return _isPmRefusal;
675- }
676-
677- public boolean isPartyRefusal()
678- {
679- return _isPartyRefusal;
680- }
681-
682- public boolean isTradeRefusal()
683- {
684- return _isTradeRefusal;
685- }
686-
687- public void setIsExpRefusal(boolean h)
688- {
689- _isExpRefusal = h;
690- }
691-
692- public void setIsPmRefusal(boolean h)
693- {
694- _isPmRefusal = h;
695- }
696-
697- public void setIsPartyRefusal(boolean h)
698- {
699- _isPartyRefusal = h;
700- }
701-
702- public void setIsTradeRefusal(boolean h)
703- {
704- _isTradeRefusal = h;
705- }
706-
707- public void setAutoMpPercentage(int number)
708- {
709- _autoMp = number;
710- }
711-
712- public int getAutoMpPercentage()
713- {
714- return _autoMp;
715- }
716-
717- public void setAutoCpPercentage(int number)
718- {
719- _autoCp = number;
720- }
721-
722- public int getAutoCpPercentage()
723- {
724- return _autoCp;
725- }
726-
727- public void setPartyReconnect(boolean i)
728- {
729- _partyReconnect = i;
730- }
731-
732- public boolean isPartyReconnect()
733- {
734- return _partyReconnect;
735- }
736-
737- private boolean _buffProtected = false;
738-
739- public boolean isBuffProtected()
740- {
741- return _buffProtected;
742- }
743-
744- public void setIsBuffProtected(boolean h)
745- {
746- _buffProtected = h;
747- }
748-
749- /** ================ DATABASE ================ */
750-
751- public void load()
752- {
753- if (userConfigurationExists())
754- {
755- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
756- {
757- final PreparedStatement statement = con.prepareStatement(RESTORE_CHARACTER_PANEL);
758- statement.setInt(1, player.getObjectId());
759- final ResultSet rset = statement.executeQuery();
760- while (rset.next())
761- {
762- setIsPmRefusal(rset.getInt("isPmRefusal") == 1 ? true : false);
763- setIsTradeRefusal(rset.getInt("isTradeRefusal") == 1 ? true : false);
764- setIsPartyRefusal(rset.getInt("isPartyRefusal") == 1 ? true : false);
765- setPartyReconnect(rset.getInt("isPartyReconnect") == 1 ? true : false);
766- setIsBuffProtected(rset.getInt("isBuffShield") == 1 ? true : false);
767- setIsExpRefusal(rset.getInt("isExpRefusal") == 1 ? true : false);
768- setAutoMpPercentage(rset.getInt("AutoMp"));
769- setAutoCpPercentage(rset.getInt("AutoCp"));
770- setEventScheme(rset.getString("eventScheme"));
771- setIsAutoLoot(rset.getInt("isAutoLoot") == 1 ? true : false);
772- setIsHidePrivateStore(rset.getInt("isHideStore") == 1 ? true : false);
773- }
774- rset.close();
775- statement.close();
776- }
777- catch (Exception e)
778- {
779- _log.log(Level.SEVERE, "[UserConfiguration] Failed loading " + player.getName() + " configurations.", e);
780- }
781- }
782- else
783- {
784- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
785- {
786- final PreparedStatement statement = con.prepareStatement(INSERT_CHARACTER_PANEL);
787- statement.setInt(1, player.getObjectId());
788- statement.setInt(2, 0);
789- statement.setInt(3, 0);
790- statement.setInt(4, 0);
791- statement.setInt(5, 0);
792- statement.setInt(6, 0);
793- statement.setInt(7, 0);
794- statement.setInt(8, 75);
795- statement.setInt(9, 75);
796- statement.setString(10, "");
797- statement.setInt(11, 1);
798- statement.setInt(12, 0);
799- statement.executeUpdate();
800- statement.close();
801- }
802- catch (final Exception e)
803- {
804- _log.log(Level.SEVERE, "[UserConfiguration] Could not insert " + player.getName() + " configuration: " + e.getMessage(), e);
805- }
806- }
807- }
808-
809- public void store()
810- {
811- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
812- {
813- final PreparedStatement statement = con.prepareStatement(UPDATE_CHARACTER_PANEL);
814- statement.setInt(1, isPmRefusal() ? 1 : 0);
815- statement.setInt(2, isTradeRefusal() ? 1 : 0);
816- statement.setInt(3, isPartyRefusal() ? 1 : 0);
817- statement.setInt(4, isPartyReconnect() ? 1 : 0);
818- statement.setInt(5, isBuffProtected() ? 1 : 0);
819- statement.setInt(6, isExpRefusal() ? 1 : 0);
820- statement.setInt(7, getAutoMpPercentage());
821- statement.setInt(8, getAutoCpPercentage());
822- statement.setString(9, getEventScheme());
823- statement.setInt(10, isAutoLoop() ? 1 : 0);
824- statement.setInt(11, isHidePrivateStore() ? 1 : 0);
825- statement.setInt(12, player.getObjectId());
826- statement.execute();
827- statement.close();
828- }
829- catch (final Exception e)
830- {
831- _log.log(Level.WARNING, "[UserConfiguration] Could not store char configuration data: " + player.getName() + " - " + e.getMessage(), e);
832- }
833- }
834-
835- /**
836- * Check if user database contain's objectId
837- * @param objectId
838- */
839- private boolean userConfigurationExists()
840- {
841- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
842- {
843- final PreparedStatement statement = con.prepareStatement(CHECK_CHARACTER_PANEL);
844- statement.setInt(1, player.getObjectId());
845- final ResultSet rset = statement.executeQuery();
846-
847- if (rset.next())
848- {
849- return true;
850- }
851-
852- rset.close();
853- statement.close();
854- }
855- catch (Exception e)
856- {
857- _log.log(Level.SEVERE, "[UserConfiguration] Failed check if " + player.getName() + " configurations exists.", e);
858- return false;
859- }
860- return false;
861- }
862-}
863\ No newline at end of file
864Index: java/com/l2jserver/gameserver/model/UserPanel.java
865===================================================================
866--- java/com/l2jserver/gameserver/model/UserPanel.java (revision 13)
867+++ java/com/l2jserver/gameserver/model/UserPanel.java (working copy)
868@@ -34,10 +34,6 @@
869 import com.l2jserver.Config;
870 import com.l2jserver.L2DatabaseFactory;
871 import com.l2jserver.gameserver.cache.HtmCache;
872-import com.l2jserver.gameserver.custom.profil.L2Post;
873-import com.l2jserver.gameserver.custom.profil.L2Profil;
874-import com.l2jserver.gameserver.custom.profil.ProfilTable;
875-import com.l2jserver.gameserver.custom.profil.ProfilType;
876 import com.l2jserver.gameserver.datatables.CharNameTable;
877 import com.l2jserver.gameserver.datatables.CharTemplateTable;
878 import com.l2jserver.gameserver.datatables.ItemTable;
879@@ -55,6 +51,10 @@
880 import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
881 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
882 import com.l2jserver.gameserver.partyfind.PartyFinder;
883+import com.l2jserver.gameserver.profil.L2Post;
884+import com.l2jserver.gameserver.profil.L2Profil;
885+import com.l2jserver.gameserver.profil.ProfilTable;
886+import com.l2jserver.gameserver.profil.ProfilType;
887 import com.l2jserver.gameserver.templates.item.L2Item;
888 import com.l2jserver.gameserver.util.Util;
889 import com.l2jserver.gameserver.visual.VisualData;
890@@ -1053,21 +1053,21 @@
891 sendMain(activeChar);
892 return;
893 }
894- activeChar.getUserPanel().setEventScheme(scheme);
895+ activeChar.getPreferences().setEventScheme(scheme);
896 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Scheme: " + scheme + " configured for event."));
897 sendMain(activeChar);
898 }
899
900 private void hideStore(final L2PcInstance activeChar)
901 {
902- if (activeChar.getUserPanel().isHidePrivateStore())
903+ if (activeChar.getPreferences().isHidePrivateStore())
904 {
905- activeChar.getUserPanel().setIsHidePrivateStore(false);
906+ activeChar.getPreferences().setIsHidePrivateStore(false);
907 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Hide store turned off."));
908 }
909 else
910 {
911- activeChar.getUserPanel().setIsHidePrivateStore(true);
912+ activeChar.getPreferences().setIsHidePrivateStore(true);
913 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Hide store turned on."));
914 for (L2PcInstance player : activeChar.getKnownList().getKnownPlayers().values())
915 {
916@@ -1095,7 +1095,7 @@
917 {
918 number = 100;
919 }
920- activeChar.getUserPanel().setAutoMpPercentage(number);
921+ activeChar.getPreferences().setAutoMpPercentage(number);
922 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "AutoMP set to " + number + "%"));
923 }
924 catch (Exception e)
925@@ -1120,7 +1120,7 @@
926 {
927 number = 100;
928 }
929- activeChar.getUserPanel().setAutoCpPercentage(number);
930+ activeChar.getPreferences().setAutoCpPercentage(number);
931 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "AutoCP set to " + number + "%"));
932 }
933 catch (Exception e)
934@@ -1310,14 +1310,14 @@
935
936 private void partyReconnect(final L2PcInstance activeChar)
937 {
938- if (activeChar.getUserPanel().isPartyReconnect())
939+ if (activeChar.getPreferences().isPartyReconnect())
940 {
941- activeChar.getUserPanel().setPartyReconnect(false);
942+ activeChar.getPreferences().setPartyReconnect(false);
943 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Party Reconnect off."));
944 }
945 else
946 {
947- activeChar.getUserPanel().setPartyReconnect(true);
948+ activeChar.getPreferences().setPartyReconnect(true);
949 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Party Reconnect on."));
950 }
951 sendMain(activeChar);
952@@ -1325,14 +1325,14 @@
953
954 private void pmRefusal(final L2PcInstance activeChar)
955 {
956- if (activeChar.getUserPanel().isPmRefusal())
957+ if (activeChar.getPreferences().isPmRefusal())
958 {
959- activeChar.getUserPanel().setIsPmRefusal(false);
960+ activeChar.getPreferences().setIsPmRefusal(false);
961 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Pm Refusal off."));
962 }
963 else
964 {
965- activeChar.getUserPanel().setIsPmRefusal(true);
966+ activeChar.getPreferences().setIsPmRefusal(true);
967 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Pm Refusal on."));
968 }
969 sendMain(activeChar);
970@@ -1340,14 +1340,14 @@
971
972 private void tradeRefusal(final L2PcInstance activeChar)
973 {
974- if (activeChar.getUserPanel().isTradeRefusal())
975+ if (activeChar.getPreferences().isTradeRefusal())
976 {
977- activeChar.getUserPanel().setIsTradeRefusal(false);
978+ activeChar.getPreferences().setIsTradeRefusal(false);
979 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Trade Refusal off."));
980 }
981 else
982 {
983- activeChar.getUserPanel().setIsTradeRefusal(true);
984+ activeChar.getPreferences().setIsTradeRefusal(true);
985 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Trade Refusal on."));
986 }
987 sendMain(activeChar);
988@@ -1355,14 +1355,14 @@
989
990 private void partyRefusal(final L2PcInstance activeChar)
991 {
992- if (activeChar.getUserPanel().isPartyRefusal())
993+ if (activeChar.getPreferences().isPartyRefusal())
994 {
995- activeChar.getUserPanel().setIsPartyRefusal(false);
996+ activeChar.getPreferences().setIsPartyRefusal(false);
997 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Party Refusal off."));
998 }
999 else
1000 {
1001- activeChar.getUserPanel().setIsPartyRefusal(true);
1002+ activeChar.getPreferences().setIsPartyRefusal(true);
1003 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Party Refusal on."));
1004 if (activeChar.isPartyRequest())
1005 {
1006@@ -1376,14 +1376,14 @@
1007
1008 private void protectionBuff(final L2PcInstance activeChar)
1009 {
1010- if (activeChar.getUserPanel().isBuffProtected())
1011+ if (activeChar.getPreferences().isBuffProtected())
1012 {
1013- activeChar.getUserPanel().setIsBuffProtected(false);
1014+ activeChar.getPreferences().setIsBuffProtected(false);
1015 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Buff Shield off."));
1016 }
1017 else
1018 {
1019- activeChar.getUserPanel().setIsBuffProtected(true);
1020+ activeChar.getPreferences().setIsBuffProtected(true);
1021 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Buff Shield on."));
1022 }
1023 sendMain(activeChar);
1024@@ -1391,14 +1391,14 @@
1025
1026 private void expRefusal(final L2PcInstance activeChar)
1027 {
1028- if (activeChar.getUserPanel().isExpRefusal())
1029+ if (activeChar.getPreferences().isExpRefusal())
1030 {
1031- activeChar.getUserPanel().setIsExpRefusal(false);
1032+ activeChar.getPreferences().setIsExpRefusal(false);
1033 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Exp Gain off."));
1034 }
1035 else
1036 {
1037- activeChar.getUserPanel().setIsExpRefusal(true);
1038+ activeChar.getPreferences().setIsExpRefusal(true);
1039 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Exp Gain on."));
1040 }
1041 sendMain(activeChar);
1042@@ -1406,14 +1406,14 @@
1043
1044 private void autoLoot(final L2PcInstance activeChar)
1045 {
1046- if (activeChar.getUserPanel().isAutoLoop())
1047+ if (activeChar.getPreferences().isAutoLoop())
1048 {
1049- activeChar.getUserPanel().setIsAutoLoot(false);
1050+ activeChar.getPreferences().setIsAutoLoot(false);
1051 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Auto Loot off."));
1052 }
1053 else
1054 {
1055- activeChar.getUserPanel().setIsAutoLoot(true);
1056+ activeChar.getPreferences().setIsAutoLoot(true);
1057 activeChar.sendPacket(new ExShowScreenMessage(1, -1, 2, 0, 1, 0, 0, false, 3000, 0, "Auto Loot on."));
1058 }
1059 sendMain(activeChar);
1060@@ -1443,9 +1443,9 @@
1061 String[] parts = command.split(" ");
1062 if (activeChar.getParty() == null)
1063 {
1064- if (activeChar.getUserPanel().isPartyRefusal())
1065+ if (activeChar.getPreferences().isPartyRefusal())
1066 {
1067- activeChar.getUserPanel().setIsPartyRefusal(false);
1068+ activeChar.getPreferences().setIsPartyRefusal(false);
1069 activeChar.sendMessage("Party Refusal has been turned off.");
1070 }
1071 PartyFinder.getInstance().addRequest(activeChar.getObjectId(), parts[1]);
1072@@ -1717,14 +1717,14 @@
1073 final String content = HtmCache.getInstance().getHtmForce(activeChar.getHtmlPrefix(), "data/html/userpanel/main.htm");
1074 final NpcHtmlMessage htm = new NpcHtmlMessage(0);
1075 htm.setHtml(content);
1076- htm.replace("%isexprefusal%", activeChar.getUserPanel().isExpRefusal() ? "Disable" : "Enable");
1077- htm.replace("%ispartyrefusal%", activeChar.getUserPanel().isPartyRefusal() ? "Disable" : "Enable");
1078- htm.replace("%ispartyreconnect%", activeChar.getUserPanel().isPartyReconnect() ? "Disable" : "Enable");
1079- htm.replace("%buffprotected%", activeChar.getUserPanel().isBuffProtected() ? "Disable" : "Enable");
1080- htm.replace("%ispmrefusal%", activeChar.getUserPanel().isPmRefusal() ? "Disable" : "Enable");
1081- htm.replace("%istraderefusal%", activeChar.getUserPanel().isTradeRefusal() ? "Disable" : "Enable");
1082- htm.replace("%isautoloot%", activeChar.getUserPanel().isAutoLoop() ? "Disable" : "Enable");
1083- htm.replace("%ishidestore%", activeChar.getUserPanel().isHidePrivateStore() ? "Disable" : "Enable");
1084+ htm.replace("%isexprefusal%", activeChar.getPreferences().isExpRefusal() ? "Disable" : "Enable");
1085+ htm.replace("%ispartyrefusal%", activeChar.getPreferences().isPartyRefusal() ? "Disable" : "Enable");
1086+ htm.replace("%ispartyreconnect%", activeChar.getPreferences().isPartyReconnect() ? "Disable" : "Enable");
1087+ htm.replace("%buffprotected%", activeChar.getPreferences().isBuffProtected() ? "Disable" : "Enable");
1088+ htm.replace("%ispmrefusal%", activeChar.getPreferences().isPmRefusal() ? "Disable" : "Enable");
1089+ htm.replace("%istraderefusal%", activeChar.getPreferences().isTradeRefusal() ? "Disable" : "Enable");
1090+ htm.replace("%isautoloot%", activeChar.getPreferences().isAutoLoop() ? "Disable" : "Enable");
1091+ htm.replace("%ishidestore%", activeChar.getPreferences().isHidePrivateStore() ? "Disable" : "Enable");
1092 htm.replace("%schemeList%", getSchemeList(activeChar));
1093 htm.replace("%faction%", buildFactionPanel());
1094 htm.replace("%profil%", activeChar.getProfil() == null ? "Create Profil" : "Edit Profil");
1095Index: java/com/l2jserver/gameserver/model/UserPreference.java
1096===================================================================
1097--- java/com/l2jserver/gameserver/model/UserPreference.java (revision 4)
1098+++ java/com/l2jserver/gameserver/model/UserPreference.java (working copy)
1099@@ -21,25 +21,22 @@
1100 import java.util.logging.Logger;
1101
1102 import com.l2jserver.L2DatabaseFactory;
1103-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
1104
1105 /**
1106 * @author Kara`
1107 */
1108-public class UserConfiguration
1109+public class UserPreference
1110 {
1111- public static final Logger _log = Logger.getLogger(UserConfiguration.class.getName());
1112+ public static final Logger _log = Logger.getLogger(UserPreference.class.getName());
1113
1114 /** ================ QUERIES ================ */
1115
1116- private static final String RESTORE_CHARACTER_PANEL = "SELECT isPmRefusal, isTradeRefusal, isPartyRefusal, isPartyReconnect, isBuffShield, isExpRefusal, AutoMp, AutoCp, eventScheme, isAutoLoot, isHideStore FROM character_panel WHERE playerId=?";
1117- private static final String INSERT_CHARACTER_PANEL = "INSERT INTO character_panel (playerId, isPmRefusal, isTradeRefusal, isPartyRefusal, isPartyReconnect, isBuffShield, isExpRefusal, AutoMp, AutoCp, eventScheme, isAutoLoot, isHideStore) values (?,?,?,?,?,?,?,?,?,?,?,?)";
1118- private static final String UPDATE_CHARACTER_PANEL = "UPDATE character_panel SET isPmRefusal=?, isTradeRefusal=?, isPartyRefusal=?, isPartyReconnect=?, isBuffShield=?, isExpRefusal=?, AutoMp=?, AutoCp=?, eventScheme=?, isAutoLoot=?, isHideStore=? WHERE playerId=?";
1119- private static final String CHECK_CHARACTER_PANEL = "SELECT playerId FROM character_panel WHERE playerId=?";
1120+ private static final String RESTORE_CHARACTER_PANEL = "SELECT * FROM character_panel WHERE playerId=?";
1121+ private static final String REPLACE_CHARACTER_PANEL = "REPLACE character_panel (playerId, isPmRefusal, isTradeRefusal, isPartyRefusal, isPartyReconnect, isBuffShield, isExpRefusal, AutoMp, AutoCp, eventScheme, isAutoLoot, isHideStore) values (?,?,?,?,?,?,?,?,?,?,?,?)";
1122
1123 /** ================ Variables ================ */
1124
1125- private final L2PcInstance player;
1126+ private final int _objectId;
1127
1128 private boolean _isExpRefusal;
1129 private boolean _isPmRefusal;
1130@@ -54,9 +51,9 @@
1131
1132 /** ================ METHODS ================ */
1133
1134- public UserConfiguration(final L2PcInstance actor)
1135+ public UserPreference(int objectId)
1136 {
1137- player = actor;
1138+ _objectId = objectId;
1139 }
1140
1141 public boolean isHidePrivateStore()
1142@@ -175,59 +172,31 @@
1143
1144 public void load()
1145 {
1146- if (userConfigurationExists())
1147+ try (Connection con = L2DatabaseFactory.getInstance().getConnection())
1148 {
1149- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
1150- {
1151- final PreparedStatement statement = con.prepareStatement(RESTORE_CHARACTER_PANEL);
1152- statement.setInt(1, player.getObjectId());
1153- final ResultSet rset = statement.executeQuery();
1154- while (rset.next())
1155- {
1156- setIsPmRefusal(rset.getInt("isPmRefusal") == 1 ? true : false);
1157- setIsTradeRefusal(rset.getInt("isTradeRefusal") == 1 ? true : false);
1158- setIsPartyRefusal(rset.getInt("isPartyRefusal") == 1 ? true : false);
1159- setPartyReconnect(rset.getInt("isPartyReconnect") == 1 ? true : false);
1160- setIsBuffProtected(rset.getInt("isBuffShield") == 1 ? true : false);
1161- setIsExpRefusal(rset.getInt("isExpRefusal") == 1 ? true : false);
1162- setAutoMpPercentage(rset.getInt("AutoMp"));
1163- setAutoCpPercentage(rset.getInt("AutoCp"));
1164- setEventScheme(rset.getString("eventScheme"));
1165- setIsAutoLoot(rset.getInt("isAutoLoot") == 1 ? true : false);
1166- setIsHidePrivateStore(rset.getInt("isHideStore") == 1 ? true : false);
1167- }
1168- rset.close();
1169- statement.close();
1170- }
1171- catch (Exception e)
1172+ final PreparedStatement statement = con.prepareStatement(RESTORE_CHARACTER_PANEL);
1173+ statement.setInt(1, _objectId);
1174+ final ResultSet rset = statement.executeQuery();
1175+ while (rset.next())
1176 {
1177- _log.log(Level.SEVERE, "[UserConfiguration] Failed loading " + player.getName() + " configurations.", e);
1178+ setIsPmRefusal(rset.getBoolean("isPmRefusal"));
1179+ setIsTradeRefusal(rset.getBoolean("isTradeRefusal"));
1180+ setIsPartyRefusal(rset.getBoolean("isPartyRefusal"));
1181+ setPartyReconnect(rset.getBoolean("isPartyReconnect"));
1182+ setIsBuffProtected(rset.getBoolean("isBuffShield"));
1183+ setIsExpRefusal(rset.getBoolean("isExpRefusal"));
1184+ setAutoMpPercentage(rset.getInt("AutoMp"));
1185+ setAutoCpPercentage(rset.getInt("AutoCp"));
1186+ setEventScheme(rset.getString("eventScheme"));
1187+ setIsAutoLoot(rset.getBoolean("isAutoLoot"));
1188+ setIsHidePrivateStore(rset.getBoolean("isHideStore"));
1189 }
1190+ rset.close();
1191+ statement.close();
1192 }
1193- else
1194+ catch (Exception e)
1195 {
1196- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
1197- {
1198- final PreparedStatement statement = con.prepareStatement(INSERT_CHARACTER_PANEL);
1199- statement.setInt(1, player.getObjectId());
1200- statement.setInt(2, 0);
1201- statement.setInt(3, 0);
1202- statement.setInt(4, 0);
1203- statement.setInt(5, 0);
1204- statement.setInt(6, 0);
1205- statement.setInt(7, 0);
1206- statement.setInt(8, 75);
1207- statement.setInt(9, 75);
1208- statement.setString(10, "");
1209- statement.setInt(11, 1);
1210- statement.setInt(12, 0);
1211- statement.executeUpdate();
1212- statement.close();
1213- }
1214- catch (final Exception e)
1215- {
1216- _log.log(Level.SEVERE, "[UserConfiguration] Could not insert " + player.getName() + " configuration: " + e.getMessage(), e);
1217- }
1218+ _log.log(Level.SEVERE, "[UserConfiguration] Could not load configuration for id:" + _objectId, e);
1219 }
1220 }
1221
1222@@ -235,53 +204,26 @@
1223 {
1224 try (Connection con = L2DatabaseFactory.getInstance().getConnection())
1225 {
1226- final PreparedStatement statement = con.prepareStatement(UPDATE_CHARACTER_PANEL);
1227- statement.setInt(1, isPmRefusal() ? 1 : 0);
1228- statement.setInt(2, isTradeRefusal() ? 1 : 0);
1229- statement.setInt(3, isPartyRefusal() ? 1 : 0);
1230- statement.setInt(4, isPartyReconnect() ? 1 : 0);
1231- statement.setInt(5, isBuffProtected() ? 1 : 0);
1232- statement.setInt(6, isExpRefusal() ? 1 : 0);
1233- statement.setInt(7, getAutoMpPercentage());
1234- statement.setInt(8, getAutoCpPercentage());
1235- statement.setString(9, getEventScheme());
1236- statement.setInt(10, isAutoLoop() ? 1 : 0);
1237- statement.setInt(11, isHidePrivateStore() ? 1 : 0);
1238- statement.setInt(12, player.getObjectId());
1239+ final PreparedStatement statement = con.prepareStatement(REPLACE_CHARACTER_PANEL);
1240+
1241+ statement.setInt(1, _objectId);
1242+ statement.setBoolean(2, isPmRefusal());
1243+ statement.setBoolean(3, isTradeRefusal());
1244+ statement.setBoolean(4, isPartyRefusal());
1245+ statement.setBoolean(5, isPartyReconnect());
1246+ statement.setBoolean(6, isBuffProtected());
1247+ statement.setBoolean(7, isExpRefusal());
1248+ statement.setInt(8, getAutoMpPercentage());
1249+ statement.setInt(9, getAutoCpPercentage());
1250+ statement.setString(10, getEventScheme());
1251+ statement.setBoolean(11, isAutoLoop());
1252+ statement.setBoolean(12, isHidePrivateStore());
1253 statement.execute();
1254 statement.close();
1255 }
1256 catch (final Exception e)
1257 {
1258- _log.log(Level.WARNING, "[UserConfiguration] Could not store char configuration data: " + player.getName() + " - " + e.getMessage(), e);
1259- }
1260- }
1261-
1262- /**
1263- * Check if user database contain's objectId
1264- * @param objectId
1265- */
1266- private boolean userConfigurationExists()
1267- {
1268- try (Connection con = L2DatabaseFactory.getInstance().getConnection())
1269- {
1270- final PreparedStatement statement = con.prepareStatement(CHECK_CHARACTER_PANEL);
1271- statement.setInt(1, player.getObjectId());
1272- final ResultSet rset = statement.executeQuery();
1273-
1274- if (rset.next())
1275- {
1276- return true;
1277- }
1278-
1279- rset.close();
1280- statement.close();
1281- }
1282- catch (Exception e)
1283- {
1284- _log.log(Level.SEVERE, "[UserConfiguration] Failed check if " + player.getName() + " configurations exists.", e);
1285- return false;
1286+ _log.log(Level.WARNING, "[UserConfiguration] Could not store char configuration data for id: " + _objectId, e);
1287 }
1288- return false;
1289 }
1290 }
1291\ No newline at end of file
1292Index: java/com/l2jserver/gameserver/model/actor/L2Attackable.java
1293===================================================================
1294--- java/com/l2jserver/gameserver/model/actor/L2Attackable.java (revision 4)
1295+++ java/com/l2jserver/gameserver/model/actor/L2Attackable.java (working copy)
1296@@ -809,7 +809,7 @@
1297 }
1298 if (attacker instanceof L2PcInstance)
1299 {
1300- if (((L2PcInstance) attacker).getUserPanel().isExpRefusal())
1301+ if (((L2PcInstance) attacker).getPreferences().isExpRefusal())
1302 {
1303 exp = 0;
1304 sp = 0;
1305@@ -1649,7 +1649,7 @@
1306 {
1307 _log.fine("Item id to drop: " + item.getItemId() + " amount: " + item.getCount());
1308 }
1309- if (isFlying() || (!isRaid() && Config.AUTO_LOOT && player.getUserPanel().isAutoLoop()) || (isRaid() && Config.AUTO_LOOT_RAIDS))
1310+ if (isFlying() || (!isRaid() && Config.AUTO_LOOT && player.getPreferences().isAutoLoop()) || (isRaid() && Config.AUTO_LOOT_RAIDS))
1311 {
1312 player.doAutoLoot(this, item);
1313 }
1314@@ -1753,7 +1753,7 @@
1315 if (Rnd.get(L2DropData.MAX_CHANCE) < drop.chance)
1316 {
1317 final RewardItem item = new RewardItem(drop.items[Rnd.get(drop.items.length)], Rnd.get(drop.min, drop.max));
1318- if ((Config.AUTO_LOOT && player.getUserPanel().isAutoLoop()) || isFlying())
1319+ if ((Config.AUTO_LOOT && player.getPreferences().isAutoLoop()) || isFlying())
1320 {
1321 player.doAutoLoot(this, item);
1322 }
1323Index: java/com/l2jserver/gameserver/model/actor/L2Character.java
1324===================================================================
1325--- java/com/l2jserver/gameserver/model/actor/L2Character.java (revision 9)
1326+++ java/com/l2jserver/gameserver/model/actor/L2Character.java (working copy)
1327@@ -1464,39 +1464,9 @@
1328 final L2PcInstance actor = getActingPlayer();
1329 final L2PcInstance target = getTarget() instanceof L2PcInstance ? getTarget().getActingPlayer() : ((L2Summon) getTarget()).getOwner();
1330
1331- if (PhoenixInterface.getInstance().isParticipating(actor.getObjectId()))
1332+ if (PhoenixInterface.getInstance().isParticipating(actor.getObjectId()) && PhoenixInterface.getInstance().isParticipating(target.getObjectId()))
1333 {
1334- if (PhoenixInterface.getInstance().areTeammates(actor.getObjectId(), target.getObjectId()) && skill.isOffensive())
1335- {
1336- if (simultaneously)
1337- {
1338- setIsCastingSimultaneouslyNow(false);
1339- }
1340- else
1341- {
1342- setIsCastingNow(false);
1343- }
1344- sendPacket(ActionFailed.STATIC_PACKET);
1345- getAI().setIntention(AI_INTENTION_ACTIVE);
1346- return;
1347- }
1348-
1349- if (!PhoenixInterface.getInstance().canAttack(actor.getObjectId(), target.getObjectId()) && skill.isOffensive())
1350- {
1351- if (simultaneously)
1352- {
1353- setIsCastingSimultaneouslyNow(false);
1354- }
1355- else
1356- {
1357- setIsCastingNow(false);
1358- }
1359- sendPacket(ActionFailed.STATIC_PACKET);
1360- getAI().setIntention(AI_INTENTION_ACTIVE);
1361- return;
1362- }
1363-
1364- if (!PhoenixInterface.getInstance().onUseMagic(actor.getObjectId(), skill.getId()))
1365+ if ((PhoenixInterface.getInstance().areTeammates(actor.getObjectId(), target.getObjectId()) && skill.isOffensive()) || (!PhoenixInterface.getInstance().canAttack(actor.getObjectId(), target.getObjectId()) && skill.isOffensive()) || (!PhoenixInterface.getInstance().onUseMagic(actor.getObjectId(), skill.getId())))
1366 {
1367 if (simultaneously)
1368 {
1369Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
1370===================================================================
1371--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 11)
1372+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
1373@@ -54,8 +54,6 @@
1374 import com.l2jserver.gameserver.communitybbs.Managers.ForumsBBSManager;
1375 import com.l2jserver.gameserver.couple.CoupleRevenge;
1376 import com.l2jserver.gameserver.custom.SellBuffMsg;
1377-import com.l2jserver.gameserver.custom.profil.L2Profil;
1378-import com.l2jserver.gameserver.custom.profil.ProfilTable;
1379 import com.l2jserver.gameserver.datatables.AccessLevels;
1380 import com.l2jserver.gameserver.datatables.AdminCommandAccessRights;
1381 import com.l2jserver.gameserver.datatables.CharNameTable;
1382@@ -142,7 +140,7 @@
1383 import com.l2jserver.gameserver.model.TradeList;
1384 import com.l2jserver.gameserver.model.Unlockable;
1385 import com.l2jserver.gameserver.model.Unlockable.Unlock;
1386-import com.l2jserver.gameserver.model.UserConfiguration;
1387+import com.l2jserver.gameserver.model.UserPreference;
1388 import com.l2jserver.gameserver.model.actor.L2Attackable;
1389 import com.l2jserver.gameserver.model.actor.L2Character;
1390 import com.l2jserver.gameserver.model.actor.L2Decoy;
1391@@ -265,6 +263,8 @@
1392 import com.l2jserver.gameserver.network.serverpackets.TradeOtherDone;
1393 import com.l2jserver.gameserver.network.serverpackets.TradeStart;
1394 import com.l2jserver.gameserver.network.serverpackets.UserInfo;
1395+import com.l2jserver.gameserver.profil.L2Profil;
1396+import com.l2jserver.gameserver.profil.ProfilTable;
1397 import com.l2jserver.gameserver.skills.AbnormalEffect;
1398 import com.l2jserver.gameserver.skills.Env;
1399 import com.l2jserver.gameserver.skills.Formulas;
1400@@ -561,7 +561,7 @@
1401 private boolean _sellbuff = false;
1402 private int _buffprice = 0;
1403 private final SellBuffMsg _sbm = new SellBuffMsg();
1404- private long _aio_endTime = 0;
1405+ private long aio_endTime = 0;
1406 private boolean _thief = false;
1407 private L2PcInstance moneyOwner;
1408 private long _moneyStolen;
1409@@ -5590,9 +5590,9 @@
1410 {
1411 PkHunterEventConditions.checkDie(killer, this);
1412 }
1413- CorvusFactionEngine.getInstance().evalAction(pk, this, null, CorvusFactionEngine.DEATH);
1414 if (pk != null)
1415 {
1416+ CorvusFactionEngine.getInstance().evalAction(pk, this, null, CorvusFactionEngine.DEATH);
1417 if (PhoenixInterface.getInstance().isRunning(getObjectId()) && PhoenixInterface.getInstance().isRunning(pk.getObjectId()))
1418 {
1419 PhoenixInterface.getInstance().onKill(getObjectId(), pk.getObjectId());
1420@@ -7571,10 +7571,9 @@
1421 player.setLang(rset.getString("language"));
1422 player.setVip(rset.getInt("vip"));
1423 player.setIsAutoEquipment(rset.getBoolean("receivedEquipment"));
1424- player.setPremiumTime(rset.getLong("premium_time"), false);
1425- player.setHeroTime(rset.getLong("heroTime"), false);
1426+ player.setPremiumTime(rset.getLong("premium_time"));
1427+ player.setHeroTime(rset.getLong("heroTime"));
1428 String lastPurchace = rset.getString("lastPurchase");
1429- player.setLastPurchase(lastPurchace != null ? lastPurchace : "-");
1430 final PreparedStatement stmt = con.prepareStatement("SELECT charId, char_name FROM characters WHERE account_name=? AND charId<>?");
1431 stmt.setString(1, player._accountName);
1432 stmt.setInt(2, objectId);
1433@@ -7623,7 +7622,7 @@
1434 player.refreshExpertisePenalty();
1435 player.restoreFriendList();
1436 player.getVisual().restore();
1437- player.getUserPanel().load();
1438+ player.getPreferences().load();
1439 player.getUnlockables().loadUnlockables();
1440 player.loadEasters();
1441 if (Config.STORE_UI_SETTINGS)
1442@@ -7856,7 +7855,7 @@
1443 storeCharBase();
1444 storeCharSub();
1445 getVisual().store();
1446- getUserPanel().store();
1447+ getPreferences().store();
1448 storeEasters();
1449 getVariables().storeMe();
1450 getUnlockables().storeUnlockables();
1451@@ -7953,8 +7952,7 @@
1452 statement.setInt(57, getEventPoints());
1453 statement.setBoolean(58, isAutoEquipment());
1454 statement.setLong(59, getHeroTime());
1455- statement.setString(60, getLastPurchase());
1456- statement.setInt(61, getObjectId());
1457+ statement.setInt(60, getObjectId());
1458 statement.execute();
1459 statement.close();
1460 }
1461@@ -15491,13 +15489,9 @@
1462 return _premiumTime;
1463 }
1464
1465- public void setPremiumTime(final long l, final boolean update)
1466+ public void setPremiumTime(final long l)
1467 {
1468 _premiumTime = l;
1469- if (update)
1470- {
1471- storeCharBase();
1472- }
1473 }
1474
1475 public boolean isPremium()
1476@@ -15633,11 +15627,11 @@
1477 return _visualData;
1478 }
1479
1480- private final UserConfiguration _userPanel = new UserConfiguration(this);
1481+ private final UserPreference _userPreferences = new UserPreference(getObjectId());
1482
1483- public UserConfiguration getUserPanel()
1484+ public UserPreference getPreferences()
1485 {
1486- return _userPanel;
1487+ return _userPreferences;
1488 }
1489
1490 private long _heroTime;
1491@@ -15647,59 +15641,42 @@
1492 return _heroTime;
1493 }
1494
1495- /**
1496- * Set and schedule hero time task
1497- * @param ms
1498- * @param store
1499- */
1500- public void setHeroTime(long ms, boolean store)
1501+ public void setHeroTime(long ms)
1502 {
1503 _heroTime = ms;
1504- scheduleHeroTime();
1505- if (store)
1506- {
1507- store();
1508- }
1509 }
1510
1511- /**
1512- * Stop hero time task <br>
1513- * Remove hero status <br>
1514- */
1515- public void stopHeroTime()
1516+ public boolean isHeroTimeTask()
1517 {
1518- _heroTime = 0;
1519- if (!Hero.getInstance().isHero(getObjectId()))
1520- {
1521- setHero(false);
1522- broadcastUserInfo();
1523- }
1524+ return _heroTime > System.currentTimeMillis();
1525+ }
1526+
1527+ public void stopHeroSchedule()
1528+ {
1529 if (_heroTask != null)
1530 {
1531- _heroTask.cancel(true);
1532- _heroTask = null;
1533+ if (!_heroTask.isCancelled() || !_heroTask.isDone())
1534+ {
1535+ _heroTask.cancel(true);
1536+ }
1537 }
1538 }
1539
1540 private ScheduledFuture<?> _heroTask;
1541
1542- public void scheduleHeroTime()
1543+ public void scheduleHero()
1544 {
1545- if (isHero())
1546+ if (isHeroTimeTask())
1547 {
1548+ stopHeroSchedule();
1549 setHero(true);
1550 broadcastUserInfo();
1551- }
1552- if (_heroTask != null)
1553- {
1554- if (!_heroTask.isCancelled())
1555+ for (L2Skill sk : HeroSkillTable.getHeroSkills())
1556 {
1557- _heroTask.cancel(true);
1558+ addSkill(sk);
1559 }
1560- }
1561- _heroTask = ThreadPoolManager.getInstance().scheduleGeneral(() ->
1562- {
1563- if (L2PcInstance.this != null)
1564+ sendSkillList();
1565+ _heroTask = ThreadPoolManager.getInstance().scheduleGeneral(() ->
1566 {
1567 setHero(false);
1568 broadcastUserInfo();
1569@@ -15707,24 +15684,18 @@
1570 {
1571 removeSkill(sk);
1572 }
1573- _heroTime = 0;
1574- }
1575- }, _heroTime - System.currentTimeMillis());
1576- }
1577-
1578- public boolean isHeroTimeTask()
1579- {
1580- return (System.currentTimeMillis() + 60000) < _heroTime;
1581+ }, _heroTime - System.currentTimeMillis());
1582+ }
1583 }
1584
1585 public long getAioEndTime()
1586 {
1587- return _aio_endTime;
1588+ return aio_endTime;
1589 }
1590
1591 public void setAioEndTime(final long val)
1592 {
1593- _aio_endTime = val;
1594+ aio_endTime = val;
1595 }
1596
1597 /**
1598@@ -15806,18 +15777,6 @@
1599 sendSkillList();
1600 }
1601
1602- private String lastPurchase = "No Purchase";
1603-
1604- public void setLastPurchase(String t)
1605- {
1606- lastPurchase = t;
1607- }
1608-
1609- public String getLastPurchase()
1610- {
1611- return lastPurchase;
1612- }
1613-
1614 private boolean _hwidbinded = false;
1615
1616 public boolean isHwidBinded()
1617Index: java/com/l2jserver/gameserver/model/actor/instance/L2PremiumInstance.java
1618===================================================================
1619--- java/com/l2jserver/gameserver/model/actor/instance/L2PremiumInstance.java (revision 9)
1620+++ java/com/l2jserver/gameserver/model/actor/instance/L2PremiumInstance.java (working copy)
1621@@ -55,18 +55,19 @@
1622 protected static final Logger _log = Logger.getLogger(L2PremiumInstance.class.getName());
1623
1624 /** ---------------------Points--------------------- */
1625- private final int transferPoints = 100; // 10e
1626- private final int heroPoints = 500; // 50e
1627- private final int noblessPoints = 250; // 25e
1628- private final int pkPoints = 1; // 0.1e
1629- private final int bindPoints = 50; // 5e
1630- private final int premiumPoints = 100; // 10e
1631- private final int clanPoints = 100; // 10e
1632- private final int sexPoints = 100; // 10e
1633- private final int locPoints = 50; // 5e
1634- private final int augmentPoints = 200; // 20e
1635- private final int factionPoints = 750; // 75e
1636- private final int enchantPoints = 750; // 75e
1637+
1638+ private static final int TRANSFER_CHARACTER = 100; // 10e
1639+ private static final int HERO = 500;
1640+ private static final int NOBLESSE = 250;
1641+ private static final int PK_REDUCTION = 1;
1642+ private static final int HWID_BIND = 50;
1643+ private static final int PREMIUM = 100;
1644+ private static final int CLAN_LEVEL = 100;
1645+ private static final int SEX_CHANGE = 100;
1646+ private static final int LOC_BIND = 50;
1647+ private static final int AUGMENTATION = 200;
1648+ private static final int FACTION_TRANSFER = 750;
1649+ private static final int ENCHANT = 750;
1650
1651 /** ---------------------Points--------------------- */
1652
1653@@ -79,14 +80,13 @@
1654 @Override
1655 public void showChatWindow(final L2PcInstance player)
1656 {
1657- player.sendPacket(ActionFailed.STATIC_PACKET);
1658 final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
1659 html.setFile(player.getHtmlPrefix(), "data/html/PremiumServices/Services.htm");
1660 html.replace("%objectId%", String.valueOf(getObjectId()));
1661 html.replace("%points%", String.valueOf(DonationTable.getInstance().getDonationPoints(player)));
1662 html.replace("%time%", getPremiumRemainToDate(player));
1663 html.replace("%hero%", getHeroRemainToDate(player));
1664- html.replace("%lastPurchase%", player.getLastPurchase());
1665+ html.replace("%lastPurchase%", player.getVariables().getString("lastPurchase", "No Purchase"));
1666 html.replace("%login%", lastLogin(player));
1667 html.replace("%faction%", Config.factionMode == 0 ? "" : "<table><tr><td></td></tr><tr><td fixwidth=35 height=40 align=center><img src=icon.etc_old_key_i00 width=32 height=32></td><td fixwidth=195><font color=c88f05>Change Faction</font></td><td><right><button value=\"\" action=\"bypass -h npc_" + getObjectId() + "_redirect;Faction.htm\" width=32 height=32 back=\"L2UI_ct1.MiniMap_DF_PlusBtn_Blue_Down\" fore=\"L2UI_ct1.MiniMap_DF_PlusBtn_Blue\"></right></td></tr></table><img src=\"L2UI.squaregray\" width=\"280\" height=\"2\">");
1668 player.sendPacket(html);
1669@@ -167,7 +167,7 @@
1670 html.replace("%time%", getPremiumRemainToDate(player));
1671 html.replace("%hero%", getHeroRemainToDate(player));
1672 html.replace("%login%", lastLogin(player));
1673- html.replace("%lastPurchase%", player.getLastPurchase());
1674+ html.replace("%lastPurchase%", player.getVariables().getString("lastPurchase", "No Purchase"));
1675 if (parts[1].startsWith("ItemList"))
1676 {
1677 html.replace("%head%", getIconByPaperdoll(player, Inventory.PAPERDOLL_HEAD));
1678@@ -189,10 +189,6 @@
1679 player.sendPacket(html);
1680 player.sendPacket(ActionFailed.STATIC_PACKET);
1681 }
1682- else
1683- {
1684- super.onBypassFeedback(player, command);
1685- }
1686 }
1687
1688 private String getIconByPaperdoll(final L2PcInstance player, int slot)
1689@@ -229,9 +225,9 @@
1690
1691 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1692
1693- if (enchantPoints > currentPoints)
1694+ if (ENCHANT > currentPoints)
1695 {
1696- player.sendMessage(enchantPoints + " points required for this service.");
1697+ player.sendMessage(ENCHANT + " points required for this service.");
1698 return;
1699 }
1700
1701@@ -246,6 +242,7 @@
1702
1703 if (item.isEnchantable() || item.isHeroItem() || item.isShadowItem() || item.isTimeLimitedItem() || item.isCommonItem() || item.isQuestItem() || item.isEtcItem())
1704 {
1705+ player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Selected item cannot be enchanted."));
1706 showChatWindow(player);
1707 return;
1708 }
1709@@ -260,10 +257,10 @@
1710 player.sendPacket(new UserInfo(player));
1711 player.broadcastPacket(new ExBrExtraUserInfo(player));
1712
1713- player.setLastPurchase("Enchant Item");
1714+ player.getVariables().set("lastPurchase", "Enchant Item");
1715
1716- DonationTable.getInstance().updatePoints(player, currentPoints - enchantPoints);
1717- DonationTable.getInstance().addLog(player.getObjectId(), "Enchant Item", System.currentTimeMillis(), enchantPoints);
1718+ DonationTable.getInstance().updatePoints(player, currentPoints - ENCHANT);
1719+ DonationTable.getInstance().addLog(player.getObjectId(), "Enchant Item", System.currentTimeMillis(), ENCHANT);
1720
1721 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Your " + item.getName() + " has been enchanted up to " + item.getEnchantLevel()));
1722 return;
1723@@ -314,9 +311,9 @@
1724 return;
1725 }
1726 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1727- if (factionPoints > currentPoints)
1728+ if (FACTION_TRANSFER > currentPoints)
1729 {
1730- player.sendMessage(factionPoints + " points required for this service.");
1731+ player.sendMessage(FACTION_TRANSFER + " points required for this service.");
1732 return;
1733 }
1734 if (player.getParty() != null)
1735@@ -360,9 +357,9 @@
1736 CorvusFactionEngine.getInstance().playerChangeFaction(player.getObjectId(), factionId);
1737 CorvusFactionEngine.getInstance().onLogin(player);
1738 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You changed your faction to " + CorvusFactionEngine.getInstance().getFactions().get(factionId).getFactionName()));
1739- DonationTable.getInstance().updatePoints(player, currentPoints - factionPoints);
1740- player.setLastPurchase("Switch Faction");
1741- DonationTable.getInstance().addLog(player.getObjectId(), "Switch Faction", System.currentTimeMillis(), factionPoints);
1742+ DonationTable.getInstance().updatePoints(player, currentPoints - FACTION_TRANSFER);
1743+ player.getVariables().set("lastPurchase", "Switch Faction");
1744+ DonationTable.getInstance().addLog(player.getObjectId(), "Switch Faction", System.currentTimeMillis(), FACTION_TRANSFER);
1745 }
1746 }
1747
1748@@ -372,9 +369,9 @@
1749 final StringTokenizer st = new StringTokenizer(command, " ");
1750 st.nextToken(); // null
1751 int days = Integer.parseInt(st.nextToken().replaceAll("\\D+", ""));
1752- if (premiumPoints > currentPoints)
1753+ if (PREMIUM > currentPoints)
1754 {
1755- player.sendMessage(premiumPoints * days + " points required for this service.");
1756+ player.sendMessage(PREMIUM * days + " points required for this service.");
1757 return;
1758 }
1759 if (player.isPremium())
1760@@ -382,16 +379,16 @@
1761 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Your character is already premium."));
1762 return;
1763 }
1764- player.setPremiumTime(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(days), true);
1765+ player.setPremiumTime(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(days));
1766 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You're now premium character for " + days + " days."));
1767- player.setLastPurchase("Premium Status");
1768+ player.getVariables().set("lastPurchase", "Premium Status");
1769 if (Config.PREMIUM_COLOR_ENABLED && Config.factionMode == 0)
1770 {
1771 player.getAppearance().setNameColor(Config.PREMIUM_COLOR);
1772 player.broadcastUserInfo();
1773 }
1774- DonationTable.getInstance().addLog(player.getObjectId(), "Premium Status", System.currentTimeMillis(), premiumPoints * days);
1775- DonationTable.getInstance().updatePoints(player, currentPoints - premiumPoints * days);
1776+ DonationTable.getInstance().addLog(player.getObjectId(), "Premium Status", System.currentTimeMillis(), PREMIUM * days);
1777+ DonationTable.getInstance().updatePoints(player, currentPoints - PREMIUM * days);
1778 }
1779
1780 public void setHero(final L2PcInstance player, final String command)
1781@@ -400,23 +397,22 @@
1782 st.nextToken();
1783 final int days = Integer.parseInt(st.nextToken().replaceAll("\\D+", ""));
1784 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1785- if (heroPoints * days > currentPoints)
1786+ if (HERO * days > currentPoints)
1787 {
1788- player.sendMessage(heroPoints * days + " points required for this service.");
1789+ player.sendMessage(HERO * days + " points required for this service.");
1790 return;
1791 }
1792- if (player.isHero() || player.isHeroTimeTask())
1793+ if (player.isHeroTimeTask())
1794 {
1795 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You're already have hero status."));
1796 return;
1797 }
1798- player.setHeroTime(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(days), true);
1799+ player.setHeroTime(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(days));
1800 player.broadcastPacket(new SocialAction(player.getObjectId(), SocialAction.HERO_AURA));
1801- player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You received hero for: " + days));
1802- player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Hero will automatically expire at: " + getHeroRemainToDate(player)));
1803- player.setLastPurchase("Hero Status");
1804- DonationTable.getInstance().addLog(player.getObjectId(), "Hero Status", System.currentTimeMillis(), heroPoints * days);
1805- DonationTable.getInstance().updatePoints(player, currentPoints - heroPoints * days);
1806+ player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Hero will automatically expire at " + getHeroRemainToDate(player)));
1807+ player.getVariables().set("lastPurchase", "Hero Status");
1808+ DonationTable.getInstance().addLog(player.getObjectId(), "Hero Status", System.currentTimeMillis(), HERO * days);
1809+ DonationTable.getInstance().updatePoints(player, currentPoints - HERO * days);
1810 }
1811
1812 public void showMembers(final L2PcInstance player)
1813@@ -455,16 +451,16 @@
1814 MultiSell.getInstance().separateAndSend(90019, player, null, false);
1815 return;
1816 }
1817- player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You don't have premium character to access this shop."));
1818+ player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You don't have premium character to access this."));
1819 showChatWindow(player);
1820 }
1821
1822 public void setNobless(final L2PcInstance player)
1823 {
1824 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1825- if (noblessPoints > currentPoints)
1826+ if (NOBLESSE > currentPoints)
1827 {
1828- player.sendMessage(noblessPoints + " points required for this service.");
1829+ player.sendMessage(NOBLESSE + " points required for this service.");
1830 return;
1831 }
1832 if (player.isNoble())
1833@@ -475,9 +471,9 @@
1834 player.setNoble(true);
1835 player.addItem("Tiara", 7694, 1, player, true);
1836 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You received nobless blessing."));
1837- player.setLastPurchase("Nobless Status");
1838- DonationTable.getInstance().addLog(player.getObjectId(), "Nobless Status", System.currentTimeMillis(), noblessPoints);
1839- DonationTable.getInstance().updatePoints(player, currentPoints - noblessPoints);
1840+ player.getVariables().set("lastPurchase", "Noblesse Status");
1841+ DonationTable.getInstance().addLog(player.getObjectId(), "Noblesse Status", System.currentTimeMillis(), NOBLESSE);
1842+ DonationTable.getInstance().updatePoints(player, currentPoints - NOBLESSE);
1843 player.store(false);
1844 }
1845
1846@@ -491,9 +487,9 @@
1847 return;
1848 }
1849 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1850- if (locPoints > currentPoints)
1851+ if (LOC_BIND > currentPoints)
1852 {
1853- player.sendMessage(locPoints + " points required for this service.");
1854+ player.sendMessage(LOC_BIND + " points required for this service.");
1855 return;
1856 }
1857 int townId = getTownIdByName(town);
1858@@ -501,9 +497,9 @@
1859 Location loc = spawns.get(0);
1860 BindLocation.getInstance().addBind(player, loc);
1861 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You're now binded on: " + town));
1862- player.setLastPurchase("Bind Location");
1863- DonationTable.getInstance().addLog(player.getObjectId(), "Bind Location", System.currentTimeMillis(), locPoints);
1864- DonationTable.getInstance().updatePoints(player, currentPoints - locPoints);
1865+ player.getVariables().set("lastPurchase", "Bind Location");
1866+ DonationTable.getInstance().addLog(player.getObjectId(), "Bind Location", System.currentTimeMillis(), LOC_BIND);
1867+ DonationTable.getInstance().updatePoints(player, currentPoints - LOC_BIND);
1868 }
1869
1870 public void setTransferCharacter(L2PcInstance player, final String command)
1871@@ -540,9 +536,9 @@
1872 String currentpassword = Base64.encodeBytes(pass);
1873 currentpassword = currentpassword.replaceAll("\\+", " +");
1874 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1875- if (currentPoints < transferPoints)
1876+ if (currentPoints < TRANSFER_CHARACTER)
1877 {
1878- player.sendMessage(transferPoints + " points required for this service.");
1879+ player.sendMessage(TRANSFER_CHARACTER + " points required for this service.");
1880 return;
1881 }
1882 if (!accountExists(targetAccount))
1883@@ -574,9 +570,9 @@
1884 int objId = player.getObjectId();
1885 switchCharacterToAccount(objId, targetAccount);
1886 }
1887- player.setLastPurchase("Transfer Character");
1888- DonationTable.getInstance().addLog(player.getObjectId(), "Transfer Character", System.currentTimeMillis(), transferPoints);
1889- DonationTable.getInstance().updatePoints(player, currentPoints - transferPoints);
1890+ player.getVariables().set("lastPurchase", "Transfer Character");
1891+ DonationTable.getInstance().addLog(player.getObjectId(), "Transfer Character", System.currentTimeMillis(), TRANSFER_CHARACTER);
1892+ DonationTable.getInstance().updatePoints(player, currentPoints - TRANSFER_CHARACTER);
1893 }
1894 catch (Exception e)
1895 {
1896@@ -647,9 +643,9 @@
1897 return;
1898 }
1899 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1900- if (pk * pkPoints > currentPoints)
1901+ if (pk * PK_REDUCTION > currentPoints)
1902 {
1903- player.sendMessage(pk * pkPoints + " are required for this action.");
1904+ player.sendMessage(pk * PK_REDUCTION + " are required for this action.");
1905 return;
1906 }
1907 if (player.getPkKills() < pk)
1908@@ -660,9 +656,9 @@
1909 player.sendPacket(new UserInfo(player));
1910 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You successfully removed " + pk + " pks."));
1911 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Your current Pks: " + player.getPkKills()));
1912- player.setLastPurchase("Pk Reduction");
1913- DonationTable.getInstance().addLog(player.getObjectId(), "Pk Reduction", System.currentTimeMillis(), pkPoints * pk);
1914- DonationTable.getInstance().updatePoints(player, currentPoints - pkPoints * pk);
1915+ player.getVariables().set("lastPurchase", "Pk Reduction");
1916+ DonationTable.getInstance().addLog(player.getObjectId(), "Pk Reduction", System.currentTimeMillis(), PK_REDUCTION * pk);
1917+ DonationTable.getInstance().updatePoints(player, currentPoints - PK_REDUCTION * pk);
1918 }
1919
1920 public void setBindHIW(final L2PcInstance player)
1921@@ -670,17 +666,17 @@
1922 if (!Hwid.getInstance().isAccountBinded(player.getAccountName()))
1923 {
1924 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1925- if (bindPoints > currentPoints)
1926+ if (HWID_BIND > currentPoints)
1927 {
1928- player.sendMessage(bindPoints + " points required for this service.");
1929+ player.sendMessage(HWID_BIND + " points required for this service.");
1930 return;
1931 }
1932 String hwid = Hwid.getInstance().getMacAddress(player.getClient());
1933 Hwid.getInstance().addHwid(player.getAccountName(), hwid);
1934 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Your account is now HWID binded on: " + hwid));
1935- player.setLastPurchase("Hwid bind");
1936- DonationTable.getInstance().addLog(player.getObjectId(), "Hwid bind", System.currentTimeMillis(), bindPoints);
1937- DonationTable.getInstance().updatePoints(player, currentPoints - bindPoints);
1938+ player.getVariables().set("lastPurchase", "Hwid bind");
1939+ DonationTable.getInstance().addLog(player.getObjectId(), "Hwid bind", System.currentTimeMillis(), HWID_BIND);
1940+ DonationTable.getInstance().updatePoints(player, currentPoints - HWID_BIND);
1941 return;
1942 }
1943 Hwid.getInstance().removeHwid(player.getAccountName());
1944@@ -694,7 +690,7 @@
1945 /** Empty */
1946 final int level = Integer.parseInt(st.nextToken());
1947 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1948- int requestedPoints = clanPoints * level;
1949+ int requestedPoints = CLAN_LEVEL * level;
1950 if (requestedPoints > currentPoints)
1951 {
1952 player.sendMessage(requestedPoints + " points are required for this service.");
1953@@ -739,7 +735,7 @@
1954 clan.broadcastClanStatus();
1955 clan.updateClanInDB();
1956 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Your clan level increased to level " + level));
1957- player.setLastPurchase("Clan Level");
1958+ player.getVariables().set("lastPurchase", "Clan Level");
1959 DonationTable.getInstance().addLog(player.getObjectId(), "Clan Level", System.currentTimeMillis(), requestedPoints);
1960 DonationTable.getInstance().updatePoints(player, currentPoints - requestedPoints);
1961 }
1962@@ -749,9 +745,9 @@
1963 final StringTokenizer st = new StringTokenizer(command, " ");
1964 st.nextToken();
1965 long currentPoints = DonationTable.getInstance().getDonationPoints(player);
1966- if (augmentPoints > currentPoints)
1967+ if (AUGMENTATION > currentPoints)
1968 {
1969- player.sendMessage(augmentPoints + " points are required for this service.");
1970+ player.sendMessage(AUGMENTATION + " points are required for this service.");
1971 return;
1972 }
1973 L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
1974@@ -901,9 +897,9 @@
1975 System.out.println(e);
1976 }
1977 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "Successfully added " + SkillTable.getInstance().getInfo(idaugment, levelaugment).getName() + "."));
1978- DonationTable.getInstance().updatePoints(player, currentPoints - augmentPoints);
1979- DonationTable.getInstance().addLog(player.getObjectId(), "Augmentation", System.currentTimeMillis(), augmentPoints);
1980- player.setLastPurchase("Augmentation");
1981+ DonationTable.getInstance().updatePoints(player, currentPoints - AUGMENTATION);
1982+ DonationTable.getInstance().addLog(player.getObjectId(), "Augmentation", System.currentTimeMillis(), AUGMENTATION);
1983+ player.getVariables().set("lastPurchase", "Augmentation");
1984 }
1985
1986 public void setSex(final L2PcInstance player)
1987@@ -919,23 +915,23 @@
1988 return;
1989 }
1990 final int currentPoints = DonationTable.getInstance().getDonationPoints(player);
1991- if (sexPoints > currentPoints)
1992+ if (SEX_CHANGE > currentPoints)
1993 {
1994- player.sendMessage(sexPoints + " points are required for this service.");
1995+ player.sendMessage(SEX_CHANGE + " points are required for this service.");
1996 return;
1997 }
1998 final Sex beforeWas = player.getAppearance().getSex();
1999 player.getAppearance().setSex(player.getAppearance().getSex() == Sex.FEMALE ? Sex.MALE : Sex.FEMALE);
2000 player.sendPacket(new CreatureSay(0, Say2.HERO_VOICE, "System", "You changed your gender."));
2001- player.setLastPurchase("Change Sex");
2002- DonationTable.getInstance().addLog(player.getObjectId(), "Change Sex", System.currentTimeMillis(), sexPoints);
2003- DonationTable.getInstance().updatePoints(player, currentPoints - sexPoints);
2004+ player.getVariables().set("lastPurchase", "Change Sex");
2005+ DonationTable.getInstance().addLog(player.getObjectId(), "Change Sex", System.currentTimeMillis(), SEX_CHANGE);
2006+ DonationTable.getInstance().updatePoints(player, currentPoints - SEX_CHANGE);
2007
2008 if (beforeWas == Sex.FEMALE)
2009 {
2010- final int vHairStyle = player.getVisual().getHairStyle();
2011+ final int hairStyle = player.getVisual().getHairStyle();
2012
2013- if (vHairStyle != -1 && vHairStyle >= 4)
2014+ if (hairStyle != -1 && hairStyle >= 4)
2015 {
2016 player.getVisual().setHairStyle(4);
2017 player.getAppearance().setHairStyle(4);
2018Index: java/com/l2jserver/gameserver/model/actor/instance/L2PremiumManagerInstance.java
2019===================================================================
2020--- java/com/l2jserver/gameserver/model/actor/instance/L2PremiumManagerInstance.java (revision 4)
2021+++ java/com/l2jserver/gameserver/model/actor/instance/L2PremiumManagerInstance.java (nonexistent)
2022@@ -1,177 +0,0 @@
2023-package com.l2jserver.gameserver.model.actor.instance;
2024-
2025-import java.text.SimpleDateFormat;
2026-import java.util.Collection;
2027-import java.util.Date;
2028-import java.util.StringTokenizer;
2029-
2030-import com.l2jserver.Config;
2031-import com.l2jserver.gameserver.model.L2Object;
2032-import com.l2jserver.gameserver.model.L2World;
2033-import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
2034-import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
2035-import com.l2jserver.util.StringUtil;
2036-
2037-import javolution.util.FastList;
2038-
2039-/**
2040- * @author Jackass/Ted/fernandopm
2041- */
2042-public class L2PremiumManagerInstance extends L2NpcInstance
2043-{
2044- public L2PremiumManagerInstance(final int objectId, final L2NpcTemplate template)
2045- {
2046- super(objectId, template);
2047- }
2048-
2049- @Override
2050- public String getHtmlPath(final int npcId, final int val)
2051- {
2052- return "data/html/vip/vipmanager.htm";
2053- }
2054-
2055- @Override
2056- public void showChatWindow(final L2PcInstance player)
2057- {
2058- if (!Config.ENABLE_PREMIUM_NPC)
2059- {
2060- showChatWindow(player, "data/html/vip/npcisdisabled.htm");
2061- return;
2062- }
2063- if (player.isGM())
2064- {
2065- showChatWindow(player, "data/html/vip/adminmanage.htm");
2066- }
2067- else
2068- {
2069- showChatWindow(player, "data/html/vip/vipmanager.htm");
2070- }
2071- }
2072-
2073- @Override
2074- public void onBypassFeedback(final L2PcInstance player, final String command)
2075- {
2076- final StringTokenizer st = new StringTokenizer(command);
2077- final String actualCommand = st.nextToken();
2078- if (actualCommand.equalsIgnoreCase("getVip"))
2079- {
2080- final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
2081- if (!player.isPremium())
2082- {
2083- if (player.getInventory().getInventoryItemCount(6393, 0) >= 50000)
2084- // if
2085- // (player.getInventory().getItemByItemId(Config.PREMIUM_NPC_ITEM
2086- // >= 1)
2087- {
2088- addVips(player);
2089- player.getInventory().destroyItemByItemId("Adena", 57, 2000000, player, null);
2090- html.setFile("", "data/html/vip/vipmanager.htm");
2091- player.sendPacket(html);
2092- }
2093- else
2094- {
2095- html.setFile("", "data/html/vip/noenoughitems.htm");
2096- html.replace("%objectId%", String.valueOf(getObjectId()));
2097- player.sendMessage("No Enough items");
2098- player.sendPacket(html);
2099- }
2100- }
2101- else
2102- {
2103- html.setFile("", "data/html/vip/alreadyvip.htm");
2104- html.replace("%objectId%", String.valueOf(getObjectId()));
2105- player.sendPacket(html);
2106- }
2107- }
2108- else if (actualCommand.equalsIgnoreCase("checkVipTime"))
2109- {
2110- final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
2111- if (player.isPremium())
2112- {
2113- html.setFile("", "data/html/vip/checktime.htm");
2114- html.replace("%acquireDate%", convertToDate(player.getPremiumTime() - Config.PREMIUM_LIFE_TIME));
2115- html.replace("%endDate%", convertToDate(player.getPremiumTime()));
2116- }
2117- else
2118- {
2119- html.setFile("", "data/html/vip/noenoughitems.htm");
2120- }
2121- player.sendPacket(html);
2122- }
2123- else if (actualCommand.equalsIgnoreCase("checklist"))
2124- {
2125- showAllVips(player);
2126- }
2127- else
2128- {
2129- super.onBypassFeedback(player, actualCommand);
2130- }
2131- }
2132-
2133- private static String convertToDate(final long timeInMillis)
2134- {
2135- final Date time = new Date(timeInMillis);
2136- final SimpleDateFormat format = new SimpleDateFormat("MMM dd,yyyy HH:mm");
2137- return format.format(time);
2138- }
2139-
2140- /**
2141- * Shows the html with a list of vips with or without timers
2142- * @param time
2143- */
2144- private static void showAllVips(final L2PcInstance activeChar)
2145- {
2146- final Collection<L2PcInstance> players = L2World.getInstance().getAllPlayers().values();
2147- final FastList<L2PcInstance> vips = new FastList<>();
2148- for (final L2PcInstance player : players)
2149- {
2150- if (player.isPremium())
2151- {
2152- vips.add(player);
2153- }
2154- }
2155- final NpcHtmlMessage html = new NpcHtmlMessage(0);
2156- html.setFile("", "data/html/vip/viplist.htm");
2157- if (vips.isEmpty())
2158- {
2159- html.replace("%users%", "No online premium users found");
2160- html.replace("%totalvips%", "0");
2161- activeChar.sendPacket(html);
2162- return;
2163- }
2164- final StringBuilder reply = new StringBuilder(500 + (vips.size() * 200));
2165- for (final L2PcInstance vip : players)
2166- {
2167- final long premTime = vip.getPremiumTime();
2168- final Date timeDate = new Date(premTime - Config.PREMIUM_LIFE_TIME);
2169- final Date finishDate = new Date(premTime);
2170- final SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd,yyyy HH:mm");
2171- StringUtil.append(reply, "<tr><td>" + "Username: " + vip.getName() + " Premium Start time: " + dateFormat.format(timeDate) + " Finish time: " + dateFormat.format(finishDate) + "</td></tr>");
2172- }
2173- html.replace("%users%", reply.toString());
2174- html.replace("%totalvips%", String.valueOf(vips.size()));
2175- activeChar.sendPacket(html);
2176- }
2177-
2178- private static void addVips(final L2PcInstance activeChar)
2179- {
2180- final L2Object object = activeChar.getTarget();
2181- if (object == null)
2182- {
2183- activeChar.sendMessage("Usage: //setpremium and target someone.");
2184- }
2185- if (!(object instanceof L2PcInstance))
2186- {
2187- activeChar.sendMessage("Target must be a player");
2188- return;
2189- }
2190- final L2PcInstance target = (L2PcInstance) object;
2191- if (target.isPremium())
2192- {
2193- activeChar.sendMessage("The user is already a premium player");
2194- return;
2195- }
2196- target.setPremiumTime(System.currentTimeMillis() + Config.PREMIUM_LIFE_TIME, true);
2197- activeChar.sendMessage("The user " + activeChar.getName() + " has been added to premium list");
2198- }
2199-}
2200Index: java/com/l2jserver/gameserver/model/actor/instance/L2PremiumShopInstance.java
2201===================================================================
2202--- java/com/l2jserver/gameserver/model/actor/instance/L2PremiumShopInstance.java (revision 4)
2203+++ java/com/l2jserver/gameserver/model/actor/instance/L2PremiumShopInstance.java (nonexistent)
2204@@ -1,47 +0,0 @@
2205-/*
2206- * This program is free software: you can redistribute it and/or modify it under
2207- * the terms of the GNU General Public License as published by the Free Software
2208- * Foundation, either version 3 of the License, or (at your option) any later
2209- * version.
2210- * This program is distributed in the hope that it will be useful, but WITHOUT
2211- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
2212- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
2213- * details.
2214- * You should have received a copy of the GNU General Public License along with
2215- * this program. If not, see <http://www.gnu.org/licenses/>.
2216- */
2217-package com.l2jserver.gameserver.model.actor.instance;
2218-
2219-import com.l2jserver.gameserver.model.actor.L2Npc;
2220-import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
2221-import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
2222-import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
2223-
2224-/**
2225- * @author ProjectX
2226- */
2227-public class L2PremiumShopInstance extends L2Npc
2228-{
2229- public L2PremiumShopInstance(final int objectId, final L2NpcTemplate template)
2230- {
2231- super(objectId, template);
2232- }
2233-
2234- @Override
2235- public void showChatWindow(final L2PcInstance player)
2236- {
2237- if (player.isPremium())
2238- {
2239- final String filename = "data/html/vip/shop.htm";
2240- final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
2241- html.setFile(player.getHtmlPrefix(), filename);
2242- html.replace("%objectId%", String.valueOf(getObjectId()));
2243- player.sendPacket(html);
2244- player.sendPacket(ActionFailed.STATIC_PACKET);
2245- }
2246- else
2247- {
2248- player.sendMessage("You are not allowed to access here. It's only for Premium members");
2249- }
2250- }
2251-}
2252Index: java/com/l2jserver/gameserver/model/actor/instance/L2TopStatsInstance.java
2253===================================================================
2254--- java/com/l2jserver/gameserver/model/actor/instance/L2TopStatsInstance.java (revision 4)
2255+++ java/com/l2jserver/gameserver/model/actor/instance/L2TopStatsInstance.java (working copy)
2256@@ -6,11 +6,11 @@
2257 import java.util.logging.Logger;
2258
2259 import com.l2jserver.L2DatabaseFactory;
2260-import com.l2jserver.gameserver.custom.profil.L2Profil;
2261-import com.l2jserver.gameserver.custom.profil.ProfilTable;
2262 import com.l2jserver.gameserver.datatables.CharNameTable;
2263 import com.l2jserver.gameserver.instancemanager.GlobalVariablesManager;
2264 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
2265+import com.l2jserver.gameserver.profil.L2Profil;
2266+import com.l2jserver.gameserver.profil.ProfilTable;
2267 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
2268 import com.l2jserver.gameserver.util.Util;
2269
2270Index: java/com/l2jserver/gameserver/model/actor/knownlist/ObjectKnownList.java
2271===================================================================
2272--- java/com/l2jserver/gameserver/model/actor/knownlist/ObjectKnownList.java (revision 4)
2273+++ java/com/l2jserver/gameserver/model/actor/knownlist/ObjectKnownList.java (working copy)
2274@@ -51,7 +51,7 @@
2275 }
2276 if (getActiveObject() instanceof L2PcInstance && object instanceof L2PcInstance)
2277 {
2278- if (((L2PcInstance) object).isInStoreMode() && getActiveObject().getActingPlayer().getUserPanel().isHidePrivateStore())
2279+ if (((L2PcInstance) object).isInStoreMode() && getActiveObject().getActingPlayer().getPreferences().isHidePrivateStore())
2280 {
2281 return false;
2282 }
2283Index: java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
2284===================================================================
2285--- java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (revision 4)
2286+++ java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (working copy)
2287@@ -225,10 +225,7 @@
2288 activeChar.setIsPartyRequest(true);
2289 }
2290 activeChar.updateEffectIcons();
2291- if (activeChar.isHeroTimeTask())
2292- {
2293- activeChar.scheduleHeroTime();
2294- }
2295+ activeChar.scheduleHero();
2296 if (activeChar.getCurrentHp() < 0.5)
2297 {
2298 activeChar.setIsDead(true);
2299Index: java/com/l2jserver/gameserver/network/clientpackets/Logout.java
2300===================================================================
2301--- java/com/l2jserver/gameserver/network/clientpackets/Logout.java (revision 4)
2302+++ java/com/l2jserver/gameserver/network/clientpackets/Logout.java (working copy)
2303@@ -104,7 +104,7 @@
2304
2305 L2Party party = player.getParty();
2306
2307- if (party != null && player.getUserPanel().isPartyReconnect() && party.getPartyLeaderOID() != player.getObjectId())
2308+ if (party != null && player.getPreferences().isPartyReconnect() && party.getPartyLeaderOID() != player.getObjectId())
2309 {
2310 PartyReconnect.getInstance().addPlayer(player.getObjectId(), party.getPartyLeaderOID());
2311 }
2312Index: java/com/l2jserver/gameserver/network/clientpackets/RequestJoinParty.java
2313===================================================================
2314--- java/com/l2jserver/gameserver/network/clientpackets/RequestJoinParty.java (revision 4)
2315+++ java/com/l2jserver/gameserver/network/clientpackets/RequestJoinParty.java (working copy)
2316@@ -56,7 +56,7 @@
2317 requestor.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.FIRST_SELECT_USER_TO_INVITE_TO_PARTY));
2318 return;
2319 }
2320- if (target.getUserPanel().isPartyRefusal())
2321+ if (target.getPreferences().isPartyRefusal())
2322 {
2323 requestor.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.USER_IS_IN_PARTY_REFUSE_MODE));
2324 return;
2325Index: java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java
2326===================================================================
2327--- java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java (revision 4)
2328+++ java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java (working copy)
2329@@ -121,7 +121,7 @@
2330 }
2331 }
2332
2333- if (party != null && player.getUserPanel().isPartyReconnect() && party.getPartyLeaderOID() != player.getObjectId())
2334+ if (party != null && player.getPreferences().isPartyReconnect() && party.getPartyLeaderOID() != player.getObjectId())
2335 {
2336 PartyReconnect.getInstance().addPlayer(player.getObjectId(), party.getPartyLeaderOID());
2337 }
2338Index: java/com/l2jserver/gameserver/network/clientpackets/TradeRequest.java
2339===================================================================
2340--- java/com/l2jserver/gameserver/network/clientpackets/TradeRequest.java (revision 4)
2341+++ java/com/l2jserver/gameserver/network/clientpackets/TradeRequest.java (working copy)
2342@@ -81,7 +81,7 @@
2343 player.sendMessage("You or your target can't request trade in Olympiad mode");
2344 return;
2345 }
2346- if (partner.getUserPanel().isTradeRefusal())
2347+ if (partner.getPreferences().isTradeRefusal())
2348 {
2349 player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.USER_IS_IN_TRADE_REFUSE_MODE));
2350 return;
2351Index: java/com/l2jserver/gameserver/profil/L2Post.java
2352===================================================================
2353--- java/com/l2jserver/gameserver/profil/L2Post.java (revision 13)
2354+++ java/com/l2jserver/gameserver/profil/L2Post.java (working copy)
2355@@ -1,4 +1,4 @@
2356-package com.l2jserver.gameserver.custom.profil;
2357+package com.l2jserver.gameserver.profil;
2358
2359 /**
2360 * @author Kara`
2361Index: java/com/l2jserver/gameserver/profil/L2Profil.java
2362===================================================================
2363--- java/com/l2jserver/gameserver/profil/L2Profil.java (revision 13)
2364+++ java/com/l2jserver/gameserver/profil/L2Profil.java (working copy)
2365@@ -1,4 +1,4 @@
2366-package com.l2jserver.gameserver.custom.profil;
2367+package com.l2jserver.gameserver.profil;
2368
2369 import java.util.Collection;
2370 import java.util.HashMap;
2371Index: java/com/l2jserver/gameserver/profil/ProfilTable.java
2372===================================================================
2373--- java/com/l2jserver/gameserver/profil/ProfilTable.java (revision 13)
2374+++ java/com/l2jserver/gameserver/profil/ProfilTable.java (working copy)
2375@@ -10,7 +10,7 @@
2376 * You should have received a copy of the GNU General Public License along with
2377 * this program. If not, see <http://www.gnu.org/licenses/>.
2378 */
2379-package com.l2jserver.gameserver.custom.profil;
2380+package com.l2jserver.gameserver.profil;
2381
2382 import java.sql.Connection;
2383 import java.sql.PreparedStatement;
2384Index: java/com/l2jserver/gameserver/profil/ProfilType.java
2385===================================================================
2386--- java/com/l2jserver/gameserver/profil/ProfilType.java (revision 13)
2387+++ java/com/l2jserver/gameserver/profil/ProfilType.java (working copy)
2388@@ -1,4 +1,4 @@
2389-package com.l2jserver.gameserver.custom.profil;
2390+package com.l2jserver.gameserver.profil;
2391
2392 public enum ProfilType
2393 {
2394Index: java/facebook/Facebook.java
2395===================================================================
2396--- java/facebook/Facebook.java (revision 16)
2397+++ java/facebook/Facebook.java (working copy)
2398@@ -18,43 +18,87 @@
2399 */
2400 package facebook;
2401
2402+import java.util.HashMap;
2403 import java.util.List;
2404+import java.util.Map;
2405+import java.util.Timer;
2406+import java.util.TimerTask;
2407
2408 import com.restfb.Connection;
2409 import com.restfb.DefaultFacebookClient;
2410 import com.restfb.FacebookClient;
2411+import com.restfb.Parameter;
2412+import com.restfb.Version;
2413 import com.restfb.types.Comment;
2414-import com.restfb.types.Comments;
2415-import com.restfb.types.Page;
2416+import com.restfb.types.Post;
2417
2418 /**
2419 * @author ProjectX
2420 */
2421 public class Facebook
2422 {
2423+ static Map<String, Post> _posts = new HashMap<>();
2424+
2425 public static void main(String[] args)
2426 {
2427+ TimerTask timerTask = new myTask();
2428+
2429+ Timer timer = new Timer(true);
2430+ timer.scheduleAtFixedRate(timerTask, 100, 1500000000);
2431 try
2432 {
2433- @SuppressWarnings("deprecation")
2434- FacebookClient fClient = new DefaultFacebookClient("EAAea4rSO0wcBAFDdYCUb2BwMpNnsAyDKqESFK2ZAnPhQMDufZBex82PT6ivRVZAIiapAarSnxsUDsYobf6CfDjcbI42HHBXC9F3E5PorycVFE7yffCcGQZBRTxr6M7ZCX3IIXXXsEuk5q6eZBca69CZAyVw3UIZCuVzuPyDySuZCIGwZDZD");
2435-
2436- Page page = fClient.fetchObject("me", Page.class);
2437-
2438- System.out.println(page.getName());
2439-
2440- Connection<Comments> data = fClient.fetchConnection("me", Comments.class);
2441+ Thread.sleep(12000000);
2442+ }
2443+ catch (InterruptedException e)
2444+ {
2445+ e.printStackTrace();
2446+ }
2447+ }
2448+
2449+ public static class myTask extends TimerTask
2450+ {
2451+ @SuppressWarnings("deprecation")
2452+ @Override
2453+ public void run()
2454+ {
2455+ boolean hasLiked = false;
2456+ boolean hasComment = false;
2457
2458- for (Comments post : data.getData())
2459+ try
2460 {
2461- List<Comment> i = post.getData();
2462+ String token = "EAAea4rSO0wcBAIZBWCwpZBxZC6H6LtSqfjBFsAOX14hsKJwZBJ9H5I1SM8oGBQBrEZAQ0pt1qRADe6LBnVrIuGw19N5ONrfYas0IopZA7TdzOZCnlZBhiFWYAh59ZCoagjYmXQNUNjmSazBvzXP0D7oVkR6ZCXaw1vA8u3NiAtVSiGAgZDZD";
2463+
2464+ FacebookClient fClient = new DefaultFacebookClient(token, Version.VERSION_3_1);
2465+
2466+ Connection<Post> result = fClient.fetchConnection("L2CriticalErrorgfawe/feed", Post.class);
2467+
2468+ for (List<Post> page : result)
2469+ {
2470+ for (Post aPost : page)
2471+ {
2472+ aPost = fClient.fetchObject(aPost.getId(), Post.class, Parameter.with("fields", "from,actions,message,story,to,likes.summary(true),comments.summary(true),shares.summary(true)"));
2473+
2474+ System.out.println("-------------------------------");
2475+ System.out.println("Post: " + aPost.getMessage());
2476+
2477+ for (Comment comment : aPost.getComments().getData())
2478+ {
2479+ if (comment.getFrom() == null)
2480+ {
2481+ System.out.println("Null name, cannot fetch data");
2482+ continue;
2483+ }
2484+ System.out.println(comment.getFrom().getName() + ": " + comment.getMessage());
2485+ }
2486+
2487+ }
2488+ }
2489
2490 }
2491-
2492- }
2493- catch (Exception e)
2494- {
2495- e.printStackTrace();
2496+ catch (Exception e)
2497+ {
2498+ e.printStackTrace();
2499+ }
2500 }
2501 }
2502 }