scraw Posted April 28, 2020 Posted April 28, 2020 (edited) -Hello..i know that noone will answer but i never stop hopping..so get to the point: -I have an code for auto-reward every shcelude time "X" but it reward all players in L2World no matter if dualbox or whatever. -That i want is: Players reward by Ip (only one player) thats what i have (for L2JFROZEN REV 1132): public static void AutoReward() { Collection <L2PcInstance> pls = L2World.getInstance().getAllPlayers(); for (L2PcInstance p: pls) { p.sendMessage("AutoReward: You got " + Config.AUTO_REWARD_COUNT + " " + Config.NAME_ITEM_REWARD + " by being online"); p.getInventory().addItem("", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, null); } } Edited April 28, 2020 by Rootware
0 wongerlt Posted April 28, 2020 Posted April 28, 2020 string list. put to list each ppl ip while put ip address check is already exists or no if exists then ppl already rewarded. easy way.
0 Rootware Posted April 28, 2020 Posted April 28, 2020 Try this but check the IP adress method in your sources. public static void AutoReward() { List<String> ips = new ArrayList<>(); Collection <L2PcInstance> pls = L2World.getInstance().getAllPlayers(); for (L2PcInstance p : pls) { final String ip = p.getConnection().getInetAddress(); if (ips.contains(ip)) continue; p.sendMessage("AutoReward: You got " + Config.AUTO_REWARD_COUNT + " " + Config.NAME_ITEM_REWARD + " by being online"); p.getInventory().addItem("", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, null); ips.add(ip); } }
0 melron Posted April 28, 2020 Posted April 28, 2020 1 hour ago, Rootware said: Try this but check the IP adress method in your sources. public static void AutoReward() { List<String> ips = new ArrayList<>(); Collection <L2PcInstance> pls = L2World.getInstance().getAllPlayers(); for (L2PcInstance p : pls) { final String ip = p.getConnection().getInetAddress(); if (ips.contains(ip)) continue; p.sendMessage("AutoReward: You got " + Config.AUTO_REWARD_COUNT + " " + Config.NAME_ITEM_REWARD + " by being online"); p.getInventory().addItem("", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, null); ips.add(ip); } } getClient().getConnection().getInetAddress().getHostAddress()
0 scraw Posted April 28, 2020 Author Posted April 28, 2020 3 hours ago, Rootware said: Try this but check the IP adress method in your sources. public static void AutoReward() { List<String> ips = new ArrayList<>(); Collection <L2PcInstance> pls = L2World.getInstance().getAllPlayers(); for (L2PcInstance p : pls) { final String ip = p.getConnection().getInetAddress(); if (ips.contains(ip)) continue; p.sendMessage("AutoReward: You got " + Config.AUTO_REWARD_COUNT + " " + Config.NAME_ITEM_REWARD + " by being online"); p.getInventory().addItem("", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, null); ips.add(ip); } } i tried that .but unsuccesfully..
0 scraw Posted April 28, 2020 Author Posted April 28, 2020 @Rootware i insert your code and also @melron but i have this problem: public static void AutoReward () { Collection <L2PcInstance> pls = L2World.getInstance (). getAllPlayers (); for (L2PcInstance p: pls) { final String ip = p.getConnection().getInetAddress().getClient().getConnection().getInetAddress().getHostAddress(); if (ip.contains(ip)) continue; p.sendMessage ("AutoReward: You got" + Config.AUTO_REWARD_COUNT + "" + Config.NAME_ITEM_REWARD + "for being online"); p.getInventory (). addItem ("", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, null); } } } /end line and i cant find my sources code for that
0 BruT Posted April 28, 2020 Posted April 28, 2020 (edited) it has to be p.getClient().getConnection().getInetAddress().getHostAddress(); Edited April 28, 2020 by BruT
0 scraw Posted April 28, 2020 Author Posted April 28, 2020 1 minute ago, BruT said: add getClient() before getConnection() it work but now i have this : final String ip = p.getClient().getConnection().getInetAddress().getHostAddress(); if (ip.contains(ip)) continue; p.sendMessage ("AutoReward: You got" + Config.AUTO_REWARD_COUNT + "" + Config.NAME_ITEM_REWARD + "for being online"); p.getInventory (). addItem ("", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, null); ips.add(ip); } } }
0 BruT Posted April 28, 2020 Posted April 28, 2020 (edited) when u hold on the error what does it say? i guess you forgot the List<String> ips = new ArrayList<>(); Edited April 28, 2020 by BruT
0 scraw Posted April 28, 2020 Author Posted April 28, 2020 1 minute ago, BruT said: when u hold on the error what does it say? i guess you forgot the List<String> ips = new ArrayList<>(); no it doesnt
0 scraw Posted April 28, 2020 Author Posted April 28, 2020 2 minutes ago, BruT said: when u hold on the error what does it say? i guess you forgot the List<String> ips = new ArrayList<>(); yes i did forgot that..but now i have this : public static void AutoReward () { List<String> ips = new ArrayList<>(); Collection <L2PcInstance> pls = L2World.getInstance (). getAllPlayers (); for (L2PcInstance p: pls) { final String ip = p.getClient().getConnection().getInetAddress().getHostAddress(); if (ip.contains(ip)) continue; p.sendMessage ("AutoReward: You got" + Config.AUTO_REWARD_COUNT + "" + Config.NAME_ITEM_REWARD + "for being online"); p.getInventory (). addItem ("", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, null); ips.add(ip); } }
0 BruT Posted April 28, 2020 Posted April 28, 2020 (edited) control+shift+o and import why you keep breaking the code at the first place it was if (ips.contains(ip)) now its if (ip.contains(ip)) ?! Edited April 29, 2020 by BruT
0 scraw Posted April 28, 2020 Author Posted April 28, 2020 (edited) 3 minutes ago, BruT said: control+shift+o and import ok i import them .i go check .sec Edited April 28, 2020 by scraw
0 scraw Posted April 28, 2020 Author Posted April 28, 2020 7 minutes ago, BruT said: control+shift+o and import it isnt award at all now :/
0 scraw Posted April 28, 2020 Author Posted April 28, 2020 12 minutes ago, BruT said: control+shift+o and import why you keep breaking the code at the first place it was if (ips.contains(ip)) now its if (ip.contains(ip)) ????????????????????????? yes ..you are right !!! FIXED THANKS A LOT . you save me from hours of searching.. also thanks to all who replied
Question
scraw
-Hello..i know that noone will answer but i never stop hopping..so get to the point:
-I have an code for auto-reward every shcelude time "X" but it reward all players in L2World no matter if dualbox or whatever.
-That i want is: Players reward by Ip (only one player)
thats what i have (for L2JFROZEN REV 1132):
16 answers to this question
Recommended Posts