I know it's very hard to code in a "team filter" - but I might have a solution...
First off - the idea.
The idea is that the filter detects when someone is teaming, and sends them a message that they are teaming OR sends a person that signed up as a 'reporter' a message so they can record and report them. I know this would be handy as I sometimes specifically go after teamers in solo sky/egg wars. (There are a lot there).
How it would work.
I know from experience that programming is hard. But I'm certain cubecraft has many talented people on board. I'll share my idea how the filter would work below:
First off, we need a way to check which people are possibly teaming, we can do this by checking for people that are not more than 8 blocks apart. (Just so that in skywars, you'll not get false-positives because people are on separate islands)
Then we need to know if they are really teaming, so there needs to be a check involved that will tell if they are attacking each other.
But what if they don't see each other?
Then we will need to check the Y-levels (to see if they are 5 blocks away from each other in Y-level) OR we could check if the player in question has looked at the hotbox of the other person in question multiple times, whilst they where in the 'hit-radius'. Of each other.
What if they are just in these criteria for less then a second?
They would need to have met these criteria a couple times. They should also not have been attacking each other with more than half a hart (so they don't just punch each other as a joke) for more than 30 seconds.
But what do we do with false-positives?
Ofcourse, sending a player a message to stop teaming is never fun if they are not teaming, and they will stop teaming if they see it so they won't get reported (you could see that as either good or bad, but they can continue teaming after that game, ofcourse). So that's why I suggest to let a person know that has access to the reports page, and that signed up to report players. Then, the person can validate if they are teaming and can then report them on the forums.
So in short, here is a step by step overview of the idea:
1. Check which players are in an 8 block radius from each other.
2. Check if they aren't attacking each other.
3. Check if they have seen each other whilst meeting the above mentioned criteria.
4. Check if they've done this multiple times in the game.
5. Send a message to the 'reporters'.
This way, we'll not handle everything by filters and get TONS of false positives, but we rather help the persons that are reporting others just to make it easier on them. The player can still evade the filter, but it would not be the only this to evade - it's just to notify the 'reporters' for possible teamers. It might be able to be outsmarted, but it would definitely help with reporting.
Think this will lag? We had a converation about it in the comments ;)
FAQ:
What is considered a reporter?
A reporter is someone who signed up at the reporting site (reports.cubecraft.net) and therefore reports rulebreakers to get them punished. To my knowledge, because a player uses the command /register in game, the devs of cubecraft can target the reporters when messaging, because the IGN has been linked (I think) when using /register.
How would the notifications look?
The notifications would, in my eyes, look like this:
http://imgur.com/a/eRGdb
A simple chat message with !!! alert !!! at the beginning,
A message saying teamers have been found,
The names of the player.
The playernames might also be in the color of their respective teams. If the player is in specator mode, he/she can press the name to TP to the teamers.
If the filter is advanced enough, it could handle it on its own, but the filter is really ment just to help the reporters find teamers. If there aren't any reporters in the game, there are 2 options:
1. The filter gets shut off to avoid lag. (on busy days)
2. The filter works on its own, if it's advanced enough.
It's not a public message, it's a private message to the reporters in the game.
Like I said - there's room for false positives, I'd rather have a human handle this than a robot ;)
Thanks for reading that mess of text - I made it on my phone so it might contain some spelling errors. Let me know what you think of this suggestion! :D
If there is anything unclear, tell me and I will change it. :)
(I am really proud of this thread :D )
First off - the idea.
The idea is that the filter detects when someone is teaming, and sends them a message that they are teaming OR sends a person that signed up as a 'reporter' a message so they can record and report them. I know this would be handy as I sometimes specifically go after teamers in solo sky/egg wars. (There are a lot there).
How it would work.
I know from experience that programming is hard. But I'm certain cubecraft has many talented people on board. I'll share my idea how the filter would work below:
First off, we need a way to check which people are possibly teaming, we can do this by checking for people that are not more than 8 blocks apart. (Just so that in skywars, you'll not get false-positives because people are on separate islands)
Then we need to know if they are really teaming, so there needs to be a check involved that will tell if they are attacking each other.
But what if they don't see each other?
Then we will need to check the Y-levels (to see if they are 5 blocks away from each other in Y-level) OR we could check if the player in question has looked at the hotbox of the other person in question multiple times, whilst they where in the 'hit-radius'. Of each other.
What if they are just in these criteria for less then a second?
They would need to have met these criteria a couple times. They should also not have been attacking each other with more than half a hart (so they don't just punch each other as a joke) for more than 30 seconds.
But what do we do with false-positives?
Ofcourse, sending a player a message to stop teaming is never fun if they are not teaming, and they will stop teaming if they see it so they won't get reported (you could see that as either good or bad, but they can continue teaming after that game, ofcourse). So that's why I suggest to let a person know that has access to the reports page, and that signed up to report players. Then, the person can validate if they are teaming and can then report them on the forums.
So in short, here is a step by step overview of the idea:
1. Check which players are in an 8 block radius from each other.
2. Check if they aren't attacking each other.
3. Check if they have seen each other whilst meeting the above mentioned criteria.
4. Check if they've done this multiple times in the game.
5. Send a message to the 'reporters'.
This way, we'll not handle everything by filters and get TONS of false positives, but we rather help the persons that are reporting others just to make it easier on them. The player can still evade the filter, but it would not be the only this to evade - it's just to notify the 'reporters' for possible teamers. It might be able to be outsmarted, but it would definitely help with reporting.
Think this will lag? We had a converation about it in the comments ;)
A sexy skecth:
(I'm too lazy to properly code it)
- Event Handler with lowest priority (@EventHandler (EventPriority.LOWEST)
- public void Teaming(PlayerMoveEvent e)
- Check radious
- check if the player is not attacking (p.isAttacking(?)) {
- Check if there is any player
- Kick both players
- if not, return
If it has the lowest priority, It wouldn't cause lag right? Because the important stuff will come first, but I might be wrong on that one.
Exactly, it will priorize other events, instead of "playing" two or more different events at the same time (all the events w/o EventPriority or which have LOW/HIGH/HIGHEST will come first).
FAQ:
What is considered a reporter?
A reporter is someone who signed up at the reporting site (reports.cubecraft.net) and therefore reports rulebreakers to get them punished. To my knowledge, because a player uses the command /register in game, the devs of cubecraft can target the reporters when messaging, because the IGN has been linked (I think) when using /register.
How would the notifications look?
The notifications would, in my eyes, look like this:
http://imgur.com/a/eRGdb
A simple chat message with !!! alert !!! at the beginning,
A message saying teamers have been found,
The names of the player.
The playernames might also be in the color of their respective teams. If the player is in specator mode, he/she can press the name to TP to the teamers.
What happens when no one in that game signed up?
If the filter is advanced enough, it could handle it on its own, but the filter is really ment just to help the reporters find teamers. If there aren't any reporters in the game, there are 2 options:
1. The filter gets shut off to avoid lag. (on busy days)
2. The filter works on its own, if it's advanced enough.
If there's another way like Hanger mentioned above me, I would also suggest to check if players share items since... Welp, teams does that.
About this...
This is just horrible in my opinion. I don't like the looks and the idea. Why need to shout them out in public chat when people are going to eventually realize when they confront them + if the filter is working, why not just punish them instead of sending them a message? Reporting people teaming doesn't require a warning so why should the filter do it?
It's not a public message, it's a private message to the reporters in the game.
Like I said - there's room for false positives, I'd rather have a human handle this than a robot ;)
Thanks for reading that mess of text - I made it on my phone so it might contain some spelling errors. Let me know what you think of this suggestion! :D
If there is anything unclear, tell me and I will change it. :)
(I am really proud of this thread :D )
Last edited: