refractorgscm / refractor Goto Github PK
View Code? Open in Web Editor NEWAn open-source game server community manager built with Go.
Home Page: https://refractor.dmas.dev
License: GNU General Public License v3.0
An open-source game server community manager built with Go.
Home Page: https://refractor.dmas.dev
License: GNU General Public License v3.0
Hey,
Earlier i made a bug report about the playerlist refresh. I just noticed if the other user does not have administrator rights(in group settings), it will not have the option to refresh the playerlist.
It will be good if Refractor can run on Heroku. Heroku has docker and psql addon support, I guess it is possible to run Refractor on Heroku. Therefore, the admin can use Refractor for free instead of buying a VPS.
Thank you.
There are multiple issues with using 0 to represent permanent infractions.
To solve these issues, we should use either a struct wrapper around an int value or a known negative value to represent a permanent infraction duration.
It would be good to have both {{DURATION}} and {{DURATION_REMAINING}} for clarity's sake.
This would also be useful in the case of infraction updates (e.g ban updates). Currently, only sync commands set {{DURATION}} to the time remaining while any other infraction action command is run with {{DURATION}} as the initial infraction duration.
Introducing this new placeholder for all infraction types would help make things clearer and allow for more customization.
Hey,
A search option for names in the playerlist and that the player names order in alphabet.
Thanks!
How to grant permissions to the first user? thank you.
Mordhau, one of the supported games, can broadcast moderation actions (kicks, bans, etc).
This information can be taken and used to create an infraction with the duration and reason provided. The code to link users to players is already in place, so that functionality can use that to assign a UserID to the created infractions.
In the case where a linked player can't be found, UserID can be marked as null since it's a nullable field. There can be an additional API endpoint added for fetching unclaimed infractions (infractions which do not have a UserID set).
To aid in this process, the name of the in game admin who created the infraction could also be added (prepended maybe?) to the infraction reason.
Hey,
sometimes the server is for example showing 27 players while there is 12 online. Also in the playerlist showing players that is not in the server, the only way to solve this is hitting the force refresh button, page refresh does not help, so only administrators are able to solve it for others that synced.
Hey,
The results of the logs are showing on page one the first log dates of an user, not the date. You basically have to click each page to see the latest message that guy has said. Perhaps maybe changing it into this as well? Screenshot
Hey,
When giving a player an infraction the name will be only colored if you refresh the page. Is it possible to make a live version playerlist like BattleMetrics? So that a person gets an infraction that the other user who uses Refractor sees that the name gets colored without refreshing the web page.
Mordhau's RCON implementation has a number of issues. Known issues should be documented under this issue to keep a
For starters:
To be clear, these issues are not fixable by Refractor, instead they must be fixed by Mordhau's devs, Triternion. These issues are only documented here to help keep a record of them as well as to alert contributors to their existence.
Hey,
A select date and end date like we have in chat logs, to see for example how many total infractions(warns/bans/kicks/mutes) the admin did last month, is cool to record their monthly activity like that.
Thanks!
The user failed to get invited, when recovering the account he is able to make further his account since then he receives a lost password / or verification mail. But the invites were never successful.
I ran docker logs refractor -f
to gather you info.
{"level":"error","ts":1636490677.537055,"caller":"api/errorhandler.go:69","msg":"An error occurred","error":"gomail: could not send email 1: 553 5.7.1 <[email protected]>: Sender address rejected: not owned by user [email protected]","stacktrace":"Refractor/pkg/api.GetEchoErrorHandler.func1\n\t/build/pkg/api/errorhandler.go:69\ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:647\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2878\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:1929"}
Thanks!
Hey,
A place holder for Refractor admin names, so that if you punish a player he knows who punished him. You can for example use it for {{PLAYER_NAME}} has been warned by {{ADMIN_NAME}}, reason: {{REASON}}.
Reported by @Deathay in issue #13 which contained multiple bugs/suggestions, each of which will be re-opened under a new issue for better tracking.
Original wording:
Synchronization bans, a toggle option like this as example https://i.imgur.com/4f6hLLO.png + it would nice if it's displayed as well on the infractions logging system https://i.imgur.com/oaNfVo7.png
Players are not showing up in Mineraft servers. Also no records of users in database.
Hey, when using the Refresh button screen the colors of infractions dissapears, you have to use F5(refresh webpage) to see them back.
Hello,
I have added a Minecraft server and Refractor instantly no longer works. The error i've been getting is always the same, after server 79 this shows up.
{"level":"info","ts":1644778126.1706333,"caller":"build/main.go:479","msg":"RCON client connected","Server":71}
{"level":"info","ts":1644778126.749362,"caller":"build/main.go:479","msg":"RCON client connected","Server":77}
{"level":"info","ts":1644778126.8826191,"caller":"build/main.go:479","msg":"RCON client connected","Server":78}
{"level":"info","ts":1644778127.0157504,"caller":"build/main.go:479","msg":"RCON client connected","Server":74}
{"level":"info","ts":1644778127.6294723,"caller":"build/main.go:479","msg":"RCON client connected","Server":65}
{"level":"info","ts":1644778129.0178585,"caller":"build/main.go:479","msg":"RCON client connected","Server":69}
{"level":"info","ts":1644778130.0505824,"caller":"build/main.go:479","msg":"RCON client connected","Server":79}
panic: runtime error: makeslice: len out of range
goroutine 1 [running]:
github.com/refractorgscm/rcon/packet.DecodeClientPacket({0xc36b70, 0x10b7f48}, {0xc1c700, 0xc0004ea1e0})
/go/pkg/mod/github.com/refractorgscm/[email protected]/packet/client.go:139 +0x176
github.com/refractorgscm/rcon.(*Client).readPacketTimeout(0xc000325b60)
/go/pkg/mod/github.com/refractorgscm/[email protected]/connection.go:69 +0x232
github.com/refractorgscm/rcon.(*Client).authenticate(0xc000325b60)
/go/pkg/mod/github.com/refractorgscm/[email protected]/client.go:314 +0x73
github.com/refractorgscm/rcon.(*Client).Connect(0xc000325b60)
/go/pkg/mod/github.com/refractorgscm/[email protected]/client.go:149 +0x1d6
Refractor/internal/rcon/service.(*rconService).CreateClient(0xc000434000, 0xc00047cdc0)
/build/internal/rcon/service/rcon_service.go:100 +0x265
main.SetupServerClients({0xc3d968, 0xc000434000}, {0xc3d9f0, 0xc000413980}, 0xc0000f95c0)
/build/main.go:474 +0x54b
main.main()
/build/main.go:252 +0x2a25
I have restarted, reboot the server, older version but no luck.
When any connection details for a server is updated, the backend service should disconnect and re-create the server's current RCON client to make the changes come into effect. Currently, this doesn't happen so the changes only come into effect next restart.
This appears to be a scan error from a nil timestamp (modifiedat) into a time.Time field.
Hey,
When having multiple servers it is nice to use numbers to order them. So far i know it works on alphabet but i can use numbers from 1-9, when going above that number it restacks back to 1 for example โ10โ goes back to number 1.
screen
Reported by @Deathay in issue #13 which contained multiple bugs/suggestions, each of which will be re-opened under a new issue for better tracking.
Original wording:
Synchronization mutes, a toggle option like this as example https://i.imgur.com/4f6hLLO.png + it would nice if it's displayed as well on the infractions logging system https://i.imgur.com/oaNfVo7.png (picture of ban system)
Hello,
This was actually quite long time a bug i always forgot to report.
The cpu usage is extremely high after a time, i run this on a two core server, it works normal then randomly one core has been up to 100% and starts using the other core till then that bugs out to 100% as well. By solving it i restart docker docker restart $(docker ps -q)
. Do you have this similar issue? I also have run many servers on it, perhaps it is the logging of rcon?
One month stat of cpu: screen image
When banning, kicking, muting, warning a person the options stays in the user or be selected on a new user if you refresh the server list. When you kick, ban or the person leaves the server you have to refresh your page because you can no longer use these options on the other users, it bugs + playerlist can also no longer be refreshed. Maybe if you could test it out on your panel, it's quiete hard to explain or DM me on discord :D
I got this error after entering the data on ./quickstart.sh
with test mode ๐ค
OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "proc" to rootfs at "/proc" caused: mount through procfd: permission denied: unknown
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
Docker version 20.10.10, build b485636
docker-compose version 1.23.2, build 1110ad01
RUNNING IN TEST MODE
The various docker containers will now be built.
You will see large amount of console output you may or may not recognize. Please let the script run uninterrupted.
It may take several minutes to complete.
Building refractor-frontend
Step 1/13 : FROM node:15-alpine AS build
---> 75631da67663
Step 2/13 : RUN apk --no-cache add git
---> Running in fcfb834f700b
ERROR: Service 'refractor-frontend' failed to build: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "proc" to rootfs at "/proc" caused: mount through procfd: permission denied: unknown
Starting nginx...
Building refractor
Step 1/24 : FROM golang:alpine AS build
---> cfd0f4793b46
Step 2/24 : RUN apk --no-cache add gcc g++ make git
---> Running in 999936a3afe9
ERROR: Service 'refractor' failed to build: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "proc" to rootfs at "/proc" caused: mount through procfd: permission denied: unknown
Deleting dummy certificate for panel.dukeofyork.org...
Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "proc" to rootfs at "/proc" caused: mount through procfd: permission denied: unknown
Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "proc" to rootfs at "/proc" caused: mount through procfd: permission denied: unknown
ERROR: No containers to restart
If you received a message from nginx mentioning an unknown or disconnected host refractor, something prevented the backend from starting.
You should run docker logs refractor to see what the issue is.
Once the issue was fixed and the backend is functioning normally, you must restart the proxy using docker restart nginx
If you didn't get any errors, then you're all set!
Enjoy Refractor!
Infraction commands are currently only run on the server they were created on. This doesn't make sense in all cases. For example, if you ban someone from one server you would expect them to be banned from all servers (of the same game).
A feature to set the scope of command execution to either the origin server or all servers is required to accommodate this.
Relates to #36
Reported by @Deathay in issue #13 which contained multiple bugs/suggestions, each of which will be re-opened under a new issue for better tracking.
Original wording:
A system when you warn a person that his name in the playerlist turns yellow, when you kick the person and he joins back that it displays red color as name, and this with a customized ResetDuration when the name goes back to normal default colour.
Hey,
When banning or muting a player PERMANENT it does not sync. It only works on the server where you created the ban/mute.
Thanks for the v0.3.0 release :)
Hey, when banning a person in synchronization the ban will only start to work if you joined the server once, then the command has been sent so the time will never be right if you run for example multiple servers, if you get banned for 2 weeks and join the other server next week means that you'll get banned on that different server for 2 weeks meanwhile there is one week left in the panel (the server where you joined week earlier). Also unbanning in synchronization does not work, only for the server you selected but if you did not join that server when the ban was active(on the panel) you will never be banned on any other servers because you never joined them, sync ban only sends the command when you join the server, then you'll be banned. Mute works fine in synchronization, but unmute command does not work on other servers, only the only who was selected. quiete hard to explain, hopefully this was understandable :D
Hey,
For the rest i'd have to say you did a great job so far for Refractor, it really has been improved in a fast time, thank you.
ISSUE
Users
you cannot invite other people to the panel, it's the same page as Groups
.Feature requests
Sometimes playerlist cannot be refreshed until you have edited the rcon password again, then it works again. Feels like it's not remembering the password after a while, although it shows new players that joins the servers still pops up but some people never leaves when this issue occurred & all commands just works perfectly still fine.
With the introduction of more asynchronous code, there are now concurrent map write errors in the RCON service. Adding mutexes should resolve this.
Hey,
When selecting the user in Infraction Records
it's not alphabetic. Can this be alphabetic too? <3
Hey,
I have been thinking about a Raw Command executor to add admins for example on all or one server(s), it can also be used by other stuff that would be useful.
When deleting a server and creating a new one it stacks up with server IDs, it does not re-use the old serverID that was created before. When deleting a server means also you can no longer see which old server he was banned from only the ID(does not really matter for me) but the main issue is when you look up Infraction Records is that you won't see the infractions in the list if you select an admin his username, only on the active servers which were never deleted.
The RCON client was fully rewritten to better support game features, use far fewer resources, use only one connection and more. An upgrade is required.
Refactoring will be required.
Hey, noticed that there are small issues with the player refresh sometimes.
Error 1: this actually does not happen alot, just cannot use playerlist refresh until i rewrite the password again and save.
{"level":"error","ts":1638978920.8516383,"caller":"service/rcon_service.go:335","msg":"Could not execute RCON player list command","Server":31,"Command":"PlayerList","error":"could not get command response: mailbox read operation timed out: read timeout","errorVerbose":"read timeout\ngithub.com/refractorgscm/rcon/errs.init\n\t/go/pkg/mod/github.com/refractorgscm/[email protected]/errs/errors.go:8\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6498\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6475\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6475\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6475\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6475\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:238\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nmailbox read operation timed out\ngithub.com/refractorgscm/rcon.(*Client).getResponse\n\t/go/pkg/mod/github.com/refractorgscm/[email protected]/client.go:408\ngithub.com/refractorgscm/rcon.(*Client).ExecCommand\n\t/go/pkg/mod/github.com/refractorgscm/[email protected]/client.go:345\nRefractor/internal/rcon/clientcreator.(*Client).RunCommand\n\t/build/internal/rcon/clientcreator/clientcreator.go:41\nRefractor/internal/rcon/service.(*rconService).getOnlinePlayers\n\t/build/internal/rcon/service/rcon_service.go:333\nRefractor/internal/rcon/service.(*rconService).RefreshPlayerList\n\t/build/internal/rcon/service/rcon_service.go:243\nRefractor/internal/server/delivery/http.(*serverHandler).RefreshPlayerList\n\t/build/internal/server/delivery/http/server_handler.go:94\nRefractor/pkg/api/middleware.(*Enforcer).CheckAuth.func1.1\n\t/build/pkg/api/middleware/enforcer.go:100\nRefractor/pkg/api/middleware.NewActivationMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:162\nRefractor/pkg/api/middleware.NewAPIProtectMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:250\ngithub.com/labstack/echo/v4.(*Echo).add.func1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:552\ngithub.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:186\ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:662\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2878\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:1929\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\ncould not get command response\ngithub.com/refractorgscm/rcon.(*Client).ExecCommand\n\t/go/pkg/mod/github.com/refractorgscm/[email protected]/client.go:347\nRefractor/internal/rcon/clientcreator.(*Client).RunCommand\n\t/build/internal/rcon/clientcreator/clientcreator.go:41\nRefractor/internal/rcon/service.(*rconService).getOnlinePlayers\n\t/build/internal/rcon/service/rcon_service.go:333\nRefractor/internal/rcon/service.(*rconService).RefreshPlayerList\n\t/build/internal/rcon/service/rcon_service.go:243\nRefractor/internal/server/delivery/http.(*serverHandler).RefreshPlayerList\n\t/build/internal/server/delivery/http/server_handler.go:94\nRefractor/pkg/api/middleware.(*Enforcer).CheckAuth.func1.1\n\t/build/pkg/api/middleware/enforcer.go:100\nRefractor/pkg/api/middleware.NewActivationMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:162\nRefractor/pkg/api/middleware.NewAPIProtectMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:250\ngithub.com/labstack/echo/v4.(*Echo).add.func1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:552\ngithub.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:186\ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:662\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2878\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:1929\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581","stacktrace":"Refractor/internal/rcon/service.(*rconService).getOnlinePlayers\n\t/build/internal/rcon/service/rcon_service.go:335\nRefractor/internal/rcon/service.(*rconService).RefreshPlayerList\n\t/build/internal/rcon/service/rcon_service.go:243\nRefractor/internal/server/delivery/http.(*serverHandler).RefreshPlayerList\n\t/build/internal/server/delivery/http/server_handler.go:94\nRefractor/pkg/api/middleware.(*Enforcer).CheckAuth.func1.1\n\t/build/pkg/api/middleware/enforcer.go:100\nRefractor/pkg/api/middleware.NewActivationMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:162\nRefractor/pkg/api/middleware.NewAPIProtectMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:250\ngithub.com/labstack/echo/v4.(*Echo).add.func1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:552\ngithub.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:186\ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:662\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2878\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:1929"}
{"level":"error","ts":1638978920.85185,"caller":"api/errorhandler.go:69","msg":"An error occurred","error":"could not get command response: mailbox read operation timed out: read timeout","errorVerbose":"read timeout\ngithub.com/refractorgscm/rcon/errs.init\n\t/go/pkg/mod/github.com/refractorgscm/[email protected]/errs/errors.go:8\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6498\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6475\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6475\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6475\nruntime.doInit\n\t/usr/local/go/src/runtime/proc.go:6475\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:238\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nmailbox read operation timed out\ngithub.com/refractorgscm/rcon.(*Client).getResponse\n\t/go/pkg/mod/github.com/refractorgscm/[email protected]/client.go:408\ngithub.com/refractorgscm/rcon.(*Client).ExecCommand\n\t/go/pkg/mod/github.com/refractorgscm/[email protected]/client.go:345\nRefractor/internal/rcon/clientcreator.(*Client).RunCommand\n\t/build/internal/rcon/clientcreator/clientcreator.go:41\nRefractor/internal/rcon/service.(*rconService).getOnlinePlayers\n\t/build/internal/rcon/service/rcon_service.go:333\nRefractor/internal/rcon/service.(*rconService).RefreshPlayerList\n\t/build/internal/rcon/service/rcon_service.go:243\nRefractor/internal/server/delivery/http.(*serverHandler).RefreshPlayerList\n\t/build/internal/server/delivery/http/server_handler.go:94\nRefractor/pkg/api/middleware.(*Enforcer).CheckAuth.func1.1\n\t/build/pkg/api/middleware/enforcer.go:100\nRefractor/pkg/api/middleware.NewActivationMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:162\nRefractor/pkg/api/middleware.NewAPIProtectMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:250\ngithub.com/labstack/echo/v4.(*Echo).add.func1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:552\ngithub.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:186\ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:662\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2878\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:1929\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\ncould not get command response\ngithub.com/refractorgscm/rcon.(*Client).ExecCommand\n\t/go/pkg/mod/github.com/refractorgscm/[email protected]/client.go:347\nRefractor/internal/rcon/clientcreator.(*Client).RunCommand\n\t/build/internal/rcon/clientcreator/clientcreator.go:41\nRefractor/internal/rcon/service.(*rconService).getOnlinePlayers\n\t/build/internal/rcon/service/rcon_service.go:333\nRefractor/internal/rcon/service.(*rconService).RefreshPlayerList\n\t/build/internal/rcon/service/rcon_service.go:243\nRefractor/internal/server/delivery/http.(*serverHandler).RefreshPlayerList\n\t/build/internal/server/delivery/http/server_handler.go:94\nRefractor/pkg/api/middleware.(*Enforcer).CheckAuth.func1.1\n\t/build/pkg/api/middleware/enforcer.go:100\nRefractor/pkg/api/middleware.NewActivationMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:162\nRefractor/pkg/api/middleware.NewAPIProtectMiddleware.func1.1\n\t/build/pkg/api/middleware/protect.go:250\ngithub.com/labstack/echo/v4.(*Echo).add.func1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:552\ngithub.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:186\ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:662\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2878\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:1929\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581","stacktrace":"Refractor/pkg/api.GetEchoErrorHandler.func1\n\t/build/pkg/api/errorhandler.go:69\ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP\n\t/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:663\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2878\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:1929"}
Issue 2: server randomly disconnected, i need also to refill the password and hit save or restart docker. Logs not yet provided since it is every morning doing it over mobile but i will send it the next time, it happens every 1-3 days.
Disconnection issue
I noticed with Refractor it has random disconnections, it re-connects back after a few seconds or a bit longer. I will change rcon time-out in game.ini
file to a longer time and will post back if that fixed or not.
Feature requests / rework
[Server]:{{PLAYER_NAME}} Has been warned by {{ADMIN.NAME}}. Reason: {{REASON}}
{{ADMIN.NAME}} Has kicked you out the server. Reason: {{REASON}}
When you are about to give an user an infraction and the user leaves the server, it will move to a new user and the ban will be done on that new user instead of the user who left the game.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.