User:Xenon dichloride/Terminal: Difference between revisions
No edit summary |
No edit summary |
||
Line 24: | Line 24: | ||
== ~/boot/instances == | == ~/boot/instances == | ||
The system must reboot to enact any changes to files within ~/boot/. Each week 3 new instances are created, with the contents of ~/boot/ directory at the end of the previous instance comprising the | The system must reboot to enact any changes to files within ~/boot/. Each week 3 new instances are created, with the contents of ~/boot/ directory at the end of the previous instance comprising the rules for the instance: | ||
Instance I: Sunday, Monday | Instance I: Sunday, Monday | ||
Line 32: | Line 32: | ||
Instance III: Friday, Saturday | Instance III: Friday, Saturday | ||
The rules must be continuously obeyed by all players. | |||
The rules | |||
== ~/boot/files == | == ~/boot/files == |
Revision as of 08:38, 6 January 2024
Terminal is a nomic taking place entirely within a filesystem.
The following represents the initial state:
~/ boot/ # owner: su instances files users players commands winning judgement commands/ # owner: su mk cp mv rm rn et run kill sudo players/ # owner: su
~/boot/instances
The system must reboot to enact any changes to files within ~/boot/. Each week 3 new instances are created, with the contents of ~/boot/ directory at the end of the previous instance comprising the rules for the instance:
Instance I: Sunday, Monday
Instance II: Tuesday, Wednesday, Thursday
Instance III: Friday, Saturday
The rules must be continuously obeyed by all players.
~/boot/files
A file is a document containing data such as text, formatting, tables or images. It is represented as a section Anything that can be added to an Infinite Nomic Wiki page is valid content for a file. Every file has an owner, which is 'su' unless otherwise specified.
~/boot/users
A user can own files and execute commands. Every player is a user. Additionally, 'su' can be used to reference the superuser, with absolute control of the system. 'e' can reference every user.
~/boot/players
A player must be a member of the IN discord server.
Any person may become a player by posting a message setting forth their intent to do so in the channel #game-actions, provided they have not been a player at any point in the past seven days. A player may cease being a player by sending a message that sets forth their intent to do so in #game-actions.
When a player joins, the following file is created at ~/players/ named {player name}:
id = {Discord ID} is_player = true is_su = false privileges = 2
If that file already exists (the player has the same id), is_player = true. If multiple players would have files of the same name, subsequent player files have an integer appended to their name to represent their place when joining.
When a player ceases being a player, is_player = false. If a player or ex-player leaves the server, they are no longer a player and their file is removed.
~/boot/commands
A command is a formatted set of instructions that can be sent to alter the system. Every command must have a file in ~/commands/ with the name of the command as its name. The file must describe the syntax for the command and provide a description for what it should do.
Command | Alternative | Syntax | Description |
---|---|---|---|
mk | make | mk {location} {name} {contents as attached .txt file or code block} {owner or if blank: you} | Creates a file at the specified location. |
mkdir | make_directory | mkdir {location} {name} {owner or if blank: you} | Creates a directory at the specified location. |
cp | copy | cp {location} {location} | Copies a file or directory from one location and places the copy in another location. |
mv | move | mv {location} {location} | Moves a file or directory to a new location. |
rm | remove | rm {location} | Deletes a file or directory. |
rn | rename | rn {location} {new name} | Changes the name of a file or directory. |
et | edit | et {file location} {write/append or w/a} {new contents attached as .txt file or code block} | Changes the contents of a file. |
run | run {file name} | Executes the code in a file. Actions performed by this code are considered to have been done by you. | |
kill | kill {reply or links to messages or message ids or if blank: all active} | Terminates active processes ran by you. | |
sudo | sudo {command} | Executes a command as su. All players may vote (👍 or 👎) on whether or not permission is granted. After 48 hours, permission is granted if there are more 👍 than 👎 votes. |
Each player may perform a number of commands per instance equivalent to their privileges value.
A player cannot perform a command (excluding sudo) unless they are the owner of the file and directory being affected.
~/boot/winning
The first player to become a 'superuser' (is_su = true) wins the cycle.
~/boot/judgement
There shall be a sole Judge, responsible for resolving rules disputes. An incumbent Judge can be removed with the assent of two players, but they should not be removed except for abuse of office. A person can cease being the Judge by publicly stating so.
A request for justice shall take the form of a question or statement. The proper response to a question is an answer to that question, and the proper response to a statement is the truth value of that statement.
Upon formal submission of a request for justice by a person other than themself in #request-for-justice, the Judge shall, as quickly as possible, issue a response to the request. This response shall be binding only to the extent that it reasonably directly pertains to the request, and only to the extent that it does not blatantly and obviously contradict rules text while still considering the expressed or clearly implied legislative intent.
Within 4 days of a judge issuing a ruling, a public vote of confidence on that ruling can be initiated in #request-for-justice. Votes may be cast in such a vote for a period of 2 days after initiation. Votes are to be cast by 👍 or 👎 reactions on a clearly designated poll message; if a person's vote is unclear, it is to affirm the judgement. A ruling is overturned if strictly more players vote in favor of overturning than affirming.
A ruling may be overturned by the Judge who made it within one week of being made. When a ruling is overturned in this manner, the Judge shall then issue a new ruling on the initial request, which shall be binding in the same manner as the original ruling.
An overturned ruling shall have no bearing on the interpretation of the rules or of the gamestate.
Any reputable player may become a candidate for the Judge by sending a message in the channel #judge-elections. If there are any Judge candidacies put forward during a week, the player whose message is both popular and has the most 👍 reactions from players becomes the Judge once that week ends. A Judge Candidacy message is popular if it has more 👍 than 👎 reactions from players on its initiating message. Ties are broken in favor of the player with the earliest text message during that week.