Advertisement
Guest User

Untitled

a guest
Jun 19th, 2017
5,058
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. //在 World.java 中新增
  2.  
  3. public static void clearChannelChangeDataByAccountId(int accountid) {
  4. for (ChannelServer cs : ChannelServer.getAllInstances()) {
  5. getStorage(cs.getChannel()).deregisterPendingPlayerByAccountId(accountid);
  6. }
  7. getStorage(-20).deregisterPendingPlayerByAccountId(accountid);
  8. getStorage(-10).deregisterPendingPlayerByAccountId(accountid);
  9. }
  10.  
  11. //在 PlayerStorage.java 新增
  12. public final void deregisterPendingPlayerByAccountId(final int accountId) {
  13. writeLock2.lock();
  14. try {
  15. for (CharacterTransfer transfer : PendingCharacter.values()) {
  16. if (transfer.accountid == accountId) {
  17. PendingCharacter.remove(transfer.characterid);
  18. }
  19. }
  20. } finally {
  21. writeLock2.unlock();
  22. }
  23. }
  24.  
  25. // 修改 PlayerStorage.java
  26.  
  27. public final void deregisterPendingPlayer(final int charid) {
  28. writeLock2.lock();
  29. try {
  30. int accountid = 0;
  31. if (PendingCharacter.containsKey(charid)) {
  32. accountid = PendingCharacter.get(charid).accountid;
  33. }
  34. PendingCharacter.remove(charid);
  35. if (accountid > 0) {
  36. for (CharacterTransfer transfer : PendingCharacter.values()) {
  37. if (transfer.accountid == accountid) {
  38. PendingCharacter.remove(transfer.characterid);
  39. }
  40. }
  41. }
  42. } finally {
  43. writeLock2.unlock();
  44. }
  45. }
  46.  
  47. public final void registerPendingPlayer(final CharacterTransfer chr, final int playerid) {
  48. writeLock2.lock();
  49. try {
  50. for (CharacterTransfer transfer : PendingCharacter.values()) {
  51. if (transfer.accountid == chr.accountid) {
  52. PendingCharacter.remove(transfer.characterid);
  53. }
  54. }
  55. PendingCharacter.put(playerid, chr);//new Pair(System.currentTimeMillis(), chr));
  56. } finally {
  57. writeLock2.unlock();
  58. }
  59. }
  60.  
  61. //在 LoginWorker.java 中 增加這一行
  62. //...
  63. if (c.finishLogin() == 0) {
  64. World.clearChannelChangeDataByAccountId(c.getAccID());
  65. //...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement