diff --git a/.gitignore b/.gitignore
index 350b17e..ec36fcc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
+.DS_Store
+
# User-specific files
*.suo
*.user
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..dacb06a
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,17 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Arrowgene Ez2Off CLI",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build",
+ "program": "${workspaceRoot}/Arrowgene.Ez2Off.CLI/bin/Debug/netcoreapp2.0/Arrowgene.Ez2Off.CLI.dll",
+ "args": [],
+ "cwd": "${workspaceRoot}",
+ "stopAtEntry": false,
+ "console": "internalConsole",
+ "justMyCode": false
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..33256db
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,17 @@
+{
+ // See https://go.microsoft.com/fwlink/?LinkId=733558
+ // for the documentation about the tasks.json format
+ "version": "0.1.0",
+ "command": "dotnet",
+ "isShellCommand": true,
+ "args": [],
+ "tasks": [
+ {
+ "taskName": "build",
+ "args": [ ],
+ "isBuildCommand": true,
+ "showOutput": "silent",
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Arrowgene.Ez2Off.sln b/Arrowgene.Ez2Off.sln
index 7a87e48..ee8ec37 100644
--- a/Arrowgene.Ez2Off.sln
+++ b/Arrowgene.Ez2Off.sln
@@ -1,28 +1,48 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.23107.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arrowgene.Ez2Off", "Arrowgene.Ez2Off\Arrowgene.Ez2Off.csproj", "{292B623F-3664-4E84-B4B1-E2E0EFEE531E}"
+# Visual Studio 15
+VisualStudioVersion = 15.0.26124.0
+MinimumVisualStudioVersion = 15.0.26124.0
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arrowgene.Ez2Off", "Arrowgene.Ez2Off\Arrowgene.Ez2Off.csproj", "{8BA2A63C-24F0-4E18-B070-6DF232BB7E64}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arrowgene.Ez2Off.CLI", "Arrowgene.Ez2Off.CLI\Arrowgene.Ez2Off.CLI.csproj", "{8D6B3C9D-1572-406A-B5D6-E8CCD411223A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arrowgene.Ez2Off.CLI", "Arrowgene.Ez2Off.CLI\Arrowgene.Ez2Off.CLI.csproj", "{B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {292B623F-3664-4E84-B4B1-E2E0EFEE531E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {292B623F-3664-4E84-B4B1-E2E0EFEE531E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {292B623F-3664-4E84-B4B1-E2E0EFEE531E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {292B623F-3664-4E84-B4B1-E2E0EFEE531E}.Release|Any CPU.Build.0 = Release|Any CPU
- {8D6B3C9D-1572-406A-B5D6-E8CCD411223A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8D6B3C9D-1572-406A-B5D6-E8CCD411223A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8D6B3C9D-1572-406A-B5D6-E8CCD411223A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8D6B3C9D-1572-406A-B5D6-E8CCD411223A}.Release|Any CPU.Build.0 = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|x64.ActiveCfg = Debug|x64
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|x64.Build.0 = Debug|x64
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|x86.ActiveCfg = Debug|x86
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Debug|x86.Build.0 = Debug|x86
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|x64.ActiveCfg = Release|x64
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|x64.Build.0 = Release|x64
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|x86.ActiveCfg = Release|x86
+ {8BA2A63C-24F0-4E18-B070-6DF232BB7E64}.Release|x86.Build.0 = Release|x86
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|x64.ActiveCfg = Debug|x64
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|x64.Build.0 = Debug|x64
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|x86.ActiveCfg = Debug|x86
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Debug|x86.Build.0 = Debug|x86
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|x64.ActiveCfg = Release|x64
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|x64.Build.0 = Release|x64
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|x86.ActiveCfg = Release|x86
+ {B413E1B9-1880-4E4A-BF0F-6727FC40BB2A}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
EndGlobal
diff --git a/Arrowgene.Ez2Off/Arrowgene.Ez2Off.csproj b/Arrowgene.Ez2Off/Arrowgene.Ez2Off.csproj
index 4b2cabe..f10350f 100644
--- a/Arrowgene.Ez2Off/Arrowgene.Ez2Off.csproj
+++ b/Arrowgene.Ez2Off/Arrowgene.Ez2Off.csproj
@@ -1,72 +1,17 @@
-
-
-
+
- Debug
- AnyCPU
- {292B623F-3664-4E84-B4B1-E2E0EFEE531E}
- Library
- Properties
- Arrowgene.Ez2Off
- Arrowgene.Ez2Off
- v2.0
- 512
+ netstandard2.0
+ Arrowgene.Ez2Off
+ Arrowgene
+
+
+ Arrowgene.Ez2Off
+ 1.0.0.0
+ 1.0.0.0
+ Copyright © 2017 Arrowgene
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
- False
- ..\Solution Items\Arrowgene.Services.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
\ No newline at end of file
+
+
diff --git a/Arrowgene.Ez2Off/Properties/AssemblyInfo.cs b/Arrowgene.Ez2Off/Properties/AssemblyInfo.cs
deleted file mode 100644
index 0d79c33..0000000
--- a/Arrowgene.Ez2Off/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Arrowgene.Ez2Off")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Arrowgene.Ez2Off")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("292b623f-3664-4e84-b4b1-e2e0efee531e")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/README.md b/README.md
index edfe6aa..6b50d75 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,88 @@
-# Arrowgene.Ez2Off
+IF YOU HAVE THE LATEST EZ2ON REBOOT CLIENT, PLEASE UPLOAD IT AND SEND THE LINK TO ME! THANK YOU ALOT!
+===
+I want to make a server for the latest version of ez2on reboot, but I dont have the client, please help to find it!
+
+Arrowgene.Ez2Off
+===
Server Emulator for the Online Game Ez2On.
Client Download: https://mega.nz/#!AF4TQJ5L!sHoa76UNDys1ZBxzy3wrNVrgwRDS9eZtcXXULkbrPAI
+
+Running under OSX
+===
+
+### OSX - Server
+1) Ensure you have .NET Core 2.0 Preview 1 or higher
+- [Download Page](https://www.microsoft.com/net/core/preview#macos)
+- [Direct Download .dmg](https://go.microsoft.com/fwlink/?linkid=848729)
+
+2) Clone the project:
+```
+git clone https://github.com/Arrowgene/Arrowgene.Ez2Off.git
+```
+
+3) Change to the 'Command Line Interface'-Project:
+```
+cd Arrowgene.Ez2Off/Arrowgene.Ez2Off.CLI
+```
+
+4) Restore the project dependencies:
+```
+dotnet restore
+```
+
+5) Run the Server:
+```
+dotnet run
+```
+
+### OSX - Game
+
+To Run the game on OSX you will need wine
+
+1) Follow the tutorial until you completed Part 4:
+https://www.davidbaumgold.com/tutorials/wine-mac/
+
+2) Copy the game directory to your wine 'C' drive.
+The 'C'-drive can usually be found at your home directory
+```
+cd ~/.wine/drive_c
+```
+
+3) Copy the 'start.sh'-file inside the game directory
+
+4) Start the game:
+```
+~/.wine/drive_c/ez2on/start.sh
+```
+
+If the server is running the game should connect to the Server.
+
+### OSX - Development - VSCode
+
+1) Download VSCode [https://code.visualstudio.com/](https://code.visualstudio.com/)
+2) Install the C# Extension [https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp](https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp)
+3) Make changes :)
+
+
+Running under Windows
+===
+
+### Windows - Server
+1) Ensure you have .NET Core 2.0 Preview 1 or higher
+[https://www.microsoft.com/net/core#windowsvs2017](https://www.microsoft.com/net/core#windowsvs2017)
+
+2) Clone the project:
+```
+git clone https://github.com/Arrowgene/Arrowgene.Ez2Off.git
+```
+
+3) Open to the Project in Visual Studio and run the 'Command Line Interface'-Project.
+I'm not sure about the exact steps as I havent tested this on a Windows box yet.
+I Will update this tutorial once I know the exact steps
+
+### Windows - Game
+
+After downloadig the game execute the 'start.cmd'-file.
+If the server is running the game should connect to the Server.
\ No newline at end of file
diff --git a/Solution Items/Arrowgene.Services.dll b/Solution Items/Arrowgene.Services.dll
deleted file mode 100644
index 76aafa4..0000000
Binary files a/Solution Items/Arrowgene.Services.dll and /dev/null differ
diff --git a/Solution Items/Arrowgene.Services.pdb b/Solution Items/Arrowgene.Services.pdb
deleted file mode 100644
index 947e9b3..0000000
Binary files a/Solution Items/Arrowgene.Services.pdb and /dev/null differ
diff --git a/Solution Items/Arrowgene.Services.xml b/Solution Items/Arrowgene.Services.xml
deleted file mode 100644
index dded863..0000000
--- a/Solution Items/Arrowgene.Services.xml
+++ /dev/null
@@ -1,592 +0,0 @@
-
-
-
- Arrowgene.Services
-
-
-
-
- Dealing with OS
-
-
-
- UNKNOWN
-
-
- WIN_3_1
-
-
- WIN_95
-
-
- WIN_98
-
-
- WIN_ME
-
-
- WIN_NT_3_5
-
-
- WIN_NT_4
-
-
- WIN_2000
-
-
- WIN_XP
-
-
- WIN_2003
-
-
- WIN_VISTA
-
-
- WIN_2008
-
-
- WIN_7
-
-
- WIN_2008_R2
-
-
- WIN_8
-
-
- WIN_8_1
-
-
- WIN_10
-
-
- WIN_CE
-
-
- UNIX
-
-
- XBOX
-
-
- MAX_OSX
-
-
-
- Returns version of OS.
-
-
- Returns .
-
-
- In order to detect cetain windows versions,
- it is necessary to add a custom .manifest file to the project.
- https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241%28v=vs.85%29.aspx
- Otherwise win 8.1 will be reconized as win 8.0 for example.
-
-
-
-
- Find subarray in the source array.
-
- Source array to search for needle.
- Needle we are searching for.
- Start index in source array.
- Number of bytes in source array, where the needle is searched for.
- Returns starting position of the needle if it was found or -1 otherwise.
-
-
-
- Helps with IPAddress
-
-
-
-
- https://msdn.microsoft.com/en-us/library/system.net.sockets.socketoptionname.aspx
- IPv6Only
- Indicates if a socket created for the AF_INET6 address family is restricted to IPv6 communications only.
- Sockets created for the AF_INET6 address family may be used for both IPv6 and IPv4 communications.
- Some applications may want to restrict their use of a socket created for the AF_INET6 address family to IPv6 communications only.
- When this value is non-zero (the default on Windows), a socket created for the AF_INET6 address family can be used to send and receive IPv6 packets only.
- When this value is zero, a socket created for the AF_INET6 address family can be used to send and receive packets to and from an IPv6 address or an IPv4 address.
- Note that the ability to interact with an IPv4 address requires the use of IPv4 mapped addresses.
- This socket option is supported on Windows Vista or later.
-
-
-
-
- Determines most possible local for connecting to the specified .
-
-
-
-
-
-
- Determines the of the specified .
-
-
-
-
-
-
- Try to get mac for ip, if not possible get the next best mac.
-
-
-
-
-
-
- Try to get the next best mac
-
-
-
-
-
- Returns IP Address for given hostname.
- If Supported, returns IPv6 IP,
- if no IPv6 IP was found or IPv6 is not Supported,
- it will try to return a IPv4 IP address.
-
- Name of host.
-
- Returns on success,
- null on failure
-
-
-
-
- Returns of localhost for a given
-
-
-
-
-
-
- Returns IP Address for given hostname.
- Tries to return the IP of specified IP version,
- if a IPv6 IP can not be retrived,
- it will be tried to return a IPv4 IP.
-
- Name of host.
- Specific IP version.
-
- Returns on success,
- null on failure.
-
-
-
-
- Determines wether IPv6 may be supported.
-
-
- Returns .
-
-
-
-
- Connects the specified socket.
-
- The IP endpoint.
- The timeout.
-
-
-
- Connects the specified socket.
-
- IP endpoint
- Port
- timeout
-
-
-
- Reads all Bytes
-
-
-
-
- Reads all Bytes
-
-
-
-
- Appends all Bytes from buffer
-
-
-
-
- Create a New INI file to store or load data
-
-
-
-
- INIFile Constructor.
-
-
-
-
-
- Write Data to the INI File
-
-
- Section name
-
- Key Name
-
- Value Name
-
-
-
- Read Data Value From the Ini File
-
-
-
-
-
-
-
-
- Logging Class
-
- Logs message combined with id and type as
- Events for log writings, will only occur if its declared as safe
-
-
-
- Notifies when a write occured.
- Don't block this Action by the UI thread, use Dispatcher.BeginInvoke.
-
-
-
- Write Logs to Debug output.
-
-
-
-
- Clears all stored
-
-
-
- Writes a new
-
-
-
-
- Writes a new
- Message {0}
- Argument
- Log Category
-
-
-
- Writes a new
- Message {0}
- Argument
- Argument
- Log Category
-
-
-
- Writes a new
- Message
- Log Category
-
-
-
- Writes a new
- Message
-
-
-
- Receive all
-
- Dictionary containing id associated by
-
-
-
- Http Server needs admin priveleges
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Creates a with configureable default values.
-
-
-
-
- Size of read buffer.
- Bigger size results in fewer copy actions,
- but increases memory allocation.
-
-
-
-
- Timeout in ms to wait till a http response arrives.
-
-
-
-
- Exception message of the last request.
-
-
-
-
- URL of the last request.
- Available after a request.
-
-
-
-
- Headers of the last response.
- Available after a request.
-
-
-
-
- Server .
-
-
-
-
- Server port.
-
-
-
-
- Current logging instance where logs get written to.
-
-
-
-
- Occures when a client disconnected.
-
-
-
-
- Occures when a client connected.
-
-
-
-
- Occures when a packet is received.
-
-
-
-
- Occures when a packet is received.
-
-
-
-
- Class to manage packet content
-
-
-
-
- Id to identify the packet
-
-
-
-
- Transfered Object
-
-
-
-
- Returns concrete class or value
-
-
-
-
-
-
- Creates a new instance with a specified serializer and .
-
-
-
-
-
-
-
-
- Creates a new instance.
-
-
-
-
-
-
- Enables measures to achieve an IPv4/IPv6 agnostic socket.
- Binds always automatically to .
- Sets the (27) "USE_IPV6_ONLY" to false.
-
-
-
-
- Current logging instance where logs get written to.
-
-
-
-
- Server status.
-
-
-
-
- Servers .
-
-
-
-
- Servers port.
-
-
-
-
- Maximum number of active Clients
-
-
-
-
- Occures when a client disconnected.
-
-
-
-
- Occures when a client connected.
-
-
-
-
- Occures when a packet is received.
-
-
-
-
- Start accepting connections,
- Creates a new instance if none is set.
-
-
-
-
- Stops the server.
-
-
-
-
- Class for handling udp sending and receiving of packets.
- Call before sending any data, to be able to receive a response.
- If you act as a server with , there is no need to call
-
-
-
-
- Defines the maximum size to be received or send,
- drops requests exceeding this limit.
-
-
-
-
- Creates a new instance of
-
-
-
-
- Occurs when data is received
-
-
-
-
- Listen for incomming data and start receiving
-
-
-
-
-
- Send data to an destination
-
-
-
-
-
-
- Send data as broadcast.
-
-
-
-
-
-
- Starts receiving data
-
-
-
-
- Stops receiving any data
-
-
-
-
- Releases all ressources
-
-
-
-
- Scan for open ports.
-
-
-
-
- Initializes a new PortScan.
-
- Simultaneous connections
- Time to wait for a response, before a port counts as closed
-
-
-
- Scan Completed
-
-
-
-
- Simultaneous connections.
-
-
-
-
- Scan a given for a port range.
-
-
-
-
-
-
-
- Scan a pool of for a port.
-
-
-
-
-
-
diff --git a/start.sh b/start.sh
new file mode 100755
index 0000000..5cfc4d1
--- /dev/null
+++ b/start.sh
@@ -0,0 +1,3 @@
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd $DIR
+wine "EZ2ON_EMU.exe" 127.0.0.1 crbtest999id 1234567890 1
\ No newline at end of file