protected override LootEvent ProcessOtherPlayerRoll(LootMessage message) { var lootEvent = new LootEvent { IsLocalPlayer = false, PlayerName = message.MessageParts[0] }; // Cast Lot (Other Player) if (message.MessageParts.Count >= 2 && ProcessOtherPlayerRollCastRegex.IsMatch(message.MessageParts[1])) { lootEvent.LootEventType = LootEventType.Cast; } // Need Roll (Other Player) else if (message.MessageParts.Count >= 2 && ProcessOtherPlayerRollNeedRegex.IsMatch(message.MessageParts[1])) { lootEvent.LootEventType = LootEventType.Need; lootEvent.Roll = Convert.ToUInt16(RollRegex.Match(message.MessageParts[1]).Groups["Roll"].Value); } // Greed Roll (Other Player) else if (message.MessageParts.Count >= 2 && ProcessOtherPlayerRollGreedRegex.IsMatch(message.MessageParts[1])) { lootEvent.LootEventType = LootEventType.Greed; lootEvent.Roll = Convert.ToUInt16(RollRegex.Match(message.MessageParts[1]).Groups["Roll"].Value); } else { return(null); } return(lootEvent); }
protected override LootEvent ProcessLocalPlayerRoll(LootMessage message) { var lootEvent = new LootEvent { IsLocalPlayer = true, PlayerName = Plugin.GetLocalPlayerName() }; // Cast Lot (Local Player) if (ProcessLocalPlayerRollCastRegex.IsMatch(message.MessageParts.First())) { lootEvent.LootEventType = LootEventType.Cast; } // Need Roll (Local Player) else if (message.MessageParts.Count >= 1 && ProcessLocalPlayerRollNeedRegex.IsMatch(message.MessageParts[0])) { lootEvent.LootEventType = LootEventType.Need; lootEvent.Roll = Convert.ToUInt16(RollRegex.Match(message.MessageParts.First()).Groups["Roll"].Value); } // Greed Roll (Local Player) else if (ProcessLocalPlayerRollGreedRegex.IsMatch(message.MessageParts.First())) { lootEvent.LootEventType = LootEventType.Greed; lootEvent.Roll = Convert.ToUInt16(RollRegex.Match(message.MessageParts.First()).Groups["Roll"].Value); } else { return(null); } return(lootEvent); }