diff --git a/Uchu.World/Handlers/Commands/CharacterCommandHandler.cs b/Uchu.World/Handlers/Commands/CharacterCommandHandler.cs index cdde0aa4..adeee5c8 100644 --- a/Uchu.World/Handlers/Commands/CharacterCommandHandler.cs +++ b/Uchu.World/Handlers/Commands/CharacterCommandHandler.cs @@ -211,7 +211,7 @@ public string Freecam(string[] arguments, Player player) return "Toggled freecam."; } - [CommandHandler(Signature = "fly", Help = "Change jetpack state", GameMasterLevel = GameMasterLevel.Admin)] + [CommandHandler(Signature = "fly", Help = "Change jetpack state", GameMasterLevel = GameMasterLevel.Mythran)] public string Fly(string[] arguments, Player player) { if (arguments.Length != 1 && arguments.Length != 2) return "fly "; @@ -1001,7 +1001,7 @@ public async Task Announce(string[] arguments, Player player) return "Sent announcement"; } - [CommandHandler(Signature = "complete", Help = "Complete active missions", GameMasterLevel = GameMasterLevel.Admin)] + [CommandHandler(Signature = "complete", Help = "Complete active missions", GameMasterLevel = GameMasterLevel.Mythran)] public async Task Complete(string[] arguments, Player player) { var missions = player.GetComponent().MissionInstances; diff --git a/Uchu.World/Objects/GameObjects/Player.cs b/Uchu.World/Objects/GameObjects/Player.cs index 4315747f..cb1da65c 100644 --- a/Uchu.World/Objects/GameObjects/Player.cs +++ b/Uchu.World/Objects/GameObjects/Player.cs @@ -601,6 +601,17 @@ public async Task SendToWorldAsync(ZoneId zoneId) return false; } + public void SetName(string name) + { + this.Name = name; + + this.Message(new SetNameMessage + { + Associate = this, + Name = name + }); + } + private async Task SetCurrencyAsync(long currency) { await using (var ctx = new UchuContext()) diff --git a/Uchu.World/Packets/GameMessages/Server/SetNameMessage.cs b/Uchu.World/Packets/GameMessages/Server/SetNameMessage.cs new file mode 100644 index 00000000..9ff5a1ea --- /dev/null +++ b/Uchu.World/Packets/GameMessages/Server/SetNameMessage.cs @@ -0,0 +1,18 @@ +using RakDotNet.IO; +using Uchu.Core; + +namespace Uchu.World +{ + public class SetNameMessage : ServerGameMessage + { + public override GameMessageId GameMessageId => GameMessageId.SetName; + + public string Name { get; set; } + + public override void SerializeMessage(BitWriter writer) + { + writer.Write((uint)Name.Length); + writer.WriteString(Name, Name.Length, true); + } + } +} \ No newline at end of file