author | koda |
Wed, 14 Sep 2011 22:39:39 +0200 | |
changeset 5906 | ed9676dc8cb4 |
parent 5861 | b102aa6a853e |
child 5959 | 2e5182c5617a |
permissions | -rw-r--r-- |
315 | 1 |
/* |
1066 | 2 |
* Hedgewars, a free turn based strategy game |
4976 | 3 |
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com> |
4 |
* Copyright (c) 2008-2011 Andrey Korotaev <unC0Rr@gmail.com> |
|
315 | 5 |
* |
6 |
* This program is free software; you can redistribute it and/or modify |
|
7 |
* it under the terms of the GNU General Public License as published by |
|
8 |
* the Free Software Foundation; version 2 of the License |
|
9 |
* |
|
10 |
* This program is distributed in the hope that it will be useful, |
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 |
* GNU General Public License for more details. |
|
14 |
* |
|
15 |
* You should have received a copy of the GNU General Public License |
|
16 |
* along with this program; if not, write to the Free Software |
|
17 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
|
18 |
*/ |
|
19 |
||
1189
f66cdbbfc4b6
Fix compile under Ubuntu (why it compiles everywhere else?)
unc0rr
parents:
1083
diff
changeset
|
20 |
#include <QDebug> |
1844 | 21 |
#include <QInputDialog> |
1905 | 22 |
#include <QCryptographicHash> |
1844 | 23 |
|
697 | 24 |
#include "hwconsts.h" |
315 | 25 |
#include "newnetclient.h" |
26 |
#include "proto.h" |
|
27 |
#include "gameuiconfig.h" |
|
28 |
#include "game.h" |
|
334 | 29 |
#include "gamecfgwidget.h" |
347 | 30 |
#include "teamselect.h" |
1878
b3b277d2b891
own md5 function, no qca2 dependancy (patch by nemo with Qt adaptation by me)
unc0rr
parents:
1875
diff
changeset
|
31 |
#include "misc.h" |
4958
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
32 |
/* only to get the ignoreList from the chat widget */ |
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
33 |
#include "hwform.h" |
5204 | 34 |
#include "pageroomslist.h" |
4958
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
35 |
#include "chatwidget.h" |
315 | 36 |
|
1082 | 37 |
char delimeter='\n'; |
315 | 38 |
|
339
7535ab6c3820
Run game message added, team and config info provided for net game
displacer
parents:
338
diff
changeset
|
39 |
HWNewNet::HWNewNet(GameUIConfig * config, GameCFGWidget* pGameCFGWidget, TeamSelWidget* pTeamSelWidget) : |
334 | 40 |
config(config), |
41 |
m_pGameCFGWidget(pGameCFGWidget), |
|
339
7535ab6c3820
Run game message added, team and config info provided for net game
displacer
parents:
338
diff
changeset
|
42 |
m_pTeamSelWidget(pTeamSelWidget), |
383 | 43 |
isChief(false), |
1313
f4c54e9e1b8c
- Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents:
1311
diff
changeset
|
44 |
m_game_connected(false), |
f4c54e9e1b8c
- Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents:
1311
diff
changeset
|
45 |
loginStep(0), |
f4c54e9e1b8c
- Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents:
1311
diff
changeset
|
46 |
netClientState(0) |
315 | 47 |
{ |
1898
f0ab0c77946d
Send scheme data over net (but recieving part isn't implemented yet)
unc0rr
parents:
1879
diff
changeset
|
48 |
// socket stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
49 |
connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
50 |
connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
51 |
connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
52 |
connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
53 |
SLOT(displayError(QAbstractSocket::SocketError))); |
1898
f0ab0c77946d
Send scheme data over net (but recieving part isn't implemented yet)
unc0rr
parents:
1879
diff
changeset
|
54 |
|
f0ab0c77946d
Send scheme data over net (but recieving part isn't implemented yet)
unc0rr
parents:
1879
diff
changeset
|
55 |
// config stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
56 |
connect(this, SIGNAL(paramChanged(const QString &, const QStringList &)), pGameCFGWidget, SLOT(setParam(const QString &, const QStringList &))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
57 |
connect(pGameCFGWidget, SIGNAL(paramChanged(const QString &, const QStringList &)), this, SLOT(onParamChanged(const QString &, const QStringList &))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
58 |
connect(this, SIGNAL(configAsked()), pGameCFGWidget, SLOT(fullNetConfig())); |
315 | 59 |
} |
60 |
||
1526
18e412dd7d50
Send QUIT message to server when netclient object is destroyed
unc0rr
parents:
1512
diff
changeset
|
61 |
HWNewNet::~HWNewNet() |
18e412dd7d50
Send QUIT message to server when netclient object is destroyed
unc0rr
parents:
1512
diff
changeset
|
62 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
63 |
if (m_game_connected) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
64 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
65 |
RawSendNet(QString("QUIT%1%2").arg(delimeter).arg("User quit")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
66 |
emit Disconnected(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
67 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
68 |
NetSocket.flush(); |
1526
18e412dd7d50
Send QUIT message to server when netclient object is destroyed
unc0rr
parents:
1512
diff
changeset
|
69 |
} |
18e412dd7d50
Send QUIT message to server when netclient object is destroyed
unc0rr
parents:
1512
diff
changeset
|
70 |
|
315 | 71 |
void HWNewNet::Connect(const QString & hostName, quint16 port, const QString & nick) |
72 |
{ |
|
5390
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
73 |
mynick = nick; |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
74 |
while (mynick.isEmpty()) { |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
75 |
mynick = QInputDialog::getText(m_pGameCFGWidget, |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
76 |
QObject::tr("Nickname"), |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
77 |
QObject::tr("Please enter your nickname"), |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
78 |
QLineEdit::Normal, |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
79 |
QDir::home().dirName()); |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
80 |
config->setValue("net/nick",mynick); |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
81 |
config->updNetNick(); |
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
82 |
} |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
83 |
myhost = hostName + QString(":%1").arg(port); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
84 |
NetSocket.connectToHost(hostName, port); |
315 | 85 |
} |
86 |
||
87 |
void HWNewNet::Disconnect() |
|
88 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
89 |
if (m_game_connected) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
90 |
RawSendNet(QString("QUIT%1%2").arg(delimeter).arg("User quit")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
91 |
m_game_connected = false; |
2377 | 92 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
93 |
NetSocket.disconnectFromHost(); |
315 | 94 |
} |
95 |
||
1082 | 96 |
void HWNewNet::CreateRoom(const QString & room) |
315 | 97 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
98 |
if(netClientState != 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
99 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
100 |
qWarning("Illegal try to create room!"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
101 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
102 |
} |
2377 | 103 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
104 |
myroom = room; |
2821 | 105 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
106 |
RawSendNet(QString("CREATE_ROOM%1%2").arg(delimeter).arg(room)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
107 |
isChief = true; |
1082 | 108 |
} |
109 |
||
110 |
void HWNewNet::JoinRoom(const QString & room) |
|
111 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
112 |
if(netClientState != 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
113 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
114 |
qWarning("Illegal try to join room!"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
115 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
116 |
} |
2377 | 117 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
118 |
myroom = room; |
2821 | 119 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
120 |
RawSendNet(QString("JOIN_ROOM%1%2").arg(delimeter).arg(room)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
121 |
isChief = false; |
315 | 122 |
} |
123 |
||
124 |
void HWNewNet::AddTeam(const HWTeam & team) |
|
125 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
126 |
QString cmd = QString("ADD_TEAM") + delimeter + |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
127 |
team.TeamName + delimeter + |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
128 |
team.teamColor.name() + delimeter + |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
129 |
team.Grave + delimeter + |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
130 |
team.Fort + delimeter + |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
131 |
team.Voicepack + delimeter + |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
132 |
team.Flag + delimeter + |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
133 |
QString::number(team.difficulty); |
1245
d2eca4a053f5
Send hats info via net. Hats implementation complete now.
unc0rr
parents:
1189
diff
changeset
|
134 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
135 |
for(int i = 0; i < 8; ++i) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
136 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
137 |
cmd.append(delimeter); |
3344 | 138 |
cmd.append(team.Hedgehogs[i].Name); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
139 |
cmd.append(delimeter); |
3344 | 140 |
cmd.append(team.Hedgehogs[i].Hat); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
141 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
142 |
RawSendNet(cmd); |
315 | 143 |
} |
144 |
||
347 | 145 |
void HWNewNet::RemoveTeam(const HWTeam & team) |
146 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
147 |
RawSendNet(QString("REMOVE_TEAM") + delimeter + team.TeamName); |
347 | 148 |
} |
149 |
||
1404 | 150 |
void HWNewNet::ToggleReady() |
315 | 151 |
{ |
1404 | 152 |
RawSendNet(QString("TOGGLE_READY")); |
315 | 153 |
} |
154 |
||
155 |
void HWNewNet::SendNet(const QByteArray & buf) |
|
156 |
{ |
|
157 |
QString msg = QString(buf.toBase64()); |
|
158 |
||
1866 | 159 |
RawSendNet(QString("EM%1%2").arg(delimeter).arg(msg)); |
315 | 160 |
} |
161 |
||
162 |
void HWNewNet::RawSendNet(const QString & str) |
|
163 |
{ |
|
164 |
RawSendNet(str.toUtf8()); |
|
165 |
} |
|
166 |
||
167 |
void HWNewNet::RawSendNet(const QByteArray & buf) |
|
168 |
{ |
|
3555 | 169 |
qDebug() << "Client: " << QString(buf).split("\n"); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
170 |
NetSocket.write(buf); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
171 |
NetSocket.write("\n\n", 2); |
315 | 172 |
} |
173 |
||
174 |
void HWNewNet::ClientRead() |
|
175 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
176 |
while (NetSocket.canReadLine()) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
177 |
QString s = QString::fromUtf8(NetSocket.readLine()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
178 |
if (s.endsWith('\n')) s.chop(1); |
1082 | 179 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
180 |
if (s.size() == 0) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
181 |
ParseCmd(cmdbuf); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
182 |
cmdbuf.clear(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
183 |
} else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
184 |
cmdbuf << s; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
185 |
} |
315 | 186 |
} |
187 |
||
188 |
void HWNewNet::OnConnect() |
|
189 |
{ |
|
190 |
} |
|
191 |
||
192 |
void HWNewNet::OnDisconnect() |
|
193 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
194 |
if(m_game_connected) emit Disconnected(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
195 |
m_game_connected = false; |
315 | 196 |
} |
197 |
||
198 |
void HWNewNet::displayError(QAbstractSocket::SocketError socketError) |
|
199 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
200 |
emit Disconnected(); |
5230
c088be28d5e8
Set m_game_connected to false after emitting Disconnected(). This fixes a bug in a case such that when entering an invalid password, the game would bring you back to the main menu.
Zorg <zorgiepoo@gmail.com>
parents:
5229
diff
changeset
|
201 |
m_game_connected = false; |
2377 | 202 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
203 |
switch (socketError) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
204 |
case QAbstractSocket::RemoteHostClosedError: |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
205 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
206 |
case QAbstractSocket::HostNotFoundError: |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
207 |
emit showMessage(tr("The host was not found. Please check the host name and port settings.")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
208 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
209 |
case QAbstractSocket::ConnectionRefusedError: |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
210 |
emit showMessage(tr("Connection refused")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
211 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
212 |
default: |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
213 |
emit showMessage(NetSocket.errorString()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
214 |
} |
315 | 215 |
} |
216 |
||
1082 | 217 |
void HWNewNet::ParseCmd(const QStringList & lst) |
315 | 218 |
{ |
3555 | 219 |
qDebug() << "Server: " << lst; |
1305 | 220 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
221 |
if(!lst.size()) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
222 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
223 |
qWarning("Net client: Bad message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
224 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
225 |
} |
320 | 226 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
227 |
if (lst[0] == "NICK") |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
228 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
229 |
mynick = lst[1]; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
230 |
return ; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
231 |
} |
1308
d5dcd6cfa5e2
Fix another server failure (when second client in room disconnects)
unc0rr
parents:
1307
diff
changeset
|
232 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
233 |
if (lst[0] == "PROTO") |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
234 |
return ; |
2108 | 235 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
236 |
if (lst[0] == "ERROR") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
237 |
if (lst.size() == 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
238 |
emit showMessage("Error: " + lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
239 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
240 |
emit showMessage("Unknown error"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
241 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
242 |
} |
315 | 243 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
244 |
if (lst[0] == "WARNING") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
245 |
if (lst.size() == 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
246 |
emit showMessage("Warning: " + lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
247 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
248 |
emit showMessage("Unknown warning"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
249 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
250 |
} |
1307 | 251 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
252 |
if (lst[0] == "CONNECTED") { |
4973
53411a26df7e
Add server version (which is separate from protocol version) and a check in frontend for a new enough server (currently only qWarning)
unc0rr
parents:
4963
diff
changeset
|
253 |
if(lst.size() < 3 || lst[2].toInt() < cMinServerVersion) |
53411a26df7e
Add server version (which is separate from protocol version) and a check in frontend for a new enough server (currently only qWarning)
unc0rr
parents:
4963
diff
changeset
|
254 |
{ |
53411a26df7e
Add server version (which is separate from protocol version) and a check in frontend for a new enough server (currently only qWarning)
unc0rr
parents:
4963
diff
changeset
|
255 |
// TODO: Warn user, disconnect |
53411a26df7e
Add server version (which is separate from protocol version) and a check in frontend for a new enough server (currently only qWarning)
unc0rr
parents:
4963
diff
changeset
|
256 |
qWarning() << "Server too old"; |
53411a26df7e
Add server version (which is separate from protocol version) and a check in frontend for a new enough server (currently only qWarning)
unc0rr
parents:
4963
diff
changeset
|
257 |
} |
53411a26df7e
Add server version (which is separate from protocol version) and a check in frontend for a new enough server (currently only qWarning)
unc0rr
parents:
4963
diff
changeset
|
258 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
259 |
RawSendNet(QString("NICK%1%2").arg(delimeter).arg(mynick)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
260 |
RawSendNet(QString("PROTO%1%2").arg(delimeter).arg(*cProtoVer)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
261 |
netClientState = 1; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
262 |
m_game_connected = true; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
263 |
emit adminAccess(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
264 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
265 |
} |
315 | 266 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
267 |
if (lst[0] == "PING") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
268 |
if (lst.size() > 1) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
269 |
RawSendNet(QString("PONG%1%2").arg(delimeter).arg(lst[1])); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
270 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
271 |
RawSendNet(QString("PONG")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
272 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
273 |
} |
1462 | 274 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
275 |
if (lst[0] == "ROOMS") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
276 |
QStringList tmp = lst; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
277 |
tmp.removeFirst(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
278 |
emit roomsList(tmp); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
279 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
280 |
} |
1313
f4c54e9e1b8c
- Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents:
1311
diff
changeset
|
281 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
282 |
if (lst[0] == "SERVER_MESSAGE") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
283 |
if(lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
284 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
285 |
qWarning("Net: Empty SERVERMESSAGE message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
286 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
287 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
288 |
emit serverMessage(lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
289 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
290 |
} |
1377 | 291 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
292 |
if (lst[0] == "CHAT") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
293 |
if(lst.size() < 3) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
294 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
295 |
qWarning("Net: Empty CHAT message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
296 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
297 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
298 |
if (netClientState == 2) |
4897
11598e7aa7e6
make names in chats clickable. still color adjustments needed; and testing
sheepluva
parents:
4879
diff
changeset
|
299 |
emit chatStringLobby(lst[1], HWProto::formatChatMsgForFrontend(lst[2])); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
300 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
301 |
emit chatStringFromNet(HWProto::formatChatMsg(lst[1], lst[2])); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
302 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
303 |
} |
453 | 304 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
305 |
if (lst[0] == "INFO") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
306 |
if(lst.size() < 5) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
307 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
308 |
qWarning("Net: Malformed INFO message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
309 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
310 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
311 |
QStringList tmp = lst; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
312 |
tmp.removeFirst(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
313 |
if (netClientState == 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
314 |
emit chatStringLobby(tmp.join("\n").prepend('\x01')); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
315 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
316 |
emit chatStringFromNet(tmp.join("\n").prepend('\x01')); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
317 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
318 |
} |
1577 | 319 |
|
3283 | 320 |
if (lst[0] == "SERVER_VARS") { |
321 |
QStringList tmp = lst; |
|
322 |
tmp.removeFirst(); |
|
323 |
while (tmp.size() >= 2) |
|
324 |
{ |
|
325 |
if(tmp[0] == "MOTD_NEW") emit serverMessageNew(tmp[1]); |
|
326 |
else if(tmp[0] == "MOTD_OLD") emit serverMessageOld(tmp[1]); |
|
327 |
else if(tmp[0] == "LATEST_PROTO") emit latestProtocolVar(tmp[1].toInt()); |
|
3697 | 328 |
|
3283 | 329 |
tmp.removeFirst(); |
330 |
tmp.removeFirst(); |
|
331 |
} |
|
332 |
return; |
|
333 |
} |
|
334 |
||
4917
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
335 |
if (lst[0] == "CLIENT_FLAGS") |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
336 |
{ |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
337 |
if(lst.size() < 3 || lst[1].size() < 2) |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
338 |
{ |
4917
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
339 |
qWarning("Net: Malformed CLIENT_FLAGS message"); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
340 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
341 |
} |
4917
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
342 |
|
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
343 |
QString flags = lst[1]; |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
344 |
bool setFlag = flags[0] == '+'; |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
345 |
|
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
346 |
while(flags.size() > 1) |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
347 |
{ |
4917
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
348 |
flags.remove(0, 1); |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
349 |
char c = flags[0].toAscii(); |
2377 | 350 |
|
4917
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
351 |
switch(c) |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
352 |
{ |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
353 |
case 'r': |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
354 |
{ |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
355 |
for(int i = 2; i < lst.size(); ++i) |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
356 |
{ |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
357 |
if (lst[i] == mynick) |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
358 |
emit setMyReadyStatus(setFlag); |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
359 |
emit setReadyStatus(lst[i], setFlag); |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
360 |
} |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
361 |
} |
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
362 |
} |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
363 |
} |
4917
8ff92bdc9f98
Convert READY and NOT_READY messages to CLIENT_FLAGS message
unc0rr
parents:
4908
diff
changeset
|
364 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
365 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
366 |
} |
1405 | 367 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
368 |
if (lst[0] == "ADD_TEAM") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
369 |
if(lst.size() != 24) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
370 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
371 |
qWarning("Net: Bad ADDTEAM message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
372 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
373 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
374 |
QStringList tmp = lst; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
375 |
tmp.removeFirst(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
376 |
emit AddNetTeam(tmp); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
377 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
378 |
} |
315 | 379 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
380 |
if (lst[0] == "REMOVE_TEAM") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
381 |
if(lst.size() != 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
382 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
383 |
qWarning("Net: Bad REMOVETEAM message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
384 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
385 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
386 |
m_pTeamSelWidget->removeNetTeam(HWTeam(lst[1])); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
387 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
388 |
} |
347 | 389 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
390 |
if(lst[0] == "ROOMABANDONED") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
391 |
netClientState = 2; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
392 |
emit showMessage(HWNewNet::tr("Room destroyed")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
393 |
emit LeftRoom(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
394 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
395 |
} |
1592
5ee77ee470a6
Start converting network protocol to no-disconnecting religion
unc0rr
parents:
1591
diff
changeset
|
396 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
397 |
if(lst[0] == "KICKED") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
398 |
netClientState = 2; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
399 |
emit showMessage(HWNewNet::tr("You got kicked")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
400 |
emit LeftRoom(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
401 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
402 |
} |
1879 | 403 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
404 |
if(lst[0] == "JOINED") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
405 |
if(lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
406 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
407 |
qWarning("Net: Bad JOINED message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
408 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
409 |
} |
2377 | 410 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
411 |
for(int i = 1; i < lst.size(); ++i) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
412 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
413 |
if (lst[i] == mynick) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
414 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
415 |
netClientState = 3; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
416 |
emit EnteredGame(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
417 |
emit roomMaster(isChief); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
418 |
if (isChief) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
419 |
emit configAsked(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
420 |
} |
4963
59c2489afcbd
add friendslist whitelist to autokick, and more merging
nemo
parents:
4958
diff
changeset
|
421 |
if (lst[i] != mynick && isChief && config->Form->ui.pageRoomsList->chatWidget->ignoreList.contains(lst[i], Qt::CaseInsensitive) && !config->Form->ui.pageRoomsList->chatWidget->friendsList.contains(lst[i], Qt::CaseInsensitive)) |
4958
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
422 |
{ |
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
423 |
kickPlayer(lst[i]); |
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
424 |
} |
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
425 |
else |
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
426 |
{ |
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
427 |
emit nickAdded(lst[i], isChief && (lst[i] != mynick)); |
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
428 |
emit chatStringFromNet(tr("%1 *** %2 has joined the room").arg('\x03').arg(lst[i])); |
84afe376a3b3
Autokick ignored players from game room on join. Needs testing.
nemo
parents:
4917
diff
changeset
|
429 |
} |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
430 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
431 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
432 |
} |
455 | 433 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
434 |
if(lst[0] == "LOBBY:JOINED") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
435 |
if(lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
436 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
437 |
qWarning("Net: Bad JOINED message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
438 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
439 |
} |
2377 | 440 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
441 |
for(int i = 1; i < lst.size(); ++i) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
442 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
443 |
if (lst[i] == mynick) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
444 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
445 |
netClientState = 2; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
446 |
RawSendNet(QString("LIST")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
447 |
emit Connected(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
448 |
} |
1838
00a5fc50aa43
Use another event to change state from 'logging in' to 'lobby'
unc0rr
parents:
1829
diff
changeset
|
449 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
450 |
emit nickAddedLobby(lst[i], false); |
4897
11598e7aa7e6
make names in chats clickable. still color adjustments needed; and testing
sheepluva
parents:
4879
diff
changeset
|
451 |
emit chatStringLobby(lst[i], tr("%1 *** %2 has joined").arg('\x03').arg("|nick|")); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
452 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
453 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
454 |
} |
1566
6b63c75fdc68
Start work on lobby: add/remove nick from the list on join/quit
unc0rr
parents:
1560
diff
changeset
|
455 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
456 |
if(lst[0] == "LEFT") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
457 |
if(lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
458 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
459 |
qWarning("Net: Bad LEFT message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
460 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
461 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
462 |
emit nickRemoved(lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
463 |
if (lst.size() < 3) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
464 |
emit chatStringFromNet(tr("%1 *** %2 has left").arg('\x03').arg(lst[1])); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
465 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
466 |
emit chatStringFromNet(tr("%1 *** %2 has left (%3)").arg('\x03').arg(lst[1], lst[2])); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
467 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
468 |
} |
461 | 469 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
470 |
if(lst[0] == "ROOM") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
471 |
if(lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
472 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
473 |
qWarning("Net: Bad ROOM message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
474 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
475 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
476 |
RawSendNet(QString("LIST")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
477 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
478 |
} |
1591 | 479 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
480 |
if(lst[0] == "LOBBY:LEFT") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
481 |
if(lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
482 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
483 |
qWarning("Net: Bad LOBBY:LEFT message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
484 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
485 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
486 |
emit nickRemovedLobby(lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
487 |
if (lst.size() < 3) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
488 |
emit chatStringLobby(tr("%1 *** %2 has left").arg('\x03').arg(lst[1])); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
489 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
490 |
emit chatStringLobby(tr("%1 *** %2 has left (%3)").arg('\x03').arg(lst[1], lst[2])); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
491 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
492 |
} |
1566
6b63c75fdc68
Start work on lobby: add/remove nick from the list on join/quit
unc0rr
parents:
1560
diff
changeset
|
493 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
494 |
if (lst[0] == "RUN_GAME") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
495 |
netClientState = 5; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
496 |
emit AskForRunGame(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
497 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
498 |
} |
339
7535ab6c3820
Run game message added, team and config info provided for net game
displacer
parents:
338
diff
changeset
|
499 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
500 |
if (lst[0] == "ASKPASSWORD") { |
3246
ab99a0f0b485
* fixing bug #156: Cancel button on password request works now.
sheepluva
parents:
3236
diff
changeset
|
501 |
bool ok = false; |
2138 | 502 |
int passLength = config->value("net/passwordlength", 0).toInt(); |
2335 | 503 |
QString hash = config->value("net/passwordhash", "").toString(); |
5229
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
504 |
|
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
505 |
// If the password is blank, ask the user to enter one in |
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
506 |
if (passLength == 0) |
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
507 |
{ |
5390
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
508 |
QString password = QInputDialog::getText(m_pGameCFGWidget, tr("Password"), tr("Your nickname %1 is\nregistered on Hedgewars.org\nPlease provide your password below\nor pick another nickname in game config:").arg(mynick), QLineEdit::Password, passLength==0?NULL:QString(passLength,'\0'), &ok); |
3697 | 509 |
|
5229
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
510 |
if (!ok) { |
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
511 |
Disconnect(); |
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
512 |
emit Disconnected(); |
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
513 |
return; |
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
514 |
} |
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
515 |
|
2138 | 516 |
hash = QCryptographicHash::hash(password.toLatin1(), QCryptographicHash::Md5).toHex(); |
517 |
config->setValue("net/passwordhash", hash); |
|
518 |
config->setValue("net/passwordlength", password.size()); |
|
5229
148d581b17ab
Attempt to fix issue 125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
Zorg <zorgiepoo@gmail.com>
parents:
5204
diff
changeset
|
519 |
config->setNetPasswordLength(password.size()); |
2138 | 520 |
} |
1878
b3b277d2b891
own md5 function, no qca2 dependancy (patch by nemo with Qt adaptation by me)
unc0rr
parents:
1875
diff
changeset
|
521 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
522 |
RawSendNet(QString("PASSWORD%1%2").arg(delimeter).arg(hash)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
523 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
524 |
} |
1841
fba7210b438b
Retrieve client password from web database and ask for it
unc0rr
parents:
1838
diff
changeset
|
525 |
|
4879
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
526 |
if (lst[0] == "NOTICE") { |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
527 |
if(lst.size() < 2) |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
528 |
{ |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
529 |
qWarning("Net: Bad NOTICE message"); |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
530 |
return; |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
531 |
} |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
532 |
|
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
533 |
bool ok; |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
534 |
int n = lst[1].toInt(&ok); |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
535 |
if(!ok) |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
536 |
{ |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
537 |
qWarning("Net: Bad NOTICE message"); |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
538 |
return; |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
539 |
} |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
540 |
|
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
541 |
handleNotice(n); |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
542 |
|
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
543 |
return; |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
544 |
} |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
545 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
546 |
if (lst[0] == "TEAM_ACCEPTED") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
547 |
if (lst.size() != 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
548 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
549 |
qWarning("Net: Bad TEAM_ACCEPTED message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
550 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
551 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
552 |
m_pTeamSelWidget->changeTeamStatus(lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
553 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
554 |
} |
354
60e4af0a4375
network to local teams map, addteams from server before team config bug, fixed some segfaults
displacer
parents:
352
diff
changeset
|
555 |
|
1333
b0b0510eb82d
- Fix a bug with chosen map (new clinet gets wrong information)
unc0rr
parents:
1330
diff
changeset
|
556 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
557 |
if (lst[0] == "CFG") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
558 |
if(lst.size() < 3) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
559 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
560 |
qWarning("Net: Bad CFG message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
561 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
562 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
563 |
QStringList tmp = lst; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
564 |
tmp.removeFirst(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
565 |
tmp.removeFirst(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
566 |
if (lst[1] == "SCHEME") |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
567 |
emit netSchemeConfig(tmp); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
568 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
569 |
emit paramChanged(lst[1], tmp); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
570 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
571 |
} |
329
4c3aad46baa5
Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents:
322
diff
changeset
|
572 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
573 |
if (lst[0] == "HH_NUM") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
574 |
if (lst.size() != 3) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
575 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
576 |
qWarning("Net: Bad TEAM_ACCEPTED message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
577 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
578 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
579 |
HWTeam tmptm(lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
580 |
tmptm.numHedgehogs = lst[2].toUInt(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
581 |
emit hhnumChanged(tmptm); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
582 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
583 |
} |
329
4c3aad46baa5
Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents:
322
diff
changeset
|
584 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
585 |
if (lst[0] == "TEAM_COLOR") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
586 |
if (lst.size() != 3) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
587 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
588 |
qWarning("Net: Bad TEAM_COLOR message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
589 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
590 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
591 |
HWTeam tmptm(lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
592 |
tmptm.teamColor = QColor(lst[2]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
593 |
emit teamColorChanged(tmptm); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
594 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
595 |
} |
1330 | 596 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
597 |
if (lst[0] == "EM") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
598 |
if(lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
599 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
600 |
qWarning("Net: Bad EM message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
601 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
602 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
603 |
for(int i = 1; i < lst.size(); ++i) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
604 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
605 |
QByteArray em = QByteArray::fromBase64(lst[i].toAscii()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
606 |
emit FromNet(em); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
607 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
608 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
609 |
} |
573 | 610 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
611 |
if (lst[0] == "BYE") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
612 |
if (lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
613 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
614 |
qWarning("Net: Bad BYE message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
615 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
616 |
} |
5861 | 617 |
if (lst[1] == "Authentication failed") |
618 |
{ |
|
619 |
// Set the password blank if case the user tries to join and enter his password again |
|
620 |
config->setValue("net/passwordlength", 0); |
|
621 |
config->setNetPasswordLength(0); |
|
622 |
} |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
623 |
emit showMessage(HWNewNet::tr("Quit reason: ") + lst[1]); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
624 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
625 |
} |
1512
43742041c211
- Don't send 'Bad param' msg, as the only reason of it is just some lag
unc0rr
parents:
1475
diff
changeset
|
626 |
|
1856
e71dbf958c87
Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents:
1844
diff
changeset
|
627 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
628 |
if (lst[0] == "ADMIN_ACCESS") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
629 |
emit adminAccess(true); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
630 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
631 |
} |
1856
e71dbf958c87
Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents:
1844
diff
changeset
|
632 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
633 |
if (lst[0] == "ROOM_CONTROL_ACCESS") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
634 |
if (lst.size() < 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
635 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
636 |
qWarning("Net: Bad BYE message"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
637 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
638 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
639 |
bool b = lst[1] != "0"; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
640 |
m_pGameCFGWidget->setEnabled(b); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
641 |
m_pTeamSelWidget->setInteractivity(b); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
642 |
isChief = b; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
643 |
emit roomMaster(isChief); |
2344
63b3da03ce46
Fix frontend ROOM_CONTROL_ACCESS protocol command handler
unc0rr
parents:
2340
diff
changeset
|
644 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
645 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
646 |
} |
2340
3b35fd5f67c7
Fix a bug when you are unable to do anything in lobby when room is closed during round
unc0rr
parents:
2335
diff
changeset
|
647 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
648 |
qWarning() << "Net: Unknown message:" << lst; |
315 | 649 |
} |
650 |
||
352 | 651 |
void HWNewNet::onHedgehogsNumChanged(const HWTeam& team) |
652 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
653 |
if (isChief) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
654 |
RawSendNet(QString("HH_NUM%1%2%1%3") |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
655 |
.arg(delimeter) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
656 |
.arg(team.TeamName) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
657 |
.arg(team.numHedgehogs)); |
352 | 658 |
} |
659 |
||
372 | 660 |
void HWNewNet::onTeamColorChanged(const HWTeam& team) |
661 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
662 |
if (isChief) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
663 |
RawSendNet(QString("TEAM_COLOR%1%2%1%3") |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
664 |
.arg(delimeter) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
665 |
.arg(team.TeamName) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
666 |
.arg(team.teamColor.name())); |
372 | 667 |
} |
668 |
||
1873
815a3ff1fe4b
Start refactoring some things. Frontend becomes temporarily unusable for network game
unc0rr
parents:
1866
diff
changeset
|
669 |
void HWNewNet::onParamChanged(const QString & param, const QStringList & value) |
1782
e7589e37a6d6
Options for bonus box probability tuning and number of turn until sudden death
unc0rr
parents:
1742
diff
changeset
|
670 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
671 |
if (isChief) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
672 |
RawSendNet( |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
673 |
QString("CFG%1%2%1%3") |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
674 |
.arg(delimeter) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
675 |
.arg(param) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
676 |
.arg(value.join(QString(delimeter))) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
677 |
); |
1797 | 678 |
} |
679 |
||
453 | 680 |
void HWNewNet::chatLineToNet(const QString& str) |
681 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
682 |
if(str != "") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
683 |
RawSendNet(QString("CHAT") + delimeter + str); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
684 |
emit(chatStringFromMe(HWProto::formatChatMsg(mynick, str))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
685 |
} |
1568 | 686 |
} |
687 |
||
688 |
void HWNewNet::chatLineToLobby(const QString& str) |
|
689 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
690 |
if(str != "") { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
691 |
RawSendNet(QString("CHAT") + delimeter + str); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
692 |
emit(chatStringFromMeLobby(HWProto::formatChatMsg(mynick, str))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
693 |
} |
453 | 694 |
} |
1315 | 695 |
|
2403 | 696 |
void HWNewNet::SendTeamMessage(const QString& str) |
697 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
698 |
RawSendNet(QString("TEAMCHAT") + delimeter + str); |
2403 | 699 |
} |
700 |
||
1315 | 701 |
void HWNewNet::askRoomsList() |
702 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
703 |
if(netClientState != 2) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
704 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
705 |
qWarning("Illegal try to get rooms list!"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
706 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
707 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
708 |
RawSendNet(QString("LIST")); |
1315 | 709 |
} |
1339 | 710 |
|
2821 | 711 |
int HWNewNet::getClientState() |
712 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
713 |
return netClientState; |
2821 | 714 |
} |
715 |
||
716 |
QString HWNewNet::getNick() |
|
717 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
718 |
return mynick; |
2821 | 719 |
} |
720 |
||
721 |
QString HWNewNet::getRoom() |
|
722 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
723 |
return myroom; |
2821 | 724 |
} |
725 |
||
726 |
QString HWNewNet::getHost() |
|
727 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
728 |
return myhost; |
2821 | 729 |
} |
730 |
||
1339 | 731 |
bool HWNewNet::isRoomChief() |
732 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
733 |
return isChief; |
1339 | 734 |
} |
1344
4004e597f1bf
Clients send roundfinished message to server when the round is over
unc0rr
parents:
1339
diff
changeset
|
735 |
|
4908
99d6797b7ff4
Frontend sends ROUNDFINISHED with information about whether the round was played till end (will be needed for stats)
unc0rr
parents:
4897
diff
changeset
|
736 |
void HWNewNet::gameFinished(bool correctly) |
1344
4004e597f1bf
Clients send roundfinished message to server when the round is over
unc0rr
parents:
1339
diff
changeset
|
737 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
738 |
if (netClientState == 5) netClientState = 3; |
4908
99d6797b7ff4
Frontend sends ROUNDFINISHED with information about whether the round was played till end (will be needed for stats)
unc0rr
parents:
4897
diff
changeset
|
739 |
RawSendNet(QString("ROUNDFINISHED%1%2").arg(delimeter).arg(correctly ? "1" : "0")); |
1344
4004e597f1bf
Clients send roundfinished message to server when the round is over
unc0rr
parents:
1339
diff
changeset
|
740 |
} |
1378 | 741 |
|
1860 | 742 |
void HWNewNet::banPlayer(const QString & nick) |
743 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
744 |
RawSendNet(QString("BAN%1%2").arg(delimeter).arg(nick)); |
1860 | 745 |
} |
746 |
||
1391 | 747 |
void HWNewNet::kickPlayer(const QString & nick) |
748 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
749 |
RawSendNet(QString("KICK%1%2").arg(delimeter).arg(nick)); |
1391 | 750 |
} |
1410
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
751 |
|
1577 | 752 |
void HWNewNet::infoPlayer(const QString & nick) |
753 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
754 |
RawSendNet(QString("INFO%1%2").arg(delimeter).arg(nick)); |
1577 | 755 |
} |
756 |
||
2706
935b7d618cf0
sheepluva's patch to add a "follow" command to server and frontend, in order to stalk people and join them in their rooms
koda
parents:
2543
diff
changeset
|
757 |
void HWNewNet::followPlayer(const QString & nick) |
935b7d618cf0
sheepluva's patch to add a "follow" command to server and frontend, in order to stalk people and join them in their rooms
koda
parents:
2543
diff
changeset
|
758 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
759 |
if (!isInRoom()) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
760 |
RawSendNet(QString("FOLLOW%1%2").arg(delimeter).arg(nick)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
761 |
isChief = false; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
762 |
} |
2706
935b7d618cf0
sheepluva's patch to add a "follow" command to server and frontend, in order to stalk people and join them in their rooms
koda
parents:
2543
diff
changeset
|
763 |
} |
935b7d618cf0
sheepluva's patch to add a "follow" command to server and frontend, in order to stalk people and join them in their rooms
koda
parents:
2543
diff
changeset
|
764 |
|
1410
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
765 |
void HWNewNet::startGame() |
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
766 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
767 |
RawSendNet(QString("START_GAME")); |
1410
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
768 |
} |
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
769 |
|
5126 | 770 |
void HWNewNet::updateRoomName(const QString & name) |
771 |
{ |
|
772 |
RawSendNet(QString("ROOM_NAME%1%2").arg(delimeter).arg(name)); |
|
773 |
} |
|
774 |
||
775 |
||
1410
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
776 |
void HWNewNet::toggleRestrictJoins() |
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
777 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
778 |
RawSendNet(QString("TOGGLE_RESTRICT_JOINS")); |
1410
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
779 |
} |
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
780 |
|
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
781 |
void HWNewNet::toggleRestrictTeamAdds() |
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
782 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
783 |
RawSendNet(QString("TOGGLE_RESTRICT_TEAMS")); |
1410
eece43296890
Send appropriate messages to server on control menu actions
unc0rr
parents:
1405
diff
changeset
|
784 |
} |
1592
5ee77ee470a6
Start converting network protocol to no-disconnecting religion
unc0rr
parents:
1591
diff
changeset
|
785 |
|
2155
d897222d3339
Implement ability for server admin to clear accounts cache
unc0rr
parents:
2149
diff
changeset
|
786 |
void HWNewNet::clearAccountsCache() |
d897222d3339
Implement ability for server admin to clear accounts cache
unc0rr
parents:
2149
diff
changeset
|
787 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
788 |
RawSendNet(QString("CLEAR_ACCOUNTS_CACHE")); |
2155
d897222d3339
Implement ability for server admin to clear accounts cache
unc0rr
parents:
2149
diff
changeset
|
789 |
} |
d897222d3339
Implement ability for server admin to clear accounts cache
unc0rr
parents:
2149
diff
changeset
|
790 |
|
1592
5ee77ee470a6
Start converting network protocol to no-disconnecting religion
unc0rr
parents:
1591
diff
changeset
|
791 |
void HWNewNet::partRoom() |
5ee77ee470a6
Start converting network protocol to no-disconnecting religion
unc0rr
parents:
1591
diff
changeset
|
792 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
793 |
netClientState = 2; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
794 |
RawSendNet(QString("PART")); |
1592
5ee77ee470a6
Start converting network protocol to no-disconnecting religion
unc0rr
parents:
1591
diff
changeset
|
795 |
} |
1671 | 796 |
|
797 |
bool HWNewNet::isInRoom() |
|
798 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2821
diff
changeset
|
799 |
return netClientState > 2; |
1671 | 800 |
} |
1925 | 801 |
|
3283 | 802 |
void HWNewNet::setServerMessageNew(const QString & msg) |
803 |
{ |
|
804 |
RawSendNet(QString("SET_SERVER_VAR%1MOTD_NEW%1%2").arg(delimeter).arg(msg)); |
|
805 |
} |
|
806 |
||
807 |
void HWNewNet::setServerMessageOld(const QString & msg) |
|
1925 | 808 |
{ |
3283 | 809 |
RawSendNet(QString("SET_SERVER_VAR%1MOTD_OLD%1%2").arg(delimeter).arg(msg)); |
1925 | 810 |
} |
3283 | 811 |
|
812 |
void HWNewNet::setLatestProtocolVar(int proto) |
|
813 |
{ |
|
814 |
RawSendNet(QString("SET_SERVER_VAR%1LATEST_PROTO%1%2").arg(delimeter).arg(proto)); |
|
815 |
} |
|
816 |
||
817 |
void HWNewNet::askServerVars() |
|
818 |
{ |
|
3697 | 819 |
RawSendNet(QString("GET_SERVER_VAR")); |
3343
6289df7747c0
Clarify an ambiguity as to what to do here if your name is already taken.
nemo
parents:
3283
diff
changeset
|
820 |
} |
4879
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
821 |
|
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
822 |
void HWNewNet::handleNotice(int n) |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
823 |
{ |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
824 |
switch(n) |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
825 |
{ |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
826 |
case 0: |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
827 |
{ |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
828 |
bool ok = false; |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
829 |
QString newNick = QInputDialog::getText(0, tr("Nickname"), tr("Some one already uses\n your nickname %1\non the server.\nPlease pick another nickname:").arg(mynick), QLineEdit::Normal, mynick, &ok); |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
830 |
|
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
831 |
if (!ok || newNick.isEmpty()) { |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
832 |
Disconnect(); |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
833 |
emit Disconnected(); |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
834 |
return; |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
835 |
} |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
836 |
|
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
837 |
config->setValue("net/nick", newNick); |
5390
f41e87de8989
(fix issue 126) moved initial nickname popup to the netconnection page
koda
parents:
5230
diff
changeset
|
838 |
config->updNetNick(); |
4879
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
839 |
mynick = newNick; |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
840 |
|
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
841 |
RawSendNet(QString("NICK%1%2").arg(delimeter).arg(newNick)); |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
842 |
|
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
843 |
break; |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
844 |
} |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
845 |
} |
55f939e2c19c
Ask for another nickname on collision. Works only with new server.
unc0rr
parents:
4535
diff
changeset
|
846 |
} |