-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMain.cpp
74 lines (71 loc) · 3.65 KB
/
Main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//Example RedRelay client application
#include <iostream>
#include <cstdlib>
#include "RedRelayClient.hpp"
int main(int argc, char** argv){
rc::RedRelayClient Client;
std::cout<<Client.GetVersion()<<std::endl;
Client.Connect(argc>1 ? argv[1] : "lekkit.hopto.org", argc>2 ? atoi(argv[2]) : 6121);
while (true){
Client.Update();
for (const rc::Event&i : Client.Events)
switch (i.Type){
case rc::Event::Error:
std::cout<<i.ErrorMessage()<<std::endl;
break;
case rc::Event::Connected:
std::cout<<"Connected to "<<Client.GetHostAddress()<<", self ID: "<<Client.SelfID()<<", welcome message: "<<i.WelcomeMessage()<<std::endl;
Client.RequestChannelsList();
Client.SetName("peer_"+std::to_string(Client.SelfID()));
break;
case rc::Event::ConnectDenied:
std::cout<<"Connection denied: "<<i.DenyMessage();
break;
case rc::Event::Established:
std::cout<<"UDP handshake completed"<<std::endl;
break;
case rc::Event::Disconnected:
std::cout<<"Disconnected from the server"<<std::endl;
break;
case rc::Event::ListReceived:
std::cout<<"Channels list ("<<i.ChannelsCount()<<" channels):"<<std::endl;
break;
case rc::Event::ListEntry:
std::cout<<"\""<<i.ChannelName()<<"\" ("<<i.PeersCount()<<" peers)"<<std::endl;
break;
case rc::Event::NameSet:
std::cout<<"Name set to \""<<Client.SelfName()<<"\""<<std::endl;
Client.JoinChannel("RedRelay Client example");
break;
case rc::Event::NameDenied:
std::cout<<"Name set denied: "<<i.DenyMessage()<<std::endl;
break;
case rc::Event::ChannelJoin:
std::cout<<"Joined channel \""<<i.ChannelName()<<"\", peers online: "<<Client.GetChannel(i.ChannelID()).GetPeerCount()<<std::endl;
if (Client.GetChannel(i.ChannelID()).GetPeerCount() != 0){
std::cout<<"Peers: ";
for (const rc::Peer&j : Client.GetChannel(i.ChannelID()).GetPeerList())
std::cout<<j.GetName()<<"("<<j.GetID()<<"); ";
std::cout<<std::endl;
}
break;
case rc::Event::ChannelDenied:
std::cout<<"Channel join denied: "<<i.DenyMessage()<<std::endl;
break;
case rc::Event::ChannelLeave:
std::cout<<"You left the channel \""<<i.ChannelName()<<"\""<<std::endl;
break;
case rc::Event::PeerJoined:
std::cout<<"Peer \""<<i.PeerName()<<"\" joined the channel \""<<Client.GetChannel(i.ChannelID()).GetName()<<"\""<<std::endl;
break;
case rc::Event::PeerLeft:
std::cout<<"Peer \""<<i.PeerName()<<"\" left the channel \""<<Client.GetChannel(i.ChannelID()).GetName()<<"\""<<std::endl;
break;
case rc::Event::PeerChangedName:
std::cout<<"Peer \""<<i.PeerName()<<"\" changed name to \""<<Client.GetChannel(i.ChannelID()).GetPeer(i.PeerID()).GetName()<<"\""<<std::endl;
break;
}
Client.Events.clear();
sf::sleep(sf::milliseconds(10));
}
}