The League Sandbox project's game server
Project website along with more specifications can be fround from: https://leaguesandbox.github.io/
Project chat on Discord: https://discord.gg/Bz3znAM
Contributing
If you're interested in contributing, come find us from Discord and let us know. You will need to PM a moderator to get access to development channels.
Setup guide
- Install Microsoft Visual Studio 2015 or newer (Community Edition is fine)
- Install DotNet 4.6.1 Framework
- Install Editor Guidelines (https://visualstudiogallery.msdn.microsoft.com/da227a0b-0e31-4a11-8f6b-3a149cf2e459)
- This is strongly encouraged to follow the 120 character limit per line guideline
- Download the 4.20 version of League client (https://mega.nz/#!hpkiQK5A!pFkZJtxCMQktJf4umplAdPC_Fukt0xgMfO7g3bGp1Io)
- Clone the git repository and run
git submodule update --init --recursive
to download the necessary contents package - Copy
GameServer/Settings/GameInfo.json.template
toGameServer/Settings/GameInfo.json
- Modify the file copied in the last step as required
- Build and run
Running the client
Launching from command line
start "" "Path/To/Your/League420/RADS/solutions/lol_game_client_sln/releases/0.0.1.68/deploy/League of Legends.exe" "8394" "LoLLauncher.exe" "" "127.0.0.1 5119 17BLOhi6KZsTtldTsizvHg== 1"
Project policies
- Line length should be 120 characters maximum whenever possible (use Editor Guidelines plugin for a ruler)
- Pull requests must be approved before they can be merged
- Pull requests should not be merged before the build has passed
- If the build fails, ping the pull request creator and tell him to fix it
- Files and folders in
PascalCase
- JSON dictionary keys in
PascalCase
- Keep the code as simple and clear to read as possible
- Each separate feature should be developed in their own branch
- Commits should be in logical small pieces
- Pull requests should be kept as small as possible, generally one feature per pull requests
- Instead of submitting one huge pull request with 3 features, submit each feature individually
C# guidelines
- Function names in
PascalCase
- Constants in
ALL_CAPS
- Private variables in
_camelCaseWithUnderscore
- Public properties as getters / setters in
PascalCase
- Acronyms should be consider a single word when capitalizing
configJson
instead ofconfigJSON
- All public variable access should happen through getters / setters
- Regions shouldn't be used, instead split code into classes/files when needed
- Dictionaries preferred over switches and long if/else statements
- Boolean variable names should be prefixed with a question (is/can/should)
- Conditional operator should be avoided.
condition ? option1 : option2
- This is fine to use in some niche cases where you can't avoid using it
- String inetpolation with embedded logic should not be used
- It's fine to use string interpolation for variable substitution
Development flow and how to use git shell
Using git shell is strongly encouraged
- Pull latest version of indev
git fetch -p
git pull origin indev
- Checkout to a new branch
git checkout -b <branch_name>
- Make changes, do commits
git status
- List of changed filesgit add <filename>
- Stage file for commitgit add -u
- Stage all updated files for commitgit add -A
- Stage all unstaged files for commitgit commit -m "<commit message>"
- Create commit
- Push to github
git push origin <branch_name>
- Create pull request
- Checkout back to indev
git checkout indev
- Repeat
License
Currently this repository is under the GPL-3.0 license.
We are in a transition phase to the AGPL-3.0 license. Once all of the current contributors have consented to the license change, this license will be in effect.
You can follow who has given consent so far in the following table:
Consent Given | Contributor |
---|---|
joaquin95 | |
MythicManiac | |
horato | |
FurkanS | |
Neekhaulas | |
Maufeat | |
Deudly | |
moonshadow565 | |
chutch1122 | |
NitroXenon | |
MatthewFrench | |
piorrro33 | |
TheWebs | |
xDawiss | |
Pokemonred200 | |
ChewyBomber | |
Fighter19 | |
TornjV | |
danil179 |
Once everyone in this table has a
Giving consent
To give consent in changing the license:
- You must submit a GPG signed commit changing your icon from
❌ to✅ in the table from previous section. - The commit must come from the same GitHub account as the contributions is belong to.
- Make sure to only modify your own line as to avoid any merge conflicts.
- Once you the submission is done, you have consented to having all of your contributions in this repository so far to be licensed under the AGPL-3.0 license