Advertisement
Guest User

antidual box for Zones - By LordPanic

a guest
Jun 9th, 2021
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. package net.sf.l2j.gameserver.model.zone.type;
  2.  
  3.  
  4. import java.util.HashMap;
  5.  
  6. import net.sf.l2j.gameserver.enums.ZoneId;
  7. import net.sf.l2j.gameserver.model.actor.Creature;
  8. import net.sf.l2j.gameserver.model.actor.Player;
  9. import net.sf.l2j.gameserver.model.zone.ZoneType;
  10. import net.sf.l2j.gameserver.network.GameClient;
  11.  
  12.  
  13. public class TestZone2 extends ZoneType
  14. {
  15.  
  16. private final HashMap<String, Integer> _ipPool = new HashMap<>();
  17.  
  18. public TestZone2(int id)
  19. {
  20. super(id);
  21. }
  22.  
  23. @Override
  24. protected void onEnter(Creature character)
  25. {
  26. if(character instanceof Player)
  27. {
  28. Player player = (Player) character;
  29. String ipHolder = player.getClient().getConnection().getInetAddress().getHostAddress();
  30. checkIfsmIP(ipHolder,player);
  31. player.sendMessage(ipHolder);
  32. player.setInsideZone(ZoneId.TESTZONE, true);
  33. }
  34. }
  35.  
  36. @Override
  37. protected void onExit(Creature character)
  38. {
  39. if(character instanceof Player)
  40. {
  41. Player player = (Player) character;
  42. GameClient client = player.getClient();
  43. if (client == null || client.isDetached()) {
  44. _ipPool.clear();
  45. }else {
  46. String ipHolder = player.getClient().getConnection().getInetAddress().getHostAddress();
  47. character.setInsideZone(ZoneId.TESTZONE, false);
  48. removeIp(ipHolder,player);
  49. }
  50. }
  51. }
  52.  
  53. public void removeIp(String ipHldr, Player activeChar) {
  54. if(_ipPool.get(ipHldr) == 2) {
  55. _ipPool.replace(ipHldr, 2, 1);
  56. }else if(_ipPool.get(ipHldr) == 1) {
  57. _ipPool.remove(ipHldr);
  58. }
  59. }
  60.  
  61. public void checkIfsmIP(String ipHldr, Player activeChar) {
  62. if(_ipPool.containsKey(ipHldr)) {
  63. _ipPool.replace(ipHldr, 1, 2);
  64. if(_ipPool.get(ipHldr) == 2) {
  65. activeChar.teleportTo(83080, 148200, -3464, 0);
  66. activeChar.sendMessage("You can't use dual box in this zone.");
  67. }
  68. }else {
  69. _ipPool.put(ipHldr, 1);
  70. }
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement