summaryrefslogtreecommitdiffstats
path: root/src/Entities/Player.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-03-20Change TimeOfDay to WorldDate (#5160)Tiger Wang1-2/+2
* Change TimeOfDay to WorldDate * Do not wrap at 20 minutes, continue incrementing * Fixes #4737 * Fixes #5159
2021-03-19Don't send ping updates one packet at a timeTiger Wang1-2/+0
* Use the batch update feature of the packet. * Lengthen interval between time and ping update packets (ref. http://github.com/cuberite/cuberite/issues/4082#issuecomment-348675321).
2021-02-07Fix #5118Tiger Wang1-45/+22
2021-01-12Clarify cClientHandle, cPlayer ownership semanticsTiger Wang1-36/+19
+ A cPlayer, once created, has a strong pointer to the cClientHandle. The player ticks the clienthandle. If he finds the handle destroyed, he destroys himself in turn. Nothing else can kill the player. * The client handle has a pointer to the player. Once a player is created, the client handle never outlasts the player, nor does it manage the player's lifetime. The pointer is always safe to use after FinishAuthenticate, which is also the point where cProtocol is put into the Game state that allows player manipulation. + Entities are once again never lost by constructing a chunk when they try to move into one that doesn't exist. * Fixed a forgotten Super invocation in cPlayer::OnRemoveFromWorld. * Fix SaveToDisk usage in destructor by only saving things cPlayer owns, instead of accessing cWorld.
2021-01-02Fix potential destruction crashes (#5095)Tiger Wang1-2/+2
* Fix potential destruction crashes * Fix destructors accessing destroyted objects * Fix cPlayer not destroying windows (Destroyed never called) * Tentatively fixes #4608, fixes #3236, fixes #3262 - Remove cEntity::Destroyed() and replace with cEntity::OnRemoveFromWorld() * Add missing call to OnRemoveFromWorld
2020-11-06Players are no longer kicked when clicking on bedrock (#5023)Tiger Wang1-0/+1
* Players are no longer kicked when clicking on bedrock * Fixes #5022
2020-10-15added const correctness on some functions in cPlayer (#4999)12xx121-2/+5
Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-10-02Fix instant mining of blocks not being recognised, tweak anti-cheat (#4938)KingCol131-7/+14
* Tried to fix a small issue... Ended up rewriting a bunch of god awful, opaque code with no source and no sense. Who names a function GetPlayerRelativeBlockHardness??? It's gone now. We're safe again. * Testing anti-cheat. * Tidy up debug logging. * Remove empty member declaration. * Rewrite GetDigSpeed slightly for better readability. * GetMiningProgressPerTick now returns 1 when instantly mined. Fixed hasily written typo. * Comment style and typo fixes.
2020-10-01Enchanting table shows detail on hover. Enchanting is deterministic. (#4937)KingCol131-0/+8
* Use lapis for enchanting, subtract correct number of levels, ClientHandle now selects from pregenerated list. Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2020-08-29Unused/duplicate function cleanupTiger Wang1-3/+0
* FaceIntToBlockFace in 1.8/1.9 protocol merged - Removed undefined permissions stuff in Player header
2020-08-19Add Statistics and Achievements for newer Network standards12xx121-3/+2
2020-07-14Introduce recipe book functionality (#4493)Tobias Wilken1-0/+14
* Introduce recipe book functionality The recipe book helps especially new players. Missing it gives the impression that cuberite is not as advanced as it is. The handling of the recipe book uses the following functions: - Unlock Recipes (https://wiki.vg/index.php?title=Protocol&oldid=14204#Unlock_Recipes) to make recipes available and show the notification for new recipes. Initialization is done on player login for known ones, the update is done when new items are discovered. - Craft Recipe Request (https://wiki.vg/index.php?title=Protocol&oldid=14204#Craft_Recipe_Request) when the user selects a recipe from the recipe book to fill the slots. Known recipes are initialized on player login via `Unlock Recipes` with `Action` 0. As soon as a new recipe is discovered this is added via `Unlock Recipes` with `Action` 1. To be able to know and recognize new recipes the player class is extended with `KnownItems` and `KnownRecipes`. As soon as a player touches an item this is compared to the list of `KnownItems`, if the item is unknown the recipes are checked for this item and the other ingredients are checked with the list of `KnownItems`. If a full match is discovered the recipe is unlocked with the client and stored in the `KnownRecipes`. To unlock recipes the recipe ID is sent to the client. A mapping file (for protocol 1.12.2) translated the minecraft recipe names to ids. The crafting.txt is extended with and minecraft recipe names is possible. Limitations: Only a single recipe is added to the crafting area. Multiple clicks or shift click does not increase the number of builds. Co-authored-by: peterbell10 <peterbell10@live.co.uk> * Address first issues mentioned by @peterbell10 - Some linting - Extract loading of recipe specific protocol mapping into a function - Build `RecipeNameMap` only once - Use `std::optional` - Extract `LoadRecipe` from `Window` * Start to implement new suggestions * Update with suggestions from @peterbell10 * Some minor cleanup * Update protocol packet IDs * Remove unused include * Include header in cmake * Change a vector to integer counter * Change dromedaryCase method names to PascalCase * Address suggestions from @madmaxoft * Read Protocol subdirectories to load recipe books To load all recipebooks iterate over the `Protocol` subdirectories to find mapping files. Co-authored-by: peterbell10 <peterbell10@live.co.uk>
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-05-04Improve entity position updates (#4701)Tiger Wang1-3/+3
* Make puking pickups fly nicer * Improve entity position updates * Move determination of whether a delta is too big for a packet into the protocol handlers + Less jittery movement + Generalise CollectEntity to take any entity
2020-04-16Using Super.Mattes D1-2/+8
2020-04-02Replace buckets to the selected hotbar slot, rather than the first available. (#4580)Alexander Harkness1-0/+7
* Replace buckets to the selected hotbar slot, rather than the first available. Replicates vanilla behaviour, as well as being more logical. * Refactor cInventory::AddItem. Behaviour is now documented * Add new cInventory::ReplaceOneEquippedItem and ::SetEquippedItem methods * Return empty potion to the same slot after drinking * Replace buckets correctly in other situations, not simply water and lava Uses the new ReplaceOneEquippedItem method * Correct collecting water from source block with bottle * Add cPlayer::ReplaceOneEquippedItemTossRest method * Handle stacked filled buckets (in theory) Use new cPlayer::ReplaceOneEquippedItemTossRest method
2020-04-02Fix explosion knockback issues and tweak knockback strength (#4590)peterbell101-3/+3
2020-03-30Lua API for spectating entities (#4518)Mat1-0/+3
2020-03-05Stabilise MoveToWorld (#4004)Mat1-4/+2
* Stabilise MoveToWorld * Fix comments and deprecate ScheduleMoveToWorld * Enhanced thread safety for m_WorldChangeInfo * Return unique_ptr from cAtomicUniquePtr::exchange * cWorld now calls entity cEntity::OnAddToWorld and cEntity::OnRemoveFromWorld. Allows broadcasting entities added to the world from the world's tick thread. This also factors out some common code from cEntity::DoMoveToWorld and cEntity::Initialize. As a consequence, cEntity::Destroy(false) (i.e. Destroying the entity without broadcasting) is impossible. This isn't used anywhere in Cuberite so it's now deprecated. * Update entity position after removing it from the world. Fixes broadcasts being sent to the wrong chunk. * Fix style * cEntity: Update LastSentPosition when sending spawn packet * Add Wno-deprecated-declarations to the lua bindings * Kill uses of ScheduleMoveToWorld
2018-07-23Rewrite explosion knock back (#4251)changyong guo1-0/+2
1. Base knockback on an entity's bounding box intersection with the explosion 2. Armor blast protection reduces knockback 3. Don't apply knockback to players flying in creative mode Fixes #4139
2018-07-23Keep players in gmNotSet (#4248)changyong guo1-3/+0
This allows players game mode to update to the default after portal to another world. Fixes #4207
2018-07-23recover hotbar selected slot after reconnect (#4249)changyong guo1-0/+3
1. implement protocol message SendHeldItemChange 2. add save / load inventory equipped item slot in JSON 3. send held item slot message after player connect to server Fixes #4189
2018-07-13Add unbreaking for armor (#4220)Bond-0091-0/+4
Ref: minecraft.gamepedia.com/Enchanting#Unbreaking #915
2018-06-24Support swap item between main hand and offhand by press key "F" (#4241)changyong guo1-0/+3
Hi, I found cuberite don't support to press key "F" to swap items on main hand and offhand, so I implemented this feature. Best regards Changyong
2018-01-05Item durability loss now depends on the item used. (#4123)Alexander Harkness1-1/+8
Armour durability also no longer changes when it is used to break blocks or attack mobs. Fixes #4119
2017-10-21Implement horse inventory (#4053)peterbell101-0/+4
* Implement horse inventory * Fix sign conversions * Add API doc for ItemCategory::IsHorseArmor * Improve HandleOpenHorseInventory comment and style fixes.
2017-09-07Fire effect now shown for creative and spectator mode players (#3998)Alexander Harkness1-6/+12
* Fire effect now shown for creative and spectator mode players Fixes #3989 * Add documentation for IsFireproof
2017-08-25Add cUUID class (#3871)peterbell101-7/+9
2017-08-24Minor changes (#3909)mathiascode1-2/+2
2017-08-07Changed entity ownership model to use smart pointersTiger Wang1-1/+1
2017-07-28Check for intersection between placed blocks and entities. (#3850)Lane Kolbly1-0/+3
* Check for intersection between placed blocks and entities. + Implemented GetPlacementCollisionBox, to permit custom placement collision boxes for blocks. * Factored block-entity placement checking into another function in cPlayer. - Removed vector min/max functions * Use GetWorld to get the world in DoesPlacingBlocksIntersectEntity. + Added block height checks, allow different cEntity subclasses to decide whether they will prevent block placement.
2017-07-23Updated armor cover calculation. (#3858)Lane Kolbly1-0/+1
* Updated armor damage calculation. + Added lua docs, added casts from float to int. * Changed verbage in docstring and comment.
2017-07-10Implemented draggingitem API.Lane Kolbly1-1/+4
2017-06-05Fixes problems with windows:Lukas Pioch1-1/+1
- Changed cPlayer:OpenWindow to accept a ref, tolua adds a nil check - Close open lua window in destructor, to avoid dangling pointers
2017-05-27Add rank prefix and suffix to player name in chat (#3730)Heiko Hund1-0/+6
Fixes issue #1721
2017-05-21Clang 5.0 fixesLukas Pioch1-3/+1
- Added override keyword - Removed inherited member variables
2017-04-04APIDoc: Documented missing functions and variables. (#3634)Lukas Pioch1-6/+6
2017-01-03Track skin part and main hand preferences (#3498)Pokechu221-0/+13
2017-01-03Track skin part and main hand preferences (#3498)Pokechu221-0/+13
2016-11-18Removed ClientHandle.h dependencies from common headers.Mattes D1-15/+13
2016-11-06Anticheat fastbreak (#3411)mohe20151-0/+21
Added block hardness checks when breaking blocks.
2016-10-21Added SendMessageRaw for sending json string.Lukas Pioch1-0/+1
2016-10-12Spectators added (#2852)bibo381-0/+4
2016-08-29Proper respawn packets on dimension travelLogicParrot1-0/+3
2016-06-27Changed cLuaWindow callbacks to use cLuaState::cCallback.Mattes D1-3/+3
2016-04-13Fix occasional freeze bugLogicParrot1-4/+6
2016-04-05Improved player freeze codeLogicParrot1-10/+1
2016-03-31Players never fall through unloaded chunks or end up inside solids on teleportLogicParrot1-0/+2
2016-03-29Bed's world is now savedLogicParrot1-2/+9
2016-03-21Revert "Lua callback"Mattes D1-3/+3
2016-03-17Changed cLuaWindow callbacks to use cLuaState::cCallback.Mattes D1-3/+3
2016-02-19Proper entity destruction in non-ticking chunksLogicParrot1-0/+2
2016-01-22Improved tamed wolf pack cooperation and projectile reactionsLogicParrot1-2/+5
2016-01-16Fix crash when tamed wolf is hit by arrowsLogicParrot1-1/+1
2016-01-12Tamed wolf assists owner (attack / defence)LogicParrot1-0/+3
2015-12-25Freeze player until chunk is loadedSafwat Halaby1-1/+29
2015-12-13blockheight mechanismGargaj1-2/+0
2015-12-08Small spelling issues fixedJulian Laubstein1-3/+3
2015-08-20Fixed food drain bugsTiger Wang1-11/+4
2015-07-29Silenced and fixed many warning messages across multiple files.Samuel Barney1-3/+3
2015-06-10Implemented nether portal scanning code.Lane Kolbly1-1/+1
2015-06-02Added system and above action bar chat messagesjan641-8/+13
2015-05-23Fix gamemode not changing properly.Alexander Harkness1-84/+83
Should fix #604
2015-05-23Fixed missing overrides and added a ignore flag for reserved macro for clang version 3.6 and higher.Lukas Pioch1-5/+5
2015-05-09More style checking.Mattes D1-1/+1
Spaces around some operators are checked.
2015-05-04Entity improvementsTiger Wang1-1/+1
•Pathfinder improvements •Fixes #1217 •Fixes #1933 Merge remote-tracking branch 'SafwatHalaby/water2' into fixes
2015-04-25cPlayer now checks restrictions.Mattes D1-1/+12
Fixes #1331.
2015-02-28Replaced short int with int for Player experienceDevToaster1-1/+1
2015-02-28 modified: src/Entities/Player.cppDevToaster1-10/+10
modified: src/Entities/Player.h
2015-02-08Handle client 'leave bed' requestTiger Wang1-2/+12
* Fixes #1728
2015-02-07SpacingHowaner1-1/+1
2015-02-07cPlayer should override IsOnGround()Howaner1-1/+1
2015-01-27Converted cServer to use the cNetwork API.Mattes D1-3/+15
2015-01-11Initial convertion of a_Dt to std::chronoTycho1-2/+2
also refactored cWorld::m_WorldAge and cWorld::m_TimeOfDay
2014-12-24APIDump: Updated the player block placement documentation.Mattes D1-1/+2
The hooks now have fewer parameters but are called on all player-placed blocks (#1618).
2014-12-24Refactored all player block placing to go through hooks.Mattes D1-0/+18
Fixes #1618.
2014-10-23En masse NULL -> nullptr replaceTiger Wang1-2/+2
2014-10-20En masse NULL -> nullptr replaceTiger Wang1-2/+2
2014-10-20Migrated cSleep and cTimer to std::chronoTiger Wang1-1/+1
2014-10-01cPlayer: Removed useless functions from the Lua API.madmaxoft1-2/+6
2014-09-16Preparing 1.8 changesnesco1-0/+3
Added Spectator Gamemode
2014-09-02Added the new functions to APIDump.Howaner1-1/+1
2014-09-02Added SetCustomName() to players.Howaner1-0/+15
2014-08-21Removed last remnant of cGroup.Mattes D1-1/+0
2014-08-20cPlayer: Exported the LoadRank function to Lua API.Mattes D1-2/+2
2014-08-19cPlayer reads ranks from cRankManager.Mattes D1-23/+30
2014-08-11Fixed tolua error with static initializationarchshift1-3/+3
2014-08-11Player.cpp: change unnamed enum to constant integersarchshift1-6/+7
2014-08-03Added cPlayer::GetUUID().madmaxoft1-0/+3
2014-08-03Removed unused cPlayer::FoodPoison functionarchshift1-3/+0
2014-07-31Fixed hunger bugs, Implemented golden apple, added jump statistic, added correct food effects.Howaner1-4/+1
2014-07-31Fixed UUIDs handling in cPlayer.madmaxoft1-1/+1
The loading expected dashed UUIDs, MCS uses short UUIDs throughout.
2014-07-24Removed redundant semicolons and re-added warningarchshift1-1/+1
2014-07-23SuggestionsTiger Wang1-3/+3
2014-07-23Fix item durability.Howaner1-1/+1
Fixes #1181
2014-07-22Speed improvements, crash fixes, & self-suggestionsTiger Wang1-1/+0
2014-07-21SuggestionsTiger Wang1-1/+1
2014-07-21Style: Normalized to no spaces before closing parenthesis.madmaxoft1-7/+7
2014-07-20Bug and crash fixesTiger Wang1-6/+9
* Fixes end portals' solidity * Fixed crashes to do with multithreading and removing an entity from the wrong world * Fixed crashes due to bad merge * Fixed crashes due to an object being deleted twice * Simplified cWorld::Start() and added comments to configuration files
2014-07-18Fix failed merge and other issuesTiger Wang1-10/+1
2014-07-17Fixed tabs used for alignment.madmaxoft1-13/+13
2014-07-17Basic style fixes.madmaxoft1-2/+2
2014-07-17Normalized comments.madmaxoft1-3/+3
This was mostly done automatically and then visually inspected for obvious errors. All //-style comments should have a 2-space separation from the code, and 1 space after the comment sign.
2014-07-16Another fix for excessive food drainTiger Wang1-1/+1
2014-07-11Player data filenames are based on UUID.madmaxoft1-13/+21
2014-07-11Preparation for player UUID-based storage: LoadFromFile()madmaxoft1-0/+9
2014-07-04Tailored death messagesTiger Wang1-1/+1
2014-07-02Fixed player teleport food drainTiger Wang1-0/+5
2014-06-29Properly implemented enderchestsTiger Wang1-2/+9
2014-06-21More suggestionsTiger Wang1-2/+4
2014-06-19EntityEffects.x -> EntityEffect.x, Object-Oriented effectsarchshift1-3/+0
Changed effect map to take a pointer of the effect as a result.
2014-06-17Pawn: renamed HandleEntityEffects to HandleEntityEffectarchshift1-1/+1
Exported entity effect functions for ToLua and documented them in APIDesc.lua
2014-06-17Player: made healing instantaneousarchshift1-1/+1
2014-06-17Player: Removed food-poisoning-specific code, set duration to 30 secondsarchshift1-6/+1
http://minecraft.gamepedia.com/Hunger#Behavior
2014-06-17Entity effects: Added handlers for entity effectsarchshift1-0/+3
Implemented hunger, instant health, damage, poison, regen Added "template" entity effect implementations
2014-06-16Add bow charging animationHowaner1-1/+1
2014-06-16Merge branch 'master' of github.com:mc-server/MCServerTycho1-2/+9
2014-06-16Implemented PR suggestionsarchshift1-1/+2
Furnace.txt: newline BlockID: removed extraneous dimension mapping cEntity: fixed typo cPlayer: WorldPtr typedef
2014-06-15Players are saved regularlyTiger Wang1-1/+4
* Fixes #1076
2014-06-14Refactored speed-setting to use a common function for all cases.madmaxoft1-9/+4
2014-06-12Portals animate and delay correctlyTiger Wang1-5/+5
2014-06-11Player.h: Moved doxy-comments to Entity.harchshift1-3/+3
Moved doxy-comments to the defining function in Entity.h rather than the overloaded functions in Player.h Comment for each function (instead of assumed encapsulating comments) @deprecated tag for ForceSetSpeed()
2014-06-08Added queue for adding entities to cWorld.Mattes D1-0/+2
This alone doesn't work properly yet, further changes to cPlayer are needed.
2014-06-04SuggestionsTiger Wang1-4/+8
2014-06-01Implemented bed homesTiger Wang1-3/+12
+ Implemented bed home positions * Fixed some inventory and health server/client mismatches after world change
2014-05-31Implemented end and nether portalsTiger Wang1-1/+1
2014-05-22Added doxy-commentsSTRWarrior1-6/+8
2014-05-22cEntity::SetSpeed(a_Vector3d) isn't virtualized anymoreSTRWarrior1-1/+1
2014-05-22cPlayer overrides the SetSpeedXX functionsSTRWarrior1-1/+5
Fixed compile error
2014-05-22Both SetSpeed functions are now overridden by cPlayerSTRWarrior1-1/+4
2014-05-20Cleaned up cPlayer::UpdateMovementStats; Wither achievementsandrew1-0/+3
2014-05-13Fixesandrew1-6/+3
2014-05-12Movement Statisticsandrew1-0/+6
2014-05-12cEntity::Killed(cEntity *) Handler; Achievement triggers; cPlayer::AwardAchievement()andrew1-0/+11
2014-05-11Statistic Managerandrew1-0/+7
2014-04-26Add entity invulnerableHowaner1-1/+1
2014-04-23Some change to Entity.cppTiger Wang1-3/+0
* Added comments to BroadcastMovementUpdate() and the collision tracer
2014-04-19Fixed Flint and Steel, reverted Minecart change, renamed a parameter namejfhumann1-1/+1
2014-04-18Did some static analysis, fixed some bugs and optimized a lot of codejfhumann1-1/+1
2014-04-05Added cPlayer:SendRotation() API function.madmaxoft1-0/+6
2014-03-20Plugins can set flying speed.madmaxoft1-72/+88
2014-03-20Rewritten player speeds to be relative unit-less.madmaxoft1-5/+9
Value of 1 means "default speed", 2 means "double the speed", 0.5 means "half the speed". This allows for easier plugins and is more future-proof.
2014-03-09Beds now work properly fixes #707Tiger Wang1-3/+14
Also fixes FS392 Conflicts: src/Blocks/WorldInterface.h src/ClientHandle.cpp
2014-03-09CheckBlockInteractionsRate() fixed & enabledTiger Wang1-10/+1
2014-02-16Links sent via chat messages are clickable.madmaxoft1-1/+2
Fixes #658.
2014-02-16Fixed minor formatting issues from #682Tiger Wang1-2/+0
- Removed unused PlaySoundEffect * Simplified and parenthesised code
2014-02-16Add Exp Bottle EffectsHowaner1-0/+2
2014-02-15Implemented cCompositeChat.madmaxoft1-0/+1
This allows plugins to send composite chat messages, containing URLs, commands to run and cmdline suggestions. Fixes #678.
2014-02-07Improved chat messaging functionsTiger Wang1-7/+8
* Moved string manipulation into cClientHandle and therefore... + Added configuration option for prefixes. * Cleaned up code. * Updated documentation for API.
2014-02-06Added more chat functionsTiger Wang1-1/+0
2014-02-05Removed deprecated HasCommand functionSTRWarrior1-1/+0
2014-02-05Fixed annoying creative on fire bugTiger Wang1-0/+3
2014-02-04Added more SendMessageXXX() functionsTiger Wang1-0/+4
2014-02-03Added SendMessageXXX() to cPlayerTiger Wang1-0/+3
As requested by @bearbin, one no longer needs to download a file that links to Core. The server does it! Hopefully this encourages standards compliance.
2014-01-25Implemented fall damage for mobsTiger Wang1-1/+1
+ Implemented mobile fall damage * Formatting fixes + Defined new Position->Integer macros
2014-01-25All mobs now drown (fixes #54)Tiger Wang1-22/+0
* Implemented mob drowning * Iron Golems and squids are excluded
2014-01-24Fixed spacing and doxycomments.Mike Hunsinger1-3/+3
2014-01-23Split TossItem into three Toss functions (Held, Equipped and Pickup)Mike Hunsinger1-1/+8
2014-01-20Scoreboard deserializationandrew1-2/+5
2014-01-19Basic scoreboard implementationandrew1-1/+10
2014-01-13Detaching improvementsTiger Wang1-0/+2
* Players now search for an area around themselves to teleport to when detaching from something
2013-12-22merged in warnings changesTycho Bickerstaff1-2/+2
2013-12-22converted commneted paramater names to the unused macroTycho Bickerstaff1-1/+1
2013-12-21Floater now dissapears when the player doesn't have an fishing rod equipped.STRWarrior1-0/+3
2013-12-21Root is now warnings cleanTycho Bickerstaff1-2/+2
2013-12-20Sorted a few constructors to remove warnings.madmaxoft1-3/+6
2013-12-19Implented IsFishing, SetIsFishing and GetFloaterID().STRWarrior1-0/+10
2013-12-16Fixed cClientHandle::Tick() being called from two threads.madmaxoft1-2/+0
When the player was initialized, the Tick() function continued to stream chunk, while the cWorld called Tick() from its tick thread. Final fix for #187.
2013-12-15Renamed ShootTo function to ForceSetSpeed.STRWarrior1-2/+2
2013-12-15This adds a function that allows you to 'shoot' a player towards a direction.STRWarrior1-0/+3
2013-12-15Added m_IsFlying and m_CanFly. Both have a Get and Set function. Added cClientHandle::SendPlayerAbilities() functionSTRWarrior1-1/+13
2013-11-24Moved source to srcAlexander Harkness1-0/+0
2013-11-21Exported static XP calculation to Lua API.madmaxoft1-10/+8
2013-11-16edited comment and changed error behavior of DeltaXpDaniel O'Brien1-1/+2
2013-11-16updated plugin again...Daniel O'Brien1-1/+1
2013-11-16removed SpendExperience and changed AddExperience to handle removing XpDaniel O'Brien1-5/+2
2013-11-16fixed bug and added SpendExperience()Daniel O'Brien1-0/+4
2013-11-16fix possible threadlock issue, changed function names to be closer to standardDaniel O'Brien1-8/+15
2013-11-15finished #143 I believeDaniel O'Brien1-0/+2
2013-11-15added cProtocol function to pass xp to clientDaniel O'Brien1-7/+7
2013-11-14luaExportDaniel O'Brien1-0/+5
2013-11-13changed function nameDaniel O'Brien1-3/+3
2013-11-13minor changesDaniel O'Brien1-1/+1
2013-11-13changed name conventionDaniel O'Brien1-3/+3
2013-11-13Fixed problems with code style etcDaniel O'Brien1-21/+16
2013-11-13Player Xp, includes get/set and addExperienceDaniel O'Brien1-1/+1
2013-11-13Player XpDaniel O'Brien1-1/+43
2013-11-03Added cPlayer::GetEffectiveGameMode().madmaxoft1-0/+4
2013-10-24Cleanup in cPlayer.madmaxoft1-2/+4
2013-10-24Unified cPlayer's Heal() function with cEntity's.madmaxoft1-6/+9
2013-08-30Moved throw pos and speed calculation from cProjectileEntity into cPlayer.madmaxoft1-1/+7
2013-08-30Shooting a bow kinda works.madmaxoft1-0/+15
The arrow is released, but sometimes hits wrong blocks or disappears completely.
2013-08-19Debuggers: Added continuous hunger reporting.madmaxoft1-2/+5
Showcases the OnWorldTick() hook to fire events at regular intervals. Will be used for debugging the issues related to hyper-hunger.
2013-08-19Moved entities into the Entities subfolder.madmaxoft1-2/+2
2013-08-13Clients are now ticked in cServer first, then in cWorld once they get assigned a world.madmaxoft1-1/+1
2013-08-09Removed the need to recalculate whether player is under water in ApplyFoodExhaustionJames Ravenscroft1-5/+7
2013-08-09Added IsSwimming and IsSubmerged flags and access methodsJames Ravenscroft1-1/+13
2013-08-08Made comments more readable by adding space between // and text content. Added /// doxygen syntax comments to declarationsJames Ravenscroft1-2/+2
2013-08-08Fixed the formatting issues in player cpp filesJames Ravenscroft1-8/+8
2013-08-08Made player drowning implementationJames Ravenscroft1-1/+12
2013-08-08Addeed OnSpawningEntity, OnSpawnedEntity, OnSpawningMonster, OnSpawnedMonster hooks.madmaxoft1-1/+1
As requested in FS 418.
2013-07-28Player eating is now properly broadcast to other players.madmaxoft1-10/+30
Also fixed the API relating to food, determining player gamemode, and removed several unneeded API functions.
2013-07-28Implemented basic eating support.madmaxoft1-0/+13
Food is now properly consumed and it takes 1.5 sec.
2013-07-28Added cPlayer::IsGameModeXXX() and cWorld::IsGameModeXXX() functions.madmaxoft1-1/+12
These are the preferred way of determining the gamemode, you should use those instead of doing manual comparisons to the gamemode value.
2013-07-12First implementation of movement-related hunger and APImadmaxoft@gmail.com1-15/+47
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1673 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-07-07Fixed sprinting in 1.6.1, made speeds available through API; fixed messages containing quotes.madmaxoft@gmail.com1-1/+31
Fixes FS #415 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1660 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-07-03Fixed player moving between worlds.madmaxoft@gmail.com1-1/+1
Fixes FS #407. Also fixes a few possible deadlocks between SocketThreads and TickThread git-svn-id: http://mc-server.googlecode.com/svn/trunk@1641 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-07-01Rewritten entity-on-fire management ("forever on fire" bugs)madmaxoft@gmail.com1-4/+4
Fixes FS #297 and part of FS #403. Added sizes to all entities. Moved all damage-related functions from cPawn to cEntity API change: renamed cPawn:TeleportTo() to cEntity:TeleportToCoords() git-svn-id: http://mc-server.googlecode.com/svn/trunk@1635 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-04Implemented proper player crouching.madmaxoft@gmail.com1-0/+8
Fixes FS #365 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1553 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-02LuaWindow: Fixed memory leaks with unclosed windowsmadmaxoft@gmail.com1-3/+3
A player disconnecting will now force all windows to close, not respecting any plugin's overrides. http://forum.mc-server.org/showthread.php?tid=1146&pid=8350#pid8350 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1543 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-30LuaWindow: Initial code, the window can be opened, but not much manipulatedmadmaxoft@gmail.com1-7/+17
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1532 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-30Implemented left-click inventory paintingmadmaxoft@gmail.com1-4/+18
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1529 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-24Refactored cInventory to use cItemGrid for the actual Storagemadmaxoft@gmail.com1-2/+4
This makes the API more orthogonal and is easier to use in the plugins. Also changes in the inventory are now propagated to the needed places (armor updates to BroadcastEntityEquipment etc.) even when the inventory is changed by a plugin. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1503 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-19Inventory code cleanup, players can now see each other's armormadmaxoft@gmail.com1-2/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1493 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-22Moved physics to the cEntity class from the derivative classes (cMonster, cPickup). Added physics override to cPlayer to disable physics calculations. Fixed bug with pitch calculations on mobs.keyboard.osh@gmail.com1-0/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1400 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-13Rewritten entities so that they are owned by individual chunks and ticked within their chunk's Tick()madmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1385 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-22Implemented BroadcastMovementUpdate function. Moved m_Pos,m_Rot,m_Speed to private members and made sure that all classes uses the public functions to access these members.keyboard.osh@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1294 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-01-12Merged branch "branches/hooks" into "trunk".madmaxoft@gmail.com1-38/+39
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1139 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-22MTRand reference is now passed as a Tick() parameter so that it isn't created and destroyed over and over again. All entities will handle physics (empty callback for now)madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1096 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-21Fixed linux compilationmadmaxoft@gmail.com1-2/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1094 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-21Reworked the IsA() / GetClass() framework to actually be useful. Added GetParentClass().madmaxoft@gmail.com1-1/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1090 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-21Refactored the TakeDamage API to take equipped weapon and armor into consideration (PvP untested)madmaxoft@gmail.com1-12/+43
http://forum.mc-server.org/showthread.php?tid=625 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1087 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-27Added initial adventure mode supportluksor111@gmail.com1-0/+1
Added missing Emerald crafting recipe You get more fall damage when jumping Torch no longer protects players from fall damage Fixed Ender Chest drops git-svn-id: http://mc-server.googlecode.com/svn/trunk@1070 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-11Cleanup: Removed deprecated functions from Lua APImadmaxoft@gmail.com1-2/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1033 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-18Converted some const char*s and std::strings to AStringsfaketruth1-4/+8
Added a cPlayer:RemoveFromGroup() so players can be removed from groups programmatically Added a cClientHandle:SetUsername to be used by Lua. I'm curious what ThuGie can do with his plugin. git-svn-id: http://mc-server.googlecode.com/svn/trunk@978 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-14Completely removed support for old style Lua plugins (can use both Plugin and NewPlugin in settings.ini for now)faketruth1-6/+6
Removed cPlugin_Lua, obviously cPluginManager stores plugins by their (folder)name cPluginManager now scans the Plugins folder for potential plugins and adds them as non-loaded plugins Added a DisablePlugin and LoadPlugin to disable and load plugins on a per-plugin basis instead of all at once cPluginManager::FindPlugins refreshes the plugin list by removing non-existing plugins and adding new plugins Made it incredibly easy to use new plugins from the WebAdmin Exposed some food/hunger related functions in cPlayer to Lua git-svn-id: http://mc-server.googlecode.com/svn/trunk@959 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-06Lua plugins can get player's equipped itemmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@932 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-24Source files cleanup: The rest of the files renamed.madmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@887 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-20Refactored windows.madmaxoft@gmail.com1-8/+12
As described on the forum: http://forum.mc-server.org/showthread.php?tid=561 For now, only basic clicking works; shift-click not implemented yet. git-svn-id: http://mc-server.googlecode.com/svn/trunk@867 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-28Moved all packet-serializing code into cProtocol125; half the packet classes aren't needed anymore.madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@800 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-3/+7
git-svn-id: http://mc-server.googlecode.com/svn/trunk@783 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-19Almost all packets' handling is now rewritten not to use cPacket descendants elsewhere than in cClientHandle.madmaxoft@gmail.com1-5/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@761 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-18Packet refactoring, phase two, partial. Rewritten a few packet handling functions not to use cPacket-descendant objects.madmaxoft@gmail.com1-0/+1
This breaks plugin API! Plugins need to modify their hook functions to match those used in the Core plugin git-svn-id: http://mc-server.googlecode.com/svn/trunk@750 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-10Fixed a crash in creative inventory (FS 235, patch submitted by l0udPL)madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@722 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-03Fixed a few gcc pedantic warnings; made BLOCKTYPE an unsigned char type.madmaxoft@gmail.com1-1/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@711 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-07-17Simple health regeneration systemlapayo94@gmail.com1-3/+17
Prepared for food git-svn-id: http://mc-server.googlecode.com/svn/trunk@679 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-14Attempt to bring sanity to newlines across systems.cedeel@gmail.com1-146/+146
git-svn-id: http://mc-server.googlecode.com/svn/trunk@606 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-05-29Refactored item-eating from cClientHandle into cPlayermadmaxoft@gmail.com1-2/+7
git-svn-id: http://mc-server.googlecode.com/svn/trunk@519 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-16Got rid of cPlayer::sPlayerStatefaketruth1-6/+13
git-svn-id: http://mc-server.googlecode.com/svn/trunk@418 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-07Fixed bug where cPlayer's cClientHandle was used after cPlayer was destroyed http://forum.mc-server.org/showthread.php?tid=380faketruth1-12/+15
Also removed the SetClientHandle() function from cPlayer Added a Destroyed() function to cEntity that is called ONLY ONCE after an entity has been 'destroyed' Cleaned up some code, using enums for GameMode and Weather and replaced some 'const char *' with 'const AString &' Exposed some more functions to Lua git-svn-id: http://mc-server.googlecode.com/svn/trunk@382 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-4/+8
git-svn-id: http://mc-server.googlecode.com/svn/trunk@251 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-3/+3
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
2012-01-31Changed how Lua handles the (Post)Params in the HTTPRequest of a WebPluginfaketruth1-1/+1
It should now be theoretically possible to upload files through WebAdmin git-svn-id: http://mc-server.googlecode.com/svn/trunk@203 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-30Added a WebAdmin interface to view users their groups, and the permissions of groups.faketruth1-0/+3
cChunk::Tick did an assertion in cCSLock, I used a cCSUnlock to fix it, but not sure if this is correct. git-svn-id: http://mc-server.googlecode.com/svn/trunk@194 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-29VC2008 / VC2010: Enabled precompiled header through Globals.h; the header included in every module in the project. Compilation optimization.madmaxoft@gmail.com1-2/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@188 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-01CreativeInventory Updatelapayo94@gmail.com1-2/+1
- Fixed various problems with the new creative inventory (Crafting, furnace, etc) - Creative inventory will now be saved to disk, so you keep your creative inventory also for the next sessions git-svn-id: http://mc-server.googlecode.com/svn/trunk@162 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-01- implemented separated inventory for creative mode (cSurvivalInventory and cCreativeInventory)lapayo94@gmail.com1-2/+8
(Separation is not perfect yet, because maybe there are some mayor changes needed :D) - implemented CreativeInventoryAction (was mistakenly called CreateInventoryAction) -> Fixed meta data for creative selected blocks ->->Slabs/Steps are now placed correctly - slabs can now be build to a double slab - fixed a bug in the inventory which put items with different meta values in the same slot git-svn-id: http://mc-server.googlecode.com/svn/trunk@160 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-29 - Initial food handling by cedeelmtilden@gmail.com1-0/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@156 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-28- implemented the fire simulation in native c++ (cFireSimulator)lapayo94@gmail.com1-0/+2
- Changed the Durationsystem for Items. cPlayer::UseEquippedItem calls cItem::DamageItem this function damages the item if it has a duration. (needed the duration also in another place so this saves code ;)) - added some other burning blocks - the mobtypes for the settings.ini which i must have forgotten in the last commit git-svn-id: http://mc-server.googlecode.com/svn/trunk@150 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-28- Implemented Drops from Burning animalslapayo94@gmail.com1-19/+12
- added right monster health and attack strength - refactored the Pawn/Monster/Player class a little bit - changed some namings to fit the style git-svn-id: http://mc-server.googlecode.com/svn/trunk@140 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-27 - Added basic ping handling.mtilden@gmail.com1-1/+1
Not sure what's up with the MC client, though. It doesn't seem to end up giving good results like the KA packet return is hanging and waiting for other things to process instead of being handled on its own to give a true result. Feel free to update if there's any way to deliver truer results. git-svn-id: http://mc-server.googlecode.com/svn/trunk@133 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-0/+2
Changed isValidItem to IsValidItem in Core.lua git-svn-id: http://mc-server.googlecode.com/svn/trunk@126 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26 - Added timer to cPlayer PlayerListItem because sending the packets like minecraft does (every tick per player) is 20 pps per client to each client and was causing Kicks for having too high of a packet queuemtilden@gmail.com1-0/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@120 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26 - Make Color was using 2 extra characters which took 2 characters off the 16 max (including color codes) for scoreboard displaymtilden@gmail.com1-1/+1
- Added xC9 PlayerListItem packet and added code for player names to be added and removed from the scoreboard (need a catch-all for client disconnects: crashes, timeouts, etc) - Changed wid wording to a_WindowType git-svn-id: http://mc-server.googlecode.com/svn/trunk@113 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-25Hold item is now dropped when inventory is closedlapayo94@gmail.com1-1/+1
Thanks to mtilden for this ( http://forum.mc-server.org/showthread.php?tid=183&pid=1428#pid1428 ) Also the items in the 4 crafting slots are now dropped. git-svn-id: http://mc-server.googlecode.com/svn/trunk@107 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-10Can now set gamemode via lua.admin@omencraft.com1-0/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@89 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-10Made block action sanity checks more robust, water buckets, lava buckets and empty buckets should all now work.admin@omencraft.com1-3/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@87 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-09Added m_IP to player class and binding to get IP for LUA. (Probably should use m_pState)admin@omencraft.com1-1/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@82 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-02Fixed some "Entity was not found in any chunk!" warningsfaketruth1-1/+3
Player's current world is saved in the player file. When a player joins the server, the player joins the last world he was in. It seems MCServer can finally run multiple worlds! It just needs functionality to switch between them git-svn-id: http://mc-server.googlecode.com/svn/trunk@46 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-01You can now run multiple worlds by defining them in settings.ini . However there's no way to change worlds on the fly yetfaketruth1-0/+2
Players are now stored in separate folder /players instead of in the world folder (!so move the folder!) Fixed a memory leak/error in cPickup.cpp Multiple worlds are stored in cRoot cClientHandle lists are taken out of cWorld and now stored in cServer Worlds now have names to distinguish them by Some functions in the Core plugin now distinguish between worlds git-svn-id: http://mc-server.googlecode.com/svn/trunk@40 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-01Put in some sanity checks to ensure players don't interact with blocks too quickly. Changed gamemode to be player based. (MCServer crashes when picking up an item. Need to find and fix bug.)admin@omencraft.com1-2/+10
git-svn-id: http://mc-server.googlecode.com/svn/trunk@38 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-21Compiles for linuxfaketruth1-0/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@6 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-03MCServer c++ source filesfaketruth1-0/+96
git-svn-id: http://mc-server.googlecode.com/svn/trunk@3 0a769ca7-a7f5-676a-18bf-c427514a06d6