Various sender reference improvements. Fixes MassiveCraft/Factions#726.
This commit is contained in:
parent
3d93d07c99
commit
6ab443c8b7
@ -471,6 +471,20 @@ public class EngineMain extends EngineAbstract
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onChunksChange(EventFactionsChunksChange event)
|
public void onChunksChange(EventFactionsChunksChange event)
|
||||||
|
{
|
||||||
|
// For security reasons we block the chunk change on any error since an error might block security checks from happening.
|
||||||
|
try
|
||||||
|
{
|
||||||
|
onChunksChangeInner(event);
|
||||||
|
}
|
||||||
|
catch (Throwable throwable)
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
throwable.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onChunksChangeInner(EventFactionsChunksChange event)
|
||||||
{
|
{
|
||||||
// Args
|
// Args
|
||||||
final MPlayer msender = event.getMSender();
|
final MPlayer msender = event.getMSender();
|
||||||
|
@ -7,6 +7,7 @@ import java.util.Map.Entry;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.massivecraft.factions.EconomyParticipator;
|
import com.massivecraft.factions.EconomyParticipator;
|
||||||
@ -830,7 +831,16 @@ public class MPlayer extends SenderEntity<MPlayer> implements EconomyParticipato
|
|||||||
// Event
|
// Event
|
||||||
// NOTE: We listen to this event ourselves at LOW.
|
// NOTE: We listen to this event ourselves at LOW.
|
||||||
// NOTE: That is where we apply the standard checks.
|
// NOTE: That is where we apply the standard checks.
|
||||||
EventFactionsChunksChange event = new EventFactionsChunksChange(this.getSender(), chunks, newFaction);
|
CommandSender sender = this.getSender();
|
||||||
|
if (sender == null)
|
||||||
|
{
|
||||||
|
msg("<b>ERROR: Your \"CommandSender Link\" has been severed. This shouldn't happen.");
|
||||||
|
msg("<b>Help the Factions developers by reporting this at: <aqua>https://github.com/MassiveCraft/Factions/issues");
|
||||||
|
msg("<b>Describe what you were doing, what client you are using, if this is your first time on the server etc. The more the better.");
|
||||||
|
msg("<g>Relogging to the server should fix the issue.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
EventFactionsChunksChange event = new EventFactionsChunksChange(sender, chunks, newFaction);
|
||||||
event.run();
|
event.run();
|
||||||
if (event.isCancelled()) return false;
|
if (event.isCancelled()) return false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user