Thread: [PI] AFK kick question

Page 1 of 2 12 LastLast
Results 1 to 10 of 14
  1. #1 [PI] AFK kick question 
    Registered Member rockarocka's Avatar
    Join Date
    May 2010
    Posts
    978
    Thanks given
    27
    Thanks received
    7
    Rep Power
    20
    How i could make when player is afk more than 10 minutes he get automaticly kicked out of server? Already searched in google .. Any ideas...


    I need this couse players recieving gameplay just for being afk ..
    Reply With Quote  
     

  2. #2  
    q.q


    Join Date
    Dec 2010
    Posts
    6,519
    Thanks given
    1,072
    Thanks received
    3,535
    Rep Power
    4752
    there's a packet sent from the client to the server for this, sept it's never used
    Reply With Quote  
     

  3. #3  
    Registered Member Nouish's Avatar
    Join Date
    Jun 2011
    Posts
    822
    Thanks given
    142
    Thanks received
    177
    Rep Power
    282
    Packet 202 (?) is 5 minutes, but can of course be avoided. You could make a timer that resets when the server receives the 'clicked somewhere' packet.. I guess the first option is the most often used one.
    Reply With Quote  
     

  4. #4  
    Registered Member
    Join Date
    Feb 2012
    Posts
    368
    Thanks given
    24
    Thanks received
    26
    Rep Power
    14
    Code:
    PacketHandler.packetId[202] = new IdleLogout();
    Same file
    Code:
    import server.Core.Login.IdleLogout;
    IdleLogout.java - you may need to create the file

    Code:
    package server.Core.Login;
    
    import server.Model.Player.Client;
    import server.Model.Player.packetmanager.PacketType;
    
    public class IdleLogout implements PacketType {
    
    	@Override
    	public void processPacket(final Client c, final int packetType,
    			final int packetSize) {
    		// c.logout();
    	}
    }
    Code:
    import org.apache.mina.common.IdleStatus;
    Code:
    @Override
    	public void sessionIdle(final IoSession arg0, final IdleStatus arg1)
    			throws Exception {
    		//arg0.close();
    	}
    
    	@Override
    	public void sessionOpened(final IoSession arg0) throws Exception {
    		arg0.setIdleTime(IdleStatus.BOTH_IDLE, 60);
    		arg0.getFilterChain().addLast("protocolFilter",
    				new ProtocolCodecFilter(new CodecFactory()));
    	}
    Should work

    you may or may not need to edit some client-sided stuff
    Did i help you? All i ask in return is thanks/Rep.



    Quote Originally Posted by rustigold View Post
    iknow, but i fail.
    Reply With Quote  
     

  5. #5  
    Respected Member


    Join Date
    Jan 2009
    Posts
    5,743
    Thanks given
    1,162
    Thanks received
    3,603
    Rep Power
    5000
    Quote Originally Posted by Deception-pkz View Post
    Code:
    PacketHandler.packetId[202] = new IdleLogout();
    Same file
    Code:
    import server.Core.Login.IdleLogout;
    IdleLogout.java - you may need to create the file

    Code:
    package server.Core.Login;
    
    import server.Model.Player.Client;
    import server.Model.Player.packetmanager.PacketType;
    
    public class IdleLogout implements PacketType {
    
    	@Override
    	public void processPacket(final Client c, final int packetType,
    			final int packetSize) {
    		// c.logout();
    	}
    }
    Code:
    import org.apache.mina.common.IdleStatus;
    Code:
    @Override
    	public void sessionIdle(final IoSession arg0, final IdleStatus arg1)
    			throws Exception {
    		//arg0.close();
    	}
    
    	@Override
    	public void sessionOpened(final IoSession arg0) throws Exception {
    		arg0.setIdleTime(IdleStatus.BOTH_IDLE, 60);
    		arg0.getFilterChain().addLast("protocolFilter",
    				new ProtocolCodecFilter(new CodecFactory()));
    	}
    Should work

    you may or may not need to edit some client-sided stuff
    That would be the server has not sent or received anything for 60 seconds. That would not work for being idle as the server and the client is still interacting with each other, when a player is AFK.
    Reply With Quote  
     

  6. #6  
    Respected Member


    kLeptO's Avatar
    Join Date
    Dec 2006
    Age
    28
    Posts
    2,955
    Thanks given
    1,183
    Thanks received
    754
    Rep Power
    3084
    Quote Originally Posted by Deception-pkz View Post
    Code:
    PacketHandler.packetId[202] = new IdleLogout();
    Same file
    Code:
    import server.Core.Login.IdleLogout;
    IdleLogout.java - you may need to create the file

    Code:
    package server.Core.Login;
    
    import server.Model.Player.Client;
    import server.Model.Player.packetmanager.PacketType;
    
    public class IdleLogout implements PacketType {
    
    	@Override
    	public void processPacket(final Client c, final int packetType,
    			final int packetSize) {
    		// c.logout();
    	}
    }
    Code:
    import org.apache.mina.common.IdleStatus;
    Code:
    @Override
    	public void sessionIdle(final IoSession arg0, final IdleStatus arg1)
    			throws Exception {
    		//arg0.close();
    	}
    
    	@Override
    	public void sessionOpened(final IoSession arg0) throws Exception {
    		arg0.setIdleTime(IdleStatus.BOTH_IDLE, 60);
    		arg0.getFilterChain().addLast("protocolFilter",
    				new ProtocolCodecFilter(new CodecFactory()));
    	}
    Should work

    you may or may not need to edit some client-sided stuff
    Upper-case letters in package names.
    Reply With Quote  
     

  7. #7  
    Registered Member rockarocka's Avatar
    Join Date
    May 2010
    Posts
    978
    Thanks given
    27
    Thanks received
    7
    Rep Power
    20
    so i still need help
    Reply With Quote  
     

  8. #8  
    Registered Member
    Join Date
    Feb 2012
    Posts
    368
    Thanks given
    24
    Thanks received
    26
    Rep Power
    14
    Quote Originally Posted by sKyrO View Post
    Upper-case letters in package names.
    Better then no attempt

    Still learning, dont hate.

    IdleLogout.java

    Code:
    case 202:
    			if (c.underAttackBy > 0 || c.underAttackBy2 > 0) {
    				return;
    			} else {
    				c.logout();
    				Misc.println(c.playerName + " is idle, kicked.");
    			}
    			break;
    Did i help you? All i ask in return is thanks/Rep.



    Quote Originally Posted by rustigold View Post
    iknow, but i fail.
    Reply With Quote  
     

  9. #9  
    Registered Member rockarocka's Avatar
    Join Date
    May 2010
    Posts
    978
    Thanks given
    27
    Thanks received
    7
    Rep Power
    20
    Still need help!
    Reply With Quote  
     

  10. #10  
    Registered Member
    Freezia's Avatar
    Join Date
    Feb 2011
    Posts
    6,013
    Thanks given
    1,147
    Thanks received
    758
    Rep Power
    1311
    I would like this too


    Host your RUNESCAPE PRIVATE SERVER on the cheapest and flagship provider on Rune-Server! Now equipped with DDOS Protection!.


    Reply With Quote  
     

Page 1 of 2 12 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. ::afk
    By P_E_E_P in forum Requests
    Replies: 6
    Last Post: 01-01-2011, 10:11 AM
  2. Replies: 4
    Last Post: 12-21-2010, 09:36 PM
  3. Replies: 4
    Last Post: 12-19-2010, 11:46 PM
  4. Replies: 12
    Last Post: 07-05-2010, 05:07 PM
  5. Delta AFK
    By miditale in forum Help
    Replies: 3
    Last Post: 10-05-2009, 01:24 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •