summaryrefslogtreecommitdiffstats
path: root/src/Server.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-05-26Implemented cServer::ScheduleTask() and cServer::TickQueuedTasks() (#5224)Feyo Korenhof1-0/+20
2021-03-30Player data loading cleanupTiger Wang1-19/+0
* Kick player if data were corrupt to avoid making it worse
2021-01-11zlib -> libdeflate (#5085)Tiger Wang1-2/+2
+ Use libdeflate + Use std::byte * Fix passing temporary to string_view + Emulate make_unique_for_overwrite
2020-12-26ViewDistance: unsigned -> signedTiger Wang1-1/+1
2020-12-18Warnings improvementsTiger Wang1-1/+1
* Turn off global-constructors warning. These are needed to implement cRoot signal handler functionality * Add Clang flags based on version lookup instead of a compile test. The CMake config process is single threaded and slow enough already * Reduced GetStackValue verbosity + Clarify EnchantmentLevel, StayCount, AlwaysTicked, ViewDistance signedness + Give SettingsRepositoryInterface a move constructor to simplify main.cpp code - Remove do {} while (false) construction in redstone handler
2020-09-05Streamline startup sequenceTiger Wang1-6/+15
* Clean up cRoot & main * Move some OS-specifics into OSSupport
2020-05-15Enable some more clang-tidy linter checks (#4738)peterbell101-1/+1
* Avoid inefficient AString -> c_str() -> AString round trip * Avoid redundant string init expressions * Avoid unnecessary return, continue, etc. * Add .clang-format to help with clang-tidy fix-its * Avoid unnecessary passing by value * Avoid unnecessary local copying * Avoid copying in range-for loops * Avoid over-complicated boolean expressions * Some violations missed by my local clang-tidy * Allow unnecessary continue statements * Add brackets * Another expression missed locally * Move BindingsProcessor call into clang-tidy.sh and add space * Fix pushd not found error * Different grouping of CheckBlockInteractionRate
2020-04-16Using Super.Mattes D1-2/+6
2020-04-07Initial resource pack support (#4622)Mat1-0/+3
2017-08-30Update mbedtls to 2.5.1 (#3964)peterbell101-1/+1
* Renaming changes: * macro prefix "POLARSSL" -> "MBEDTLS" * functions now prefixed with "mbedtls_" * rename PolarSSL++ -> mbedTLS++ * rename polarssl submodule * Use mbedtls' AES-CFB8 implementation. * Add cSslConfig to wrap mbedtls_ssl_config * Update cTCPLink and cBlockingSslClientSocket to use cSslConfig * Use cSslConfig in cHTTPServer * Use cSslConfig for cMojangAPI::SecureRequest * CI Fixes * Set -fomit-frame-pointer on the right target
2017-08-27Implement Forge protocol handshake support (#3869)satoshinm1-0/+19
2017-08-25Add cUUID class (#3871)peterbell101-1/+2
2017-08-03Removed unused forward declarations (#3888)Lukas Pioch1-1/+0
2017-07-28Tentative fix for player-limit race condition (#3862)Tiger Wang1-19/+7
* Attempts to fix #2257 Derived from d233e9843148313c71fbaba96ccff660e47b07b1 * Changed player count type to int * Clarified certain actions
2017-07-21Remove smart pointer macrospeterbell101-1/+1
2017-05-19Allow enabling/disabling of block change limitmathiascode1-0/+6
2017-01-03Custom Disconnect Messagesweetgiorni1-0/+3
Adds a m_ShutdownMessage option to the settings. When the stop command is issued, players are kicked with said message before the server shuts down.
2016-07-21Tab completion across worlds (#3270)Alexander Harkness1-0/+7
Fixes #2563.
2016-02-05Bulk clearing of whitespaceLogicParrot1-40/+40
2016-01-17Fixed race conditionsLukas Pioch1-1/+1
2015-05-16Initial implementation of IniFile overloadingtycho1-2/+2
2015-01-27Converted cServer to use the cNetwork API.Mattes D1-56/+41
2014-12-11Cosmetic touchups.Mattes D1-2/+2
Removed trailing whitespace, added cast to remove warning, added file seeking in case of corrupt files.
2014-12-09Fixed indent problems and added return definitions to CheckMultiLogin().Vincent1-3/+3
Changed from IsAllowMultiLogin() to DoesAllowMultiLogin(). Fixed CheckMultiLogin() to not run to the end without returning a value.
2014-12-08Changed CheckMultiLogin() to not have main body wrapped in an if statement.Vincent1-2/+4
Added in indent to cPlayerListCallBack in cCallback class inside CheckMultiLogin(). Added doxy-comment for DoWithPlayer(). Changed comments on IsPlayerInQueue() and IsAllowMultiLogin() to doxy-comments.
2014-12-08Fixed compile errorsVincent1-2/+2
2014-11-29fixed naming of strings and changed from i to IVincent1-2/+2
2014-11-29issue 1253 - prevent multiple logins with same usernameVincent1-0/+9
2014-10-17cMojangAPI: Don't update data if server is in offline mode.Mattes D1-1/+1
2014-09-17Added an explicit setting for allowing BungeeCord handshake.madmaxoft1-0/+8
2014-08-20Exported cServer:ShouldAuthenticate to Lua API.Mattes D1-1/+1
2014-07-27Add "Broadcasting" settings to world.iniHowaner1-2/+2
2014-07-17Fixed spaces around single-line comments.madmaxoft1-3/+3
There should be at least two spaces in front and one space after //-style comments.
2014-07-17Fixed basic whitespace problems.madmaxoft1-4/+4
Indenting by spaces and alignment by spaces, as well as trailing whitespace on non-empty lines.
2014-07-16Store properties as Json::ValueTiger Wang1-1/+8
2014-07-14Player properties are now retrievedTiger Wang1-2/+2
2014-07-11Player data filenames are based on UUID.madmaxoft1-0/+20
2014-04-29Moved cRsaPrivateKey to PolarSSL++, rewritten using existing objects.madmaxoft1-3/+3
2014-04-19Declared one mutex as mutable in order to allow for const correct get accessors.jfhumann1-2/+2
2014-04-13Added Yggdrasil Authentication Systemdaniel09161-1/+1
Code by Howaner. Fixes/Changes by me.
2014-01-28Protocol 1.7: Forced encryption on all connections.madmaxoft1-11/+17
This is for testing purposes only, to find bugs in the encryption. Once the encryption is deemed stable, it will be enabled only for servers with enabled Authentication.
2014-01-23PolarSSL is fully used for 1.3.2 protocol encryption.madmaxoft1-6/+8
2014-01-19Rewritten SocketThreads for proper shutdown scenario.madmaxoft1-4/+4
This fixes #560 and #390.
2014-01-10Major refactoring of redstoneTiger Wang1-1/+1
This commit is a refactoring of the redstone code, mainly the functions handling the removal of invalid blocks from power supplier data structures. Its aim is to improve performance and potentially reduce the memory footprint of the data structures. It works to reduce the amount of GetBlock()s triggered every tick. Before, a GetBlock() was requested for every single item in the data lists, as well as for every single redstone block in a chunk. Following these changes, the AddBlock() event is utilised more effectively to only update the lists when needed (a block is changed), as well as to insert the block type (and update it when needed) alongside the coordinates into the main redstone simulator chunkdata list. In short, a single GetBlock() is now cached, with this cache being updated when the simulator is awoken due to a block change. At least, I *hope* that this is what it does :P
2014-01-07Fixed faviconsTiger Wang1-1/+2
2014-01-07Avoid making copies of favicon stringBill Derouin1-1/+1
2014-01-07A few touch upsBill Derouin1-1/+1
2014-01-07Implement favicon for 1.7.2Bill Derouin1-0/+3
Favicon data is a png encoded in base64 which is stored in the server and sent in the server response packet
2014-01-05Added warning(push) and warning(pop) around all of the inclusions of cryptopp/*.hDiusrex1-1/+16
I also added a warning(push)/(pop) around crpytlib.cpp because it would go crazy with warnings. So now, the only warning from cryptopp that is not blocked is 'unreferenced local function has been removed', which also occurs at a single function.
2013-12-22merged in warnings changesTycho Bickerstaff1-0/+2
2013-12-21Root is now warnings cleanTycho Bickerstaff1-0/+2
2013-11-26Fixed loads more of them.Alexander Harkness1-2/+2
2013-11-24Attempt to fix compilationTiger Wang1-2/+2
2013-11-24Moved source to srcAlexander Harkness1-0/+0
2013-11-13Console "reload" command implemented in MCServer, rather than in a plugin.madmaxoft1-0/+3
First part of #42.
2013-11-04Autogeneration of settings.ini and webadmin.iniTiger Wang1-0/+4
Fixes issue #75
2013-08-14Server counts the players correctly.madmaxoft1-2/+2
Was missing the PlayerDestroying() call, so players weren't removed from the playercount.
2013-08-14Player counts are now properly handled.madmaxoft1-2/+12
Fixes #80
2013-08-13Clients are now ticked in cServer first, then in cWorld once they get assigned a world.madmaxoft1-2/+6
2013-08-12Removed cServer::BroadcastChat() and cServer::SendMessage().madmaxoft1-6/+5
These two functions make it difficult to move to the new ticking system, and they aren't used anyway. If so required, they can be emulated by ForEachWorld / ForEachPlayer calls.
2013-08-12Removed unused cServer::IsConnected() function.madmaxoft1-4/+2
2013-08-11Each world now ticks in a separate thread.madmaxoft1-1/+1
2013-08-11Removed cServer::m_pState, dissolved into direct member variables.madmaxoft1-10/+25
The server tick thread is now in the cServer::cTickThread object.
2013-08-11Moved MaxPlayers and Description from cWorld to cServer.madmaxoft1-1/+16
Also started creating a new cWorld::cTickThread class, but not used yet.
2013-07-29WebAdmin templates can use LuaFakeTruth1-1/+1
New WebAdmin templates can use Lua to completely compose the pages themselves. This should allow infinite WebAdmin design possibilities.
2013-06-29Advanced RCON: Command output is sent to the RCON client.madmaxoft@gmail.com1-1/+5
RCON authentication is now required before executing commands. Console command handlers now return two values, bool (IsHandled) and string (CommandOutput). API change: removed cRoot:ExecuteConsoleCommand(), added cRoot:QueueExecuteConsoleCommand(). API change: removed cPluginManager:ExecuteConsoleCommand(), use cRoot:QueueExecuteConsoleCommand() instead git-svn-id: http://mc-server.googlecode.com/svn/trunk@1631 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-27Added a basic RCON protocolmadmaxoft@gmail.com1-14/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1628 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-22Plugins can modify message in the OnChat() hook handler.madmaxoft@gmail.com1-1/+1
FS #376 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1622 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-05Made ListenThread an OSSupport part, as it's generic enoughmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1258 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-05IPv6 support + removed cTCPLink from Lua APImadmaxoft@gmail.com1-2/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1253 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-04Moved client socket accepting into a separate thread object, cListenThreadmadmaxoft@gmail.com1-8/+10
MCServer can now listen on multiple ports FS #312 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1252 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-15Plugins can now bind console commandsmadmaxoft@gmail.com1-2/+6
FS #300 Most console commands are now implemented in the Core plugin. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1214 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-01-12Merged branch "branches/hooks" into "trunk".madmaxoft@gmail.com1-7/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1139 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-11Settings.ini is read only once on server startmadmaxoft@gmail.com1-1/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1035 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-25Sockets are now owned by SocketThreads instead of ClientHandle (FS #246 and FS #247)madmaxoft@gmail.com1-3/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@891 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-24Source files cleanup: The rest of the files renamed.madmaxoft@gmail.com1-0/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@887 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-23Source files cleanup: OSSupport-related files in a separate subfolder, renamed.madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@885 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-04Removed OS dependencies from CryptoPP; Removed unused modules that didn't compile on some platformsmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@827 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-30Implemented 1.3.2 protocol encryption using CryptoPP, up to Client Status packet (http://wiki.vg/Protocol_FAQ step 14)madmaxoft@gmail.com1-0/+10
git-svn-id: http://mc-server.googlecode.com/svn/trunk@808 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-29Gotten completely rid of all cPackets. The cProtocol125 class now does all the parsing and writing by itself.madmaxoft@gmail.com1-1/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@802 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-27Cut out all packet handling to a separate cProtocol descendantmadmaxoft@gmail.com1-1/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@796 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-24Monster classes don't use cPackets. Chat messages are sent / broadcast without cPackets. BlockEntities don't use cPackets.madmaxoft@gmail.com1-1/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@783 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-18Chat packet handled in the new way; fixed missing packet sending for inventory slot.madmaxoft@gmail.com1-2/+2
Again, API change! cPlugin:OnChat() has had its parameters swapped, to match all the other callbacks - Player first, Message second git-svn-id: http://mc-server.googlecode.com/svn/trunk@751 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-14Attempt to bring sanity to newlines across systems.cedeel@gmail.com1-132/+132
git-svn-id: http://mc-server.googlecode.com/svn/trunk@606 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-10Using references instead of pointers for sending packetsmadmaxoft@gmail.com1-2/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@394 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-09cClientHandles have a unique ID now to distinguish themfaketruth1-2/+2
cAuthenticator uses unique client ID for authentication Changed the kick function used by cAuthenticator to take a client ID instead of name, so the correct user is kicked Using callback reference instead of pointer in GetChunkData and affiliates GetChunkData returns false when failed, and true when succeeded Renamed entity type enums to something prettier Exposed some functions to Lua git-svn-id: http://mc-server.googlecode.com/svn/trunk@388 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-26Attempt at fixing crashes with disconnecting playersmadmaxoft@gmail.com1-1/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@329 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-26Using cSocketThreads for client outgoing packets. Unfortunately had to put in one intermediate thread (cServer::cNotifyWriteThread) to avoid deadlocks. Still, seems we have a proper multithreading for clients and no more per-client threads, yay :)madmaxoft@gmail.com1-3/+41
git-svn-id: http://mc-server.googlecode.com/svn/trunk@328 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-23Made the viewdistance settable by users and default in settings.ini. The default is 9.madmaxoft@gmail.com1-0/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@326 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-13Rewritten most of the code for multithreading; still not 100%, but getting there. If this commit proves to be too problematic, we can always undo it.madmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@251 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-08cSocketThreads plugged in for cClientHandle reading. Sending still kept the old way. Please help me test this commit thoroughly, this is a change that can break on subtleties.madmaxoft@gmail.com1-0/+38
git-svn-id: http://mc-server.googlecode.com/svn/trunk@244 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-07Slight cleanupmadmaxoft@gmail.com1-3/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@238 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-01Rewritten cAuthenticator to make use of the new cIsThread architecture - now authentication runs in a single separate thread for all clients;madmaxoft@gmail.com1-1/+4
Global player-kicking function (cServer, cRoot); More char * -> AString conversion git-svn-id: http://mc-server.googlecode.com/svn/trunk@221 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26Players can switch worlds on the fly with the command /gotoworld [worldName]. This uses the function cPlayer::MoveToWorld()faketruth1-1/+0
Changed isValidItem to IsValidItem in Core.lua git-svn-id: http://mc-server.googlecode.com/svn/trunk@126 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-03MCServer c++ source filesfaketruth1-0/+53
git-svn-id: http://mc-server.googlecode.com/svn/trunk@3 0a769ca7-a7f5-676a-18bf-c427514a06d6