Open PEMapModder opened 9 years ago
Amendment: It seems like banning for a period of time (like half an hour) is more effective than kicking.
@xxflare not sure. It uses the Player.isFlying()
method in @Bukkit. I don't have the Bukkit implementation source (because Bukkit/CraftBukkit is closed due to a DMCA notice), so I don't know how it works. I guess either Bukkit detects it or MCPC sends it :stuck_out_tongue_winking_eye:
PocketMine/PocketMine-MP has a flying detection algorithm too, but it just detects if player is in air for 5 seconds. That sucks when it comes to lag, cobwebs, water, falling from space, etc.
Then what is it different from inAirTicks?
@luca28pet we usually have at least 20 players on.
Yep, these are the ideas. Also I am calculating using the percentage of players.
Also, you won't have that problem if your server is always full.
Introduction
From the examples made by @williamtdr on lifeboat, most code-controlled fly-kick mechanisms suck because most flying detection code are stupid. And from what we mostly believe, most vote-kick mechanisms suck because there may be malicious players wanting to use vote-kick to a arbitrarily kick their enemies.
But on LegionPE, we trust our players, because we are usually half-full at least. But it is still hard to guarantee there will be no people using bots to vote kick anyone. And I trust my plugin. But I can't guarantee that the plugin knows every situation. It may think you're flying just because you are falling from the clouds to void, or swimming in water.
But what if we combine the two? If both the stupid but good computer and the clever but sometimes abusive players agree you are flying, you are most likely flying. Then we can make the computer more sensitive on flying, and let the community have note participation on the moderation against players trying to be unfair.
Implementation
We can make the plugin more sensitive - whenever the player is not on ground for more than 5 seconds, it broadcasts a message to the players in the world that that player is suspected. Players can use the
/vk
command to vote-kick the suspected player. If a proportion of the players in that world decided that the player was flying, he would be kicked. The player, and preferably his motion log, can be logged for future reference.Decisions to make