HTTPS SSH

Server_Permissions

Adds a proper role-based permission system to the game Blockland, similarly to Bukkit's PermissionsBukkit system.

File Structure

= Root
|
+-+ client                       - Client-sided GUIs (will split up and move rest of the actual client code here "soon")
| +- PermissionsBLIDGui.gui      - GUI for selecting a user to add to a role
| +- PermissionsGui.gui          - Main GUI
| +- PermissionsNewRoleGui.gui   - GUI for entering names for new roles
|
+-+ scripts                      - Scripts to auto-generate certain code to reduce repetition, should not be included in releases
| +- defaultperms.py             - Script to generate server/DefaultRetrofits.cs
| +- defaultperms.txt            - Input for the above
| +- defaultpermsextras.cs       - Footer for the output of server/DefaultRetrofits.cs
| +- generate_shim.py            - Generate the shims from the templates
| +- Shim_Server_Permissions.cs  - source for shim/Shim_Server_Permissions.cs, run generate_shim.py after modifying
|
+-+ server                       - Server-sided scripts
| +- DefaultRetrofits.cs         - Packages to make default stuff permissions-powered, generated by scripts/defaultperms.py
| +- GameConnection.cs           - Additions to the GameConnection class
| +- GUI.cs                      - Sends data to the (G)UI
| +- PermissionManager.cs        - The PermissionManager class
| +- PermissionNameCache.cs      - The PermissionNameCache class
| +- PermissionRoleBase.cs       - The PermissionRoleBase class
|
+-+ shim                         - Files to copy-paste for projects that want to "soft-depend" on Perms, emulates Perms API on top of the native API, should be included in releases but not used
| +- Shim_Server_Permissions.cs  - Main shim file for servers, generated by scripts/generate_shim.py from scripts/Shim_Server_Permissions.cs, should be included in releases but not used
|
+- .hgignore                     - Mercurial data file, should not be included in releases
+- .hgtags                       - Mercurial data file, should not be included in releases
|
+- client.cs                     - Client-sided entry point, actual code should be moved to the client folder
+- server.cs                     - Server-sided entry point
|
+- Updater.cs                    - Common files for the auto-updater
+- Updater_Client.cs             - Client UI for the auto-updater
+- Updater_Server.cs             - Server UI for the auto-updater

Repo structure

= default       - Main development branch
|
+-+ releases    - Release branch, tip should be the most recent release
  |
  +- rtb        - RTB release branch, should generally be releases with the updater removed