////////////////

        public override void ReceiveOnServer(int fromWho)
        {
            //Player player = Main.player[ this.PlayerWho ];

            //PlayerLibraries.ApplyPermaDeath( player, this.Msg );	?
            PlayerPermaDeathProtocol.BroadcastFromServer(this.PlayerWho, this.Msg, true);
        }
    class PlayerPermaDeathProtocol : SimplePacketPayload {      //NetIOBroadcastPayload {
        public static void BroadcastFromClient(int playerDeadWho, string msg)
        {
            if (Main.netMode != NetmodeID.MultiplayerClient)
            {
                throw new ModLibsException("Not client");
            }

            var protocol = new PlayerPermaDeathProtocol(playerDeadWho, msg);

            SimplePacket.SendToServer(protocol);
        }
        public static void BroadcastFromServer(int playerDeadWho, string msg, bool ignoresDeadOne)
        {
            if (Main.netMode != NetmodeID.Server)
            {
                throw new ModLibsException("Not server");
            }

            var protocol = new PlayerPermaDeathProtocol(playerDeadWho, msg);

            SimplePacket.SendToClient(
                protocol,
                -1,
                ignoresDeadOne ? playerDeadWho : -1
                );
        }