123 lines
No EOL
3.3 KiB
C#
123 lines
No EOL
3.3 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Network;
|
|
|
|
namespace Server.Engines.PartySystem
|
|
{
|
|
public class PartyCommandHandlers : PartyCommands
|
|
{
|
|
public static void Initialize()
|
|
{
|
|
PartyCommands.Handler = new PartyCommandHandlers();
|
|
}
|
|
|
|
public override void OnAdd( Mobile from )
|
|
{
|
|
Party p = Party.Get( from );
|
|
|
|
if ( p != null && p.Leader != from )
|
|
from.SendLocalizedMessage( 1005453 ); // You may only add members to the party if you are the leader.
|
|
else if ( p != null && (p.Members.Count + p.Candidates.Count) >= Party.Capacity )
|
|
from.SendLocalizedMessage( 1008095 ); // You may only have 10 in your party (this includes candidates).
|
|
else
|
|
from.Target = new AddPartyTarget( from );
|
|
}
|
|
|
|
public override void OnRemove( Mobile from, Mobile target )
|
|
{
|
|
Party p = Party.Get( from );
|
|
|
|
if ( p == null )
|
|
{
|
|
from.SendLocalizedMessage( 3000211 ); // You are not in a party.
|
|
return;
|
|
}
|
|
|
|
if ( p.Leader == from && target == null )
|
|
{
|
|
from.SendLocalizedMessage( 1005455 ); // Who would you like to remove from your party?
|
|
from.Target = new RemovePartyTarget();
|
|
}
|
|
else if ( (p.Leader == from || from == target) && p.Contains( target ) )
|
|
{
|
|
p.Remove( target );
|
|
}
|
|
}
|
|
|
|
public override void OnPrivateMessage( Mobile from, Mobile target, string text )
|
|
{
|
|
if ( text.Length > 128 || (text = text.Trim()).Length == 0 )
|
|
return;
|
|
|
|
Party p = Party.Get( from );
|
|
|
|
if ( p != null && p.Contains( target ) )
|
|
p.SendPrivateMessage( from, target, text );
|
|
else
|
|
from.SendLocalizedMessage( 3000211 ); // You are not in a party.
|
|
}
|
|
|
|
public override void OnPublicMessage( Mobile from, string text )
|
|
{
|
|
if ( text.Length > 128 || (text = text.Trim()).Length == 0 )
|
|
return;
|
|
|
|
Party p = Party.Get( from );
|
|
|
|
if ( p != null )
|
|
p.SendPublicMessage( from, text );
|
|
else
|
|
from.SendLocalizedMessage( 3000211 ); // You are not in a party.
|
|
}
|
|
|
|
public override void OnSetCanLoot( Mobile from, bool canLoot )
|
|
{
|
|
Party p = Party.Get( from );
|
|
|
|
if ( p == null )
|
|
{
|
|
from.SendLocalizedMessage( 3000211 ); // You are not in a party.
|
|
}
|
|
else
|
|
{
|
|
PartyMemberInfo mi = p[from];
|
|
|
|
if ( mi != null )
|
|
{
|
|
mi.CanLoot = canLoot;
|
|
|
|
if ( canLoot )
|
|
from.SendLocalizedMessage( 1005447 ); // You have chosen to allow your party to loot your corpse.
|
|
else
|
|
from.SendLocalizedMessage( 1005448 ); // You have chosen to prevent your party from looting your corpse.
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void OnAccept( Mobile from, Mobile sentLeader )
|
|
{
|
|
Mobile leader = from.Party as Mobile;
|
|
from.Party = null;
|
|
|
|
Party p = Party.Get( leader );
|
|
|
|
if ( leader == null || p == null || !p.Candidates.Contains( from ) )
|
|
from.SendLocalizedMessage( 3000222 ); // No one has invited you to be in a party.
|
|
else if ( (p.Members.Count + p.Candidates.Count) <= Party.Capacity )
|
|
p.OnAccept( from );
|
|
}
|
|
|
|
public override void OnDecline( Mobile from, Mobile sentLeader )
|
|
{
|
|
Mobile leader = from.Party as Mobile;
|
|
from.Party = null;
|
|
|
|
Party p = Party.Get( leader );
|
|
|
|
if ( leader == null || p == null || !p.Candidates.Contains( from ) )
|
|
from.SendLocalizedMessage( 3000222 ); // No one has invited you to be in a party.
|
|
else
|
|
p.OnDecline( from, leader );
|
|
}
|
|
}
|
|
} |