Reconnect with a different nickname if the original is already in use
This commit is contained in:
		
							parent
							
								
									96ed8287f4
								
							
						
					
					
						commit
						33a16ac395
					
				| @ -4,6 +4,7 @@ TODO List | |||||||
| 
 | 
 | ||||||
|   - Check for availability of nickname on join, and select a different one |   - Check for availability of nickname on join, and select a different one | ||||||
|      until one is available. |      until one is available. | ||||||
|  |   - Implement more callbacks for `mt_irc.register_callback'. | ||||||
| 
 | 
 | ||||||
| Not TODO List | Not TODO List | ||||||
| ------------- | ------------- | ||||||
|  | |||||||
| @ -1,2 +1,7 @@ | |||||||
| #! /bin/sh | #! /bin/sh | ||||||
| (cd Build && cmake . && make && make pack_mod && rm -fr ~/.minetest/games/testing/mods/irc && cp -fr irc ~/.minetest/games/testing/mods/ ) | cd Build \ | ||||||
|  |     && cmake .. \ | ||||||
|  |     && make \ | ||||||
|  |     && make pack_mod \ | ||||||
|  |     && rm -fr ~/.minetest/games/testing/mods/irc \ | ||||||
|  |     && cp -fr irc ~/.minetest/games/testing/mods/ | ||||||
|  | |||||||
| @ -183,12 +183,29 @@ minetest.register_on_shutdown(function ( ) | |||||||
|     end |     end | ||||||
| end); | end); | ||||||
| 
 | 
 | ||||||
| irc.handlers.on_error = function (from, respond_to) | irc.handlers.on_error = function (...) --( from, respond_to ) | ||||||
|     for k, v in pairs(mt_irc.connected_players) do |     for k, v in pairs(mt_irc.connected_players) do | ||||||
|         if (v) then minetest.chat_send_player(k, text); end |         if (v) then minetest.chat_send_player(k, "IRC: Bot had a network error. Reconnecting in 5 seconds..."); end | ||||||
|  |     end | ||||||
|  |     for _, v in ipairs({...}) do | ||||||
|  |         minetest.chat_send_all(dump(v)); | ||||||
|  |     end | ||||||
|  |     irc.quit("Network error"); | ||||||
|  |     for n = 1, 5 do | ||||||
|  |         irc.poll(); | ||||||
|     end |     end | ||||||
|     mt_irc.got_motd = false; |     mt_irc.got_motd = false; | ||||||
|     mt_irc.connect_ok = false; |     mt_irc.connect_ok = false; | ||||||
|     irc.quit("Ping timeout"); |  | ||||||
|     minetest.after(5, mt_irc.connect); |     minetest.after(5, mt_irc.connect); | ||||||
| end | end | ||||||
|  | 
 | ||||||
|  | irc.handlers.on_err_nicknameinuse = function ( from, respond_to ) | ||||||
|  |     irc.quit("Nick in use"); | ||||||
|  |     for n = 1, 5 do | ||||||
|  |         irc.poll(); | ||||||
|  |     end | ||||||
|  |     mt_irc.got_motd = false; | ||||||
|  |     mt_irc.connect_ok = false; | ||||||
|  |     mt_irc.server_nick = mt_irc.server_nick:sub(1, -2)..math.floor(math.random(10)); | ||||||
|  |     mt_irc.connect(); | ||||||
|  | end | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user