本文整理汇总了C#中Chraft.Net.Client类的典型用法代码示例。如果您正苦于以下问题:C# Client类的具体用法?C# Client怎么用?C# Client使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Client类属于Chraft.Net命名空间,在下文中一共展示了Client类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Use
public void Use(Client client, string[] tokens)
{
int newTime = -1;
if (tokens.Length < 2)
{
client.SendMessage("You must specify an explicit time, day, or night.");
return;
}
if (int.TryParse(tokens[1], out newTime) && newTime >= 0 && newTime <= 24000)
{
client.Owner.World.Time = newTime;
}
else if (tokens[1].ToLower() == "day")
{
client.Owner.World.Time = 0;
}
else if (tokens[1].ToLower() == "night")
{
client.Owner.World.Time = 12000;
}
else
{
client.SendMessage("You must specify a time value between 0 and 24000");
return;
}
client.Owner.Server.Broadcast(new TimeUpdatePacket { Time = client.Owner.World.Time });
}
示例2: DamageMob
public void DamageMob(Client hitBy = null)
{
if (hitBy != null)
{
// TODO: Get the Clients held item.
this.Health -= 1;
}
else
{
// TODO: Generic damage from falling/lava/fire?
this.Health -= 1;
}
foreach (Client c in World.Server.GetNearbyPlayers(World, Position.X, Position.Y, Position.Z))
{
c.PacketHandler.SendPacket(new AnimationPacket // Hurt Animation
{
Animation = 2,
PlayerId = this.EntityId
});
c.PacketHandler.SendPacket(new EntityStatusPacket // Hurt Action
{
EntityId = this.EntityId,
EntityStatus = 2
});
}
// TODO: Entity Knockback
if (this.Health == 0) HandleDeath(hitBy);
}
示例3: Use
public void Use(Client client, string commandName, string[] tokens)
{
Vector3 facing = new Vector3(client.Owner.Yaw, client.Owner.Pitch);
Vector3 start = new Vector3(client.Owner.Position.X, client.Owner.Position.Y + client.Owner.EyeHeight, client.Owner.Position.Z);
Vector3 end = facing * 100 + start;
if (end.Y < 0)
{
end = end * (Math.Abs(end.Y) / start.Y);
end.Y = 0;
}
RayTraceHitBlock hit = client.Owner.World.RayTraceBlocks(new AbsWorldCoords(start), new AbsWorldCoords(end));
if (hit != null)
{
if (tokens.Length == 0)
{
}
else
{
MobType mobType;
if (Enum.TryParse<MobType>(tokens[0], true, out mobType))
{
Mob theMob = MobFactory.CreateMob(client.Owner.World, client.Server.AllocateEntity(), mobType, null);
theMob.Position = new AbsWorldCoords(client.Owner.World.FromFace(hit.TargetBlock, hit.FaceHit));
client.Server.AddEntity(theMob);
}
else
{
client.SendMessage(String.Format("Unrecognised mob type: '{0}'", tokens[0]));
}
}
}
}
示例4: Use
public void Use(Client client, string commandName, string[] tokens)
{
if (client.Point2 == null || client.Point1 == null)
{
client.SendMessage("§cPlease select a cuboid first.");
return;
}
UniversalCoords start = client.SelectionStart.Value;
UniversalCoords end = client.SelectionEnd.Value;
ItemStack item = client.Owner.Server.Items[tokens[0]];
if (ItemStack.IsVoid(item))
{
client.SendMessage("§cUnknown item.");
return;
}
if (item.Type > 255)
{
client.SendMessage("§cInvalid item.");
}
for (int x = start.WorldX; x <= end.WorldX; x++)
{
for (int y = start.WorldY; y <= end.WorldY; y++)
{
for (int z = start.WorldZ; z <= end.WorldZ; z++)
{
client.Owner.World.SetBlockAndData(UniversalCoords.FromWorld(x, y, z), (byte)item.Type, (byte)item.Durability);
}
}
}
}
示例5: DoInteraction
protected override void DoInteraction(Client client, Interfaces.ItemStack item)
{
base.DoInteraction(client, item);
if (client != null && !Chraft.Interfaces.ItemStack.IsVoid(item))
{
if (item.Type == (short)Chraft.World.BlockData.Items.Shears && !Data.Sheared)
{
// Drop wool when sheared
sbyte count = (sbyte)Server.Rand.Next(2, 4);
if (count > 0)
Server.DropItem(World, UniversalCoords.FromWorld(Position.X, Position.Y, Position.Z), new Interfaces.ItemStack((short)Chraft.World.BlockData.Blocks.Wool, count, (short)Data.WoolColor));
Data.Sheared = true;
SendMetadataUpdate();
}
else if (item.Type == (short)Chraft.World.BlockData.Items.Ink_Sack)
{
// Set the wool colour of this Sheep based on the item.Durability
// Safety check. Values of 16 and higher (color do not exist) may crash the client v1.8.1 and below
if (item.Durability >= 0 && item.Durability <= 15)
{
//this.Data.WoolColor = (WoolColor)Enum.ToObject(typeof(WoolColor), (15 - item.Durability));
Data.WoolColor = DyeColorToWoolColor((MetaData.Dyes)Enum.ToObject(typeof(MetaData.Dyes), item.Durability));
SendMetadataUpdate();
}
}
}
}
示例6: Use
public void Use(Client client, string[] tokens)
{
if (tokens.Length < 2)
{
client.SendMessage("§cUsage <player> <mode>");
return;
}
Client c = client.Owner.Server.GetClients(tokens[1]).FirstOrDefault();
if (c != null)
{
if (c.Owner.GameMode == Convert.ToByte(tokens[2]))
{
client.SendMessage("§7You are already in that mode");
return;
}
c.SendPacket(new NewInvalidStatePacket
{
GameMode = c.Owner.GameMode = Convert.ToByte(tokens[2]),
Reason = NewInvalidStatePacket.NewInvalidReason.ChangeGameMode
});
}
else
{
client.SendMessage(string.Format("§cPlayer {0} not found", tokens[1]));
}
}
示例7: Use
public void Use(Client client, string commandName, string[] tokens)
{
switch (tokens.Length)
{
case 0:
ChangeGameMode(client, client.Owner.GameMode == 0 ? 1 : 0);
break;
case 2:
if (Int32.Parse(tokens[1]) != 0)
{
if (Int32.Parse(tokens[1]) != 1)
{
Help(client);
break;
}
}
Client c = client.Owner.Server.GetClients(tokens[0]).FirstOrDefault();
if (c != null)
{
if (c.Owner.GameMode == Convert.ToByte(tokens[1]))
{
client.SendMessage(ChatColor.Red + "Player is already in that mode");
break;
}
ChangeGameMode(client, Int32.Parse(tokens[1]));
break;
}
client.SendMessage(string.Format(ChatColor.Red + "Player {0} not found", tokens[0]));
break;
default:
Help(client);
break;
}
}
示例8: Use
public void Use(Client client, string[] tokens)
{
if (client.Point2 == null || client.Point1 == null)
{
client.SendMessage("§cPlease select a cuboid first.");
return;
}
PointI start = client.SelectionStart.Value;
PointI end = client.SelectionEnd.Value;
ItemStack item = client.Owner.Server.Items[tokens[1]];
if (ItemStack.IsVoid(item))
{
client.SendMessage("§cUnknown item.");
return;
}
if (item.Type > 255)
{
client.SendMessage("§cInvalid item.");
}
for (int x = start.X; x <= end.X; x++)
{
for (int y = start.Y; y <= end.Y; y++)
{
for (int z = start.Z; z <= end.Z; z++)
{
client.Owner.World.SetBlockAndData(x, y, z, (byte)item.Type, (byte)item.Durability);
}
}
}
}
示例9: ReadCloseWindow
public static void ReadCloseWindow(Client client, PacketReader reader)
{
CloseWindowPacket cw = new CloseWindowPacket();
cw.Read(reader);
if(!reader.Failed)
Client.HandlePacketCloseWindow(client, cw);
}
示例10: ReadChatMessage
public static void ReadChatMessage(Client client, PacketReader reader)
{
ChatMessagePacket cm = new ChatMessagePacket();
cm.Read(reader);
if (!reader.Failed)
Client.HandlePacketChatMessage(client, cm);
}
示例11: ReadKeepAlive
public static void ReadKeepAlive(Client client, PacketReader reader)
{
KeepAlivePacket ka = new KeepAlivePacket();
ka.Read(reader);
if (!reader.Failed)
Client.HandlePacketKeepAlive(client, ka);
}
示例12: ReadAnimation
public static void ReadAnimation(Client client, PacketReader reader)
{
AnimationPacket ap = new AnimationPacket();
ap.Read(reader);
if(!reader.Failed)
Client.HandlePacketAnimation(client, ap);
}
示例13: Inventory
internal Inventory(Client client)
: base(InterfaceType.Inventory, 4, 45)
{
_ActiveSlot = 36;
Associate(client);
_IsOpen = true;
UpdateClient();
}
示例14: SetHealth
private void SetHealth(Client client, short health)
{
if (health > 20)
{
health = 20;
}
client.SendPacket(new UpdateHealthPacket { Health = health });
}
示例15: Use
public void Use(Client client, string[] tokens)
{
if (tokens.Length < 2)
{
SetHealth(client, 20);
return;
}
SetHealth(client, short.Parse(tokens[1]));
}