Commit graph

163 commits

Author SHA1 Message Date
elexis
b19612c31a Fix whitespace and three refs instead of copies in the glooxwrapper/StunClient code identified by leper in 61261d14fc.
This was SVN commit r19741.
2017-06-05 20:44:00 +00:00
elexis
61261d14fc STUN + XMPP ICE implementation.
Allows lobby players to host games without having to configure their
router.

Differential Revision: https://code.wildfiregames.com/D364
Fixes #2305
Patch By: fcxSanya.
StunClient based on code by SuperTuxKart, relicensed with approval of
the according authors hilnius, hiker, Auria, deveee, Flakebi, leper,
konstin and KroArtem.
Added rfc5245 (ejabberd) support, a GUI option, refactoring and segfault
fixes by myself.

Tested By: user1, Sandarac, Sestroretsk1714, Vladislav, Grugnas,
javiergodas
Partially Reviewed By: leper, Philip, echotangoecho
This was SVN commit r19703.
2017-06-01 06:33:52 +00:00
elexis
d5c9725dc3 Revert the wrong "insufficient permissions to remove an account" error message from 9281aaf25e to the previous "Registration forbidden" which is shown when lobby registrations are disabled or restricted to some IP range.
Differential Revision: https://code.wildfiregames.com/D319
Refs #3047
Reviewed By: scythetwirler, leper
This was SVN commit r19575.
2017-05-14 03:18:21 +00:00
elexis
76bc9b579a Clientside Lobby support for muted players (visitor role).
Displays a chat message and a notification in the player details to
everyone if someone was muted and
hides the chat input to visitors.

Differential Revision: https://code.wildfiregames.com/D339
Reviewed By: user1
This was SVN commit r19514.
2017-05-05 01:13:12 +00:00
elexis
41d4649c6d Remove unused, deprecated SendGetGameList from the lobby.
Differential Revision: https://code.wildfiregames.com/D389
Reviewed By: scythetwirler
Refs D207

This was SVN commit r19467.
2017-04-28 23:22:41 +00:00
elexis
e6a0c7ae77 Remove SendGetRatingList lobby function which is deprecated and ignored serverside since 1a15131d2d because it caused performance issues and therefore shouldn't be used anymore.
Fixes #4151
Patch by: sbirmi
This was SVN commit r19463.
2017-04-27 11:42:51 +00:00
elexis
39fcd1d031 Implement clientside kick/ban support for the lobby.
Displays a chat notification for all lobby clients if a client is kicked
or banned, pop up a message box for the affected one, including the kick
reason.
Clean the player- and gamelist upon disconnect and disable the control
elements.

Reviewed By: Imarok
Differential Revision: https://code.wildfiregames.com/D116
This was SVN commit r19250.
2017-02-28 11:16:46 +00:00
Imarok
0e2d2610c9 Display a nice error message when trying to register too many lobby accounts
(This is a workaround that will be removed when gloox has fixed the
issue.)

Reviewed by: elexis
Refs #3771
Differential Revision: https://code.wildfiregames.com/D87
This was SVN commit r19205.
2017-02-07 15:05:26 +00:00
elexis
6149dd3841 Actually remove trailing whitespace for non-header files as well.
This was SVN commit r18989.
2016-11-23 13:02:58 +00:00
elexis
e4000d11cf Display the gamestart time in the lobby. Patch by Imarok, combined with d7d0a7f869 fixes #3476.
XPartaMupp patch reviewed by scythetwirler.

This was SVN commit r18601.
2016-08-14 09:03:30 +00:00
elexis
d7d0a7f869 Submit and display more information about matches in the lobby. Patch by Imarok, refs #3476.
Includes team numbers, online/offline- and won/defeated state, AI type
and difficulty for running games and
only the playernames with observer-player distinction in the gamesetup.
Use JSON format inside the XML stanza and minimize traffic by packing
teams.

Use the observer distinction to correctly apply the "full games" trigger
in the lobby, fixes #3143.

XPartaMupp patch applied by scythetwirler.
unescapeText function by sanderd17, refs #3409.

This was SVN commit r18534.
2016-07-20 16:04:23 +00:00
elexis
a9426a3f26 Distinguish private and public room level messages in the lobby. Patch by scythetwirler, refs #3865.
This was SVN commit r18378.
2016-06-14 14:07:52 +00:00
elexis
62061557db Host on arbitrary UDP ports. Patch in cooperation with Imarok, fixes #3575.
This was SVN commit r18372.
2016-06-13 16:56:14 +00:00
Itms
572847ddd4 Revert 1f34a004e5.
It breaks the Windows build by using time_t and it changes too many
things to the way lobby messages are processed to be entirely safe to
commit now.
Refs #3832.

As a side effect it reverts e514aca599, refs #3350.

This was SVN commit r17941.
2016-03-23 21:58:23 +00:00
elexis
1f34a004e5 Add timestamps to the GUI/chat-notifications sent from XmppClient, even if it's not a historical message.
Correct spammonitor behavior for historical messages and when returning
to the lobby from a game.
Patch by Josh, fixes #3832.

This was SVN commit r17928.
2016-03-21 13:48:22 +00:00
leper
ab4668ac79 Remove legacy error codes from strings.
This was SVN commit r17600.
2016-01-04 17:58:28 +00:00
leper
7a3f011587 Fix a typo.
This was SVN commit r17599.
2016-01-04 17:05:43 +00:00
leper
5033fd6cbf Some const and fix the indentation.
This was SVN commit r17598.
2016-01-04 17:05:39 +00:00
elexis
036f985017 Add missing semicolons.
Update timestamp.

This was SVN commit r17591.
2016-01-02 18:12:02 +00:00
JoshuaJB
9281aaf25e Map more specific messages from the Gloox documentation to registration results and stanza errors in the lobby code. Also, don't request translation of more arcane errors. Fixes #3047
This was SVN commit r17587.
2016-01-01 18:38:50 +00:00
JoshuaJB
9f9db45a03 Fix broken feedback display logic and broken error handling from ccb534259d. Additionally, streamline logic in prelobby.js and remove an unexplained check in lobby.js added by 76a1a84a58.
This was SVN commit r17584.
2016-01-01 17:18:17 +00:00
elexis
ccb534259d Major lobby cleanup.
Create an object holding the handling of all netmessage types.
Display private messages sent by moderators.

Details:
 Switch back the second and third argument of CreateSimpleMessage, so it
relates again to the switch/object.
 Reduce the dimension/nesting of the object/switch from three to two.
 Hence remove the useless "standard" and "internal" value send in the
text field.
 Rename CreateSimpleMessage to CreateGUIMessage
 Use the property "level" instead of "text" for "connect" and
"disconnect".
 Remove the handling of the "connect" event in lobby.js, since it is
never called.
 Translate the disconnect event.
 Add comments and explicit checks to handleMessage and handleMUCMessage
to make obvious where they differ.
 Remove the "message" property from those GUI messages, since it should
just use "text".
 Move the login-fail handling to JS.
 Remove useless sprintf calls from warning messages.
 Inline some variables.
 Add missing semicolons.

This was SVN commit r17581.
2015-12-31 17:08:23 +00:00
elexis
02c065e2c9 Removes the unused "gone" presence state from the lobby. Refs #3383.
This was SVN commit r17358.
2015-12-02 14:41:32 +00:00
leper
7eefcbe8c5 Do not use non-static data member initializer.
GCC 4.6 does not support those and initializing it in the ctor is a lot
clearer in this case.

This was SVN commit r17022.
2015-09-15 00:55:03 +00:00
JoshuaJB
8b437a0b1c Fix #3386, patch by elexis.
This was SVN commit r16997.
2015-09-10 05:30:18 +00:00
JoshuaJB
45a39e7dfd Fix 3171 by moving some logic to C++. These changes do not optimize the presence buffer and only fix the state bug.
This was SVN commit r16961.
2015-08-30 12:56:48 +00:00
leper
36c6b50944 Revert emplace for associative containers. Fixes #3366.
GCC < 4.8.0 does not support emplace for those.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44436.

This was SVN commit r16922.
2015-08-19 03:32:47 +00:00
leper
94302a4149 Move engine version to common file. Patch by elexis. Fixes #3359.
This was SVN commit r16906.
2015-08-01 23:03:13 +00:00
leper
bbafed7fbf Lobby code cleanup.
This was SVN commit r16796.
2015-06-19 17:25:28 +00:00
JoshuaJB
f2c76cc75d Fix a number of issues related to historical messages and initial join in the multiplayer lobby. Fixes #3156
This was SVN commit r16507.
2015-04-06 19:33:37 +00:00
leper
3c093ef741 Update lobby room.
This was SVN commit r16412.
2015-03-15 04:15:45 +00:00
Yves
c02a7e1a7b SpiderMonkey 31 upgrade
This upgrade also introduces exact stack rooting (see to the wiki:
JSRootingGuide) and fixes problems with moving GC. This allows us to
enable generational garbage collection (GGC).
Measurements a few months ago have shown a performance improvement of a
non-visual replay of around 13.5%. This probably varies quite a bit, but
it should be somewhere between 5-20%. Memory usage has also been
improved. Check the forum thread for details.

Thanks to everyone from the team who helped with this directly or
indirectly (review, finding and fixing issues, the required C++11
upgrade, the new autobuilder etc.)! Also thanks to the SpiderMonkey
developers who helped on the #jsapi channel or elsewhere!

Fixes #2462, #2415, #2428, #2684, #1374
Refs #2973, #2669

This was SVN commit r16214.
2015-01-24 14:46:52 +00:00
Ykkrosh
e02d7ad949 Automatically replace %hs/%ls with %s in CLogger format strings.
Everything is char* now, so we don't need to mess around with different
string types.

Done with:

  ag -ls 'LOG(MESSAGE|MESSAGERENDER|WARNING|ERROR)' source | xargs perl
-pi -e'1 while
s/(LOG(MESSAGE|MESSAGERENDER|WARNING|ERROR).*)%[hl]s/$1%s/g'

This was SVN commit r16187.
2015-01-22 20:36:24 +00:00
Ykkrosh
49e2ecea63 Automatically convert all CLogger format strings from wchar_t* to char*.
Done with:

  ag -ls 'LOG(MESSAGE|MESSAGERENDER|WARNING|ERROR)' source | xargs sed
-i 's/LOG\(MESSAGE\|MESSAGERENDER\|WARNING\|ERROR\)(L/LOG\1(/g'

This was SVN commit r16183.
2015-01-22 20:31:30 +00:00
leper
87d5d37488 Some source string fixes.
This was SVN commit r16002.
2014-11-22 22:21:54 +00:00
leper
9407dbe45e Remove useless parameter from CFG_GET_VALUE.
This was SVN commit r15984.
2014-11-17 23:29:49 +00:00
leper
1a0f9b086e GUI cleanup.
Remove toTitleCase(). Unify iColorToString() and rgbToGuiColor().
Translate XMPP errors (displayed when connecting).

This was SVN commit r15960.
2014-11-13 01:26:36 +00:00
leper
3c8ef99007 Switch lobby room. Update mod version.
This was SVN commit r15850.
2014-10-12 19:27:42 +00:00
scythetwirler
6b2677a3fd Adds profiles to the multiplayer lobby. Fixes #2504.
This was SVN commit r15768.
2014-09-20 15:35:26 +00:00
Yves
28bdd8540f Quite a lot of stack rooting related changes.
Changes GetProperty, SetProperty and HasProperty and a few other
functions to take handles. The conversions to CScriptVal or
CScriptValRooted at some places should be removed in the future. I've
done that to avoid an even larger patch.

Refs #2415
Refs #2462

This was SVN commit r15568.
2014-07-26 22:33:16 +00:00
JoshuaJB
072e4a614e Bump lobby version string.
This was SVN commit r15214.
2014-05-25 03:21:32 +00:00
JoshuaJB
2ad7187f92 Move XMPP polling to the mainloop. Should reduce lobby disconnects. Fixes #2491
This was SVN commit r15018.
2014-04-27 05:37:34 +00:00
scythetwirler
180aa5c60d Makes the moderator prefix visible in the chatbox.
This was SVN commit r14922.
2014-04-12 23:40:36 +00:00
Yves
e9e05f4efc Second (main) commit for the SpiderMonkey upgrade.
This commit contains all the required changes to our source files and
build scripts (hopefully).
A next commit will remove the old stuff of SpiderMonkey 1.8.5.

Spcial thanks to:
 - H4writer who helped a lot mainly with the performance issues we
had/have, but also with other problems or questions.
 - Leper for the review.
 - Historic_bruno for implementing the build scripts on Mac OS X and
testing on the Mac.
 - The people from the #jsapi channel and from
mozilla.dev.tech.js-engine who answered a lot of questions and helped
solving problems.
 - All the other people who helped

Refs #1886
Fixes #2442
Fixes #2416

This was SVN commit r14877.
2014-03-28 20:26:32 +00:00
JoshuaJB
0157e640cc Make my last commit C++98 compatible.
This was SVN commit r14709.
2014-01-31 01:26:08 +00:00
JoshuaJB
ff4ed09b6f Backend for special formatting of moderaters in the lobby userlist.
This was SVN commit r14706.
2014-01-30 15:46:19 +00:00
JoshuaJB
7bcdb9f46d Remove two un-needed string initilizations from my earlier changes.
This was SVN commit r14692.
2014-01-27 05:46:21 +00:00
JoshuaJB
c61badb04c Fix typo.
This was SVN commit r14688.
2014-01-26 19:29:21 +00:00
JoshuaJB
2a1240008c Make my previous changes < C++11 compatible.
This was SVN commit r14687.
2014-01-26 19:23:50 +00:00
JoshuaJB
5e70bd3628 Fix and cleanup my recent changes.
This was SVN commit r14686.
2014-01-26 19:01:21 +00:00
JoshuaJB
39fef5c299 Add the ability to display chat messages when joining the lobby and quickly mostly update the options window to the new UI style.
This was SVN commit r14679.
2014-01-26 05:39:55 +00:00
JoshuaJB
041c6ab1b3 More lobby cleanup.
This was SVN commit r14677.
2014-01-26 04:25:35 +00:00
JoshuaJB
41a7c78e62 Fix some stuff in XmppClient.cpp on leper's recommendation.
This was SVN commit r14670.
2014-01-25 20:49:48 +00:00
JoshuaJB
12a691edc2 Make my previous changes support < C++11 and Windows.
This was SVN commit r14661.
2014-01-24 20:31:39 +00:00
JoshuaJB
b46a6de335 Allow using the XMPP room subject to display lobby information to user, make the lobby GUI code more readable, and cleanup the modern styles.
This was SVN commit r14656.
2014-01-24 18:20:15 +00:00
scythetwirler
e5e634f768 Displays ratings in the userlist. Fixes #2371.
This was SVN commit r14650.
2014-01-23 23:13:13 +00:00
JoshuaJB
f254478d1b Revert accidentily committed changes.
This was SVN commit r14415.
2013-12-28 03:34:40 +00:00
JoshuaJB
177a7cd99d Make uninitilized players not show in the lobby leaderboard.
This was SVN commit r14414.
2013-12-28 03:32:31 +00:00
JoshuaJB
ad0d81cb8a Various lobby changes and some optimizations in the lobby bot by scythetwirler.
This was SVN commit r14396.
2013-12-26 19:45:20 +00:00
Yves
6fba293088 In #2241 I'm going to change the GUI to have one ScriptInterface for each GUI page because that will be required for the Spidermonkey upgrade (#1886).
The Multiplayer lobby needs some changes to avoid compartment
mismatches. Instead of initializing it with a ScriptInterface and
storing script values at different locations, it takes a ScriptInterface
argument in the functions that really need to read or write some script
values and avoids storing values as script values with an associated
compartment where possible.
The scripting interface of the lobby is also adjusted to use
JSInterface_Lobby.h/cpp files as other components instead of adding all
functions to ScriptFunctions.cpp. This makes it a bit more clearly
arranged IMO.

Fixes #2267
Refs #2241
Refs #1886

This was SVN commit r14199.
2013-11-16 18:38:40 +00:00
Ykkrosh
d7ec8c47a6 Fix Unicode support in lobby.
Fix EncryptPassword being called with the wrong argument order, and
encrypting username instead of password. (This will break all existing
lobby accounts.)

Fix EncryptPassword not using all of salt_base.

This was SVN commit r14123.
2013-11-09 23:26:17 +00:00
leper
81cf02cc13 Fix building with --without-lobby. Fixes #2249.
This was SVN commit r14113.
2013-11-08 15:28:44 +00:00
JoshuaJB
bffe917914 Multiplayer lobby based on the XmPP protocol. Special thanks to Philip, alpha123, scythetwirler, and anyone else who has helped build, debug or test the lobby.
This was SVN commit r14098.
2013-11-07 20:07:24 +00:00