Giter Club home page Giter Club logo

refractor's People

Contributors

dsnidr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

battlefieldduck

refractor's Issues

Force Refresh playerlist

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.

Suggestion: Heroku support

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.

0 being used to represent permanent infractions

There are multiple issues with using 0 to represent permanent infractions.

  1. It's the zero value for int values in Go. While this in itself is not necessarily an issue, it would be safer to avoid using a zero value to represent something as significant as a permanent ban or mute.
  2. It breaks infraction synchronization.
  3. 0 minutes won't necessarily mean a permanent duration in all games.

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.

Infraction commands {{DURATION_REMAINING}} placeholder

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.

Infraction creation from in-game moderation broadcasts

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.

Playerlist

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.

Chat/Infractions logs

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

Playerlist Name Display

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 RCON Issues

Mordhau's RCON implementation has a number of issues. Known issues should be documented under this issue to keep a

For starters:

  1. Some moderation action channel broadcasts do not send back the ID of the staff member who caused the action (see #3)
  2. When executing ban commands with a duration of 0, the server does not send any response.

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.

Infraction Records

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!

Issue inviting users

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!

Placeholder request

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}}.

Playerlist MC

Players are not showing up in Mineraft servers. Also no records of users in database.

Refractor no longer working after deploying Minecraft server

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.

Internal error on viewing users with no linked players

Steps to Reproduce

  1. Create some users
  2. Link some users and not others
  3. Reload
  4. View players with no linked players
  5. Error is displayed

Cause

This appears to be a scan error from a nil timestamp (modifiedat) into a time.Time field.

Server list

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

CPU usage

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

kick/ban player in playerlist

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

Error on quickstart.sh (Ubuntu 18.04.5 LTS)

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

OS Version

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:        18.04
Codename:       bionic

Docker Version

Docker version 20.10.10, build b485636

Docker Compose Version

docker-compose version 1.23.2, build 1110ad01

Full Log

     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!

Select server to execute commands on

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

Recent infractions change player list name display

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.

Sync ban issue

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 :)

synchronization issue

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

V0.4.0 bugs

Hey,

  1. Force playerlist refresh does only show up for Super Admin, not other users. screenshot
  2. When warning a player the user is still selected (thought i have reported this earlier but couldn't find it :D). edit: I see that i posted it in Refractor-Svelte, my bad.
  3. When selecting in playerlist Warn, Mute, Kick or Ban and afterwards hit cancel it also does not deselect. (maybe that is supposed to be, not sure how you'd would like it).
  4. When deleting a Ban/Mute meanwhile one of the servers are offline will not push the command when the server has reestablished, i'm not sure if this is even possible to do, i don't think that's also a big issue but i wanted to tell you this if it was an easy fix or not, if not you can let it be as it is, seems to be hard to do so.
  5. When the Infraction Timespan ends, the name will not be uncolored, only if you refresh the playerlist OR webpage.

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.

Bug report / Feature requests

ISSUE

  1. Inside the Admin settings tab when you select Users you cannot invite other people to the panel, it's the same page as Groups.
  2. Repealed Infractions cannot be deleted.

Feature requests

  1. 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
  2. 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)
  3. 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.

Playerlist Refresh bug

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.

Fatal concurent write errors

With the introduction of more asynchronous code, there are now concurrent map write errors in the RCON service. Adding mutexes should resolve this.

Infraction records

Hey,

When selecting the user in Infraction Records it's not alphabetic. Can this be alphabetic too? <3

Raw Command Executor

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.

Servers ID

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.

Upgrade RefractorGSCM/RCON to v1.0.0

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.

Playerlist Refresh bug

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.

Execute configurable commands on infraction create

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

  1. Warn log > When you warn a player on Refractor that it uses a server message like [Server]:{{PLAYER_NAME}} Has been warned by {{ADMIN.NAME}}. Reason: {{REASON}}
  2. Kick log > Kicks the player from the server | {{ADMIN.NAME}} Has kicked you out the server. Reason: {{REASON}}
  3. Mute > That it also mutes in-game, currently this is not a feature but a logging system(also an option to unmute a player and sync it like the ban system).
  4. Ban > Currently this only works when the person enters the server. Would be nice if this kicks the player immediately out of the server and add an option to unban the person.

Playerlist

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.