Skip to content

Commit

Permalink
feat: add resources
Browse files Browse the repository at this point in the history
  • Loading branch information
john-bv committed Sep 23, 2023
1 parent 6e60bea commit 2a72c54
Show file tree
Hide file tree
Showing 6 changed files with 263 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[workspace]
members = [
"netrex",
"netrex-ecs",
# "netrex-core" hidden for now
]
8 changes: 8 additions & 0 deletions netrex-ecs/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "netrex-ecs"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
14 changes: 14 additions & 0 deletions netrex-ecs/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
pub fn add(left: usize, right: usize) -> usize {
left + right
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}
72 changes: 72 additions & 0 deletions resources/netrex.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# The mode specifies how netrex will run.
# (ignore this for now)
#
# Allowed Values:
# vanilla: Run as a netrex server, but enable vanilla features
# realm: Ignores all netrex features and runs as a realm server
#
# Running in realm mode will DISABLE ALL netrex features like:
# - Console
# - RCON
# - Plugins
mode: vanilla

# Whether or not to use the server.properties file
# If redeclared in netrex.yaml, the values in server.properties will be ignored.
use_server_properties: true

# The network section specifies how netrex will listen for connections.
network:
# Raknet Specific Settings
# If this is not provided the default settings will be used:
# secure: false
# max_channels: 1
# max_connections: 100
raknet:
# This specifications follows RakNet protocol 9+ (MCPE)
# Whether or not to use secure connections
# Allowed Values: [true, false]
secure: false
# The maximum number of ordered channels allowed
# Allowed Values: 0-255
max_channels: 1
# The maximum number of connections allowed
# Allowed Values: any positive integer
max_connections: 100

# The port to listen on for IPv4 connections
# Allowed Values: 0-65535
port: 19132
# The port to listen on for IPv6 connections
# Allowed Values: 0-65535
port_v6: 19133

# Whether or not to host the server to the world.
# If this is set to false, the server will only be accessible
# from the local machine.
# Allowed Values: [true, false]
host: true

# These are compression related settings for the network.
compression:
# Whether or not to use compression
# Allowed Values: [true, false]
enabled: true
# The threshold for compression
# Allowed Values: 0-65535
threshold: 256
# The level of compression to use
# Determines how small the packets will be when sent to the client.
# If the value is too large the tradeoff will be slow decompress timings,
# but smaller packets, which will increase latency.
#
# General rule of thumb:
# Smaller = faster, but more bandwidth.
# Larger = slower, but less bandwidth.
#
# Allowed Values: 0-65535
level: 7

# The maximum MTU size to use for the network.
# Default: 1492
# Allowed Values: 0-65535
159 changes: 159 additions & 0 deletions resources/server.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
server-name=Dedicated Server
# Used as the server name
# Allowed values: Any string without semicolon symbol.

gamemode=survival
# Sets the game mode for new players.
# Allowed values: "survival", "creative", or "adventure"

force-gamemode=false
# force-gamemode=false (or force-gamemode is not defined in the server.properties)
# prevents the server from sending to the client gamemode values other
# than the gamemode value saved by the server during world creation
# even if those values are set in server.properties after world creation.
#
# force-gamemode=true forces the server to send to the client gamemode values
# other than the gamemode value saved by the server during world creation
# if those values are set in server.properties after world creation.

difficulty=easy
# Sets the difficulty of the world.
# Allowed values: "peaceful", "easy", "normal", or "hard"

allow-cheats=false
# If true then cheats like commands can be used.
# Allowed values: "true" or "false"

max-players=10
# The maximum number of players that can play on the server.
# Allowed values: Any positive integer

online-mode=true
# If true then all connected players must be authenticated to Xbox Live.
# Clients connecting to remote (non-LAN) servers will always require Xbox Live authentication regardless of this setting.
# If the server accepts connections from the Internet, then it's highly recommended to enable online-mode.
# Allowed values: "true" or "false"

allow-list=false
# If true then all connected players must be listed in the separate allowlist.json file.
# Allowed values: "true" or "false"

server-port=19132
# Which IPv4 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]

server-portv6=19133
# Which IPv6 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]

enable-lan-visibility=true
# Listen and respond to clients that are looking for servers on the LAN. This will cause the server
# to bind to the default ports (19132, 19133) even when `server-port` and `server-portv6`
# have non-default values. Consider turning this off if LAN discovery is not desirable, or when
# running multiple servers on the same host may lead to port conflicts.
# Allowed values: "true" or "false"

view-distance=32
# The maximum allowed view distance in number of chunks.
# Allowed values: Positive integer equal to 5 or greater.

tick-distance=4
# The world will be ticked this many chunks away from any player.
# Allowed values: Integers in the range [4, 12]

player-idle-timeout=30
# After a player has idled for this many minutes they will be kicked. If set to 0 then players can idle indefinitely.
# Allowed values: Any non-negative integer.

max-threads=8
# Maximum number of threads the server will try to use. If set to 0 or removed then it will use as many as possible.
# Allowed values: Any positive integer.

level-name=Bedrock level
# Allowed values: Any string without semicolon symbol or symbols illegal for file name: /\n\r\t\f`?*\\<>|\":

level-seed=
# Use to randomize the world
# Allowed values: Any string

default-player-permission-level=member
# Permission level for new players joining for the first time.
# Allowed values: "visitor", "member", "operator"

texturepack-required=false
# Force clients to use texture packs in the current world
# Allowed values: "true" or "false"

content-log-file-enabled=false
# Enables logging content errors to a file
# Allowed values: "true" or "false"

compression-threshold=1
# Determines the smallest size of raw network payload to compress
# Allowed values: 0-65535

compression-algorithm=zlib
# Determines the compression algorithm to use for networking
# Allowed values: "zlib", "snappy"

server-authoritative-movement=server-auth
# Allowed values: "client-auth", "server-auth", "server-auth-with-rewind"
# Enables server authoritative movement. If "server-auth", the server will replay local user input on
# the server and send down corrections when the client's position doesn't match the server's.
# If "server-auth-with-rewind" is enabled and the server sends a correction, the clients will be instructed
# to rewind time back to the correction time, apply the correction, then replay all the player's inputs since then. This results in smoother and more frequent corrections.
# Corrections will only happen if correct-player-movement is set to true.

player-movement-score-threshold=20
# The number of incongruent time intervals needed before abnormal behavior is reported.
# Disabled by server-authoritative-movement.

player-movement-action-direction-threshold=0.85
# The amount that the player's attack direction and look direction can differ.
# Allowed values: Any value in the range of [0, 1] where 1 means that the
# direction of the players view and the direction the player is attacking
# must match exactly and a value of 0 means that the two directions can
# differ by up to and including 90 degrees.

player-movement-distance-threshold=0.3
# The difference between server and client positions that needs to be exceeded before abnormal behavior is detected.
# Disabled by server-authoritative-movement.

player-movement-duration-threshold-in-ms=500
# The duration of time the server and client positions can be out of sync (as defined by player-movement-distance-threshold)
# before the abnormal movement score is incremented. This value is defined in milliseconds.
# Disabled by server-authoritative-movement.

correct-player-movement=false
# If true, the client position will get corrected to the server position if the movement score exceeds the threshold.

server-authoritative-block-breaking=false
# If true, the server will compute block mining operations in sync with the client so it can verify that the client should be able to break blocks when it thinks it can.

chat-restriction=None
# Allowed values: "None", "Dropped", "Disabled"
# This represents the level of restriction applied to the chat for each player that joins the server.
# "None" is the default and represents regular free chat.
# "Dropped" means the chat messages are dropped and never sent to any client. Players receive a message to let them know the feature is disabled.
# "Disabled" means that unless the player is an operator, the chat UI does not even appear. No information is displayed to the player.

disable-player-interaction=false
# If true, the server will inform clients that they should ignore other players when interacting with the world. This is not server authoritative.

client-side-chunk-generation-enabled=true
# If true, the server will inform clients that they have the ability to generate visual level chunks outside of player interaction distances.

block-network-ids-are-hashes=true
# If true, the server will send hashed block network ID's instead of id's that start from 0 and go up. These id's are stable and won't change regardless of other block changes.

disable-persona=false
# Internal Use Only

disable-custom-skins=false
# If true, disable players customized skins that were customized outside of the Minecraft store assets or in game assets. This is used to disable possibly offensive custom skins players make.

server-build-radius-ratio=Disabled
# Allowed values: "Disabled" or any value in range [0.0, 1.0]
# If "Disabled" the server will dynamically calculate how much of the player's view it will generate, assigning the rest to the client to build.
# Otherwise from the overridden ratio tell the server how much of the player's view to generate, disregarding client hardware capability.
# Only valid if client-side-chunk-generation-enabled is enabled
4 changes: 4 additions & 0 deletions test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/env/deno.exe
console.log("%cERR!", "color: #FF0000; font-size: 2em;", "This is an error message");
console.log('\nor\n')
console.log("%c[ERR]", "color: #FF0000; font-size: 2em;", "This is an error message");

0 comments on commit 2a72c54

Please sign in to comment.