Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net

name: YongAnFrame Dev CI
permissions:
contents: read

on:
push:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net

name: YongAnFrame Master CI
permissions:
contents: read

on:
push:
Expand Down
39 changes: 39 additions & 0 deletions Commands/Chats/AChatCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using CommandSystem;
using Exiled.API.Features;
using System;
using System.Linq;
using YongAnFrame.Features.Players;
using YongAnFrame.Features.UI.Enums;
using YongAnFrame.Features.UI.Texts;

namespace SyncPlugin.Commands.Chats
{
[CommandHandler(typeof(ClientCommandHandler))]
public class AChatCommand : ICommand

Check warning on line 12 in Commands/Chats/AChatCommand.cs

View workflow job for this annotation

GitHub Actions / build

Missing XML comment for publicly visible type or member 'AChatCommand'
{
public string Command => "achat";

Check warning on line 14 in Commands/Chats/AChatCommand.cs

View workflow job for this annotation

GitHub Actions / build

Missing XML comment for publicly visible type or member 'AChatCommand.Command'

public string[] Aliases => ["ac"];

Check warning on line 16 in Commands/Chats/AChatCommand.cs

View workflow job for this annotation

GitHub Actions / build

Missing XML comment for publicly visible type or member 'AChatCommand.Aliases'

public string Description => "";

Check warning on line 18 in Commands/Chats/AChatCommand.cs

View workflow job for this annotation

GitHub Actions / build

Missing XML comment for publicly visible type or member 'AChatCommand.Description'

public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out string response)

Check warning on line 20 in Commands/Chats/AChatCommand.cs

View workflow job for this annotation

GitHub Actions / build

Missing XML comment for publicly visible type or member 'AChatCommand.Execute(ArraySegment<string>, ICommandSender, out string)'
{
if (arguments.Array.Length >= 2)
{
if (Player.TryGet(sender, out Player player))
{
foreach (var player1 in FramePlayer.List.Where((p) => { return p.ExPlayer.RemoteAdminAccess; }))
{
player1.UI.MessageList.Add(new MessageText(arguments.Array[1], 30, MessageType.Feedback));
}

response = "OK";
return true;
}
}
response = "NO";
return false;
}
}
}
47 changes: 47 additions & 0 deletions Commands/Chats/BChatCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
using CommandSystem;
using Exiled.API.Features;
using System;
using YongAnFrame.Extensions;
using YongAnFrame.Features.Players;
using YongAnFrame.Features.UI.Enums;
using YongAnFrame.Features.UI.Texts;

namespace SyncPlugin.Commands.Chats
{
[CommandHandler(typeof(ClientCommandHandler))]
public class BChatCommand : ICommand

Check warning on line 12 in Commands/Chats/BChatCommand.cs

View workflow job for this annotation

GitHub Actions / build

Missing XML comment for publicly visible type or member 'BChatCommand'
{
public string Command => "bchat";

Check warning on line 14 in Commands/Chats/BChatCommand.cs

View workflow job for this annotation

GitHub Actions / build

Missing XML comment for publicly visible type or member 'BChatCommand.Command'

public string[] Aliases => ["bc"];

Check warning on line 16 in Commands/Chats/BChatCommand.cs

View workflow job for this annotation

GitHub Actions / build

Missing XML comment for publicly visible type or member 'BChatCommand.Aliases'

public string Description => "";

public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out string response)
{
if (arguments.Array.Length == 2)
{
if (Player.TryGet(sender, out Player player))
{
FramePlayer framePlayer = player.ToFPlayer();

//if (framePlayer.IsChatBan)
//{
// response = "无法发送聊天,你已收到临时聊天禁令";
// return false;
//}

foreach (var item in FramePlayer.List)
{
item.UI.ChatList.Add(new ChatText(arguments.Array[1], 10, ChatType.All, framePlayer));
}

response = "OK";
return true;
}
}
response = "NO";
return false;
}
}
}
37 changes: 37 additions & 0 deletions Commands/Chats/CChatCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using CommandSystem;
using Exiled.API.Features;
using System;
using YongAnFrame.Extensions;
using YongAnFrame.Features.UI.Enums;
using YongAnFrame.Features.UI.Texts;

namespace SyncPlugin.Commands.Chats
{
[CommandHandler(typeof(ClientCommandHandler))]
public class CChatCommand : ICommand
{
public string Command => "cchat";

public string[] Aliases => ["cc"];

public string Description => "";

public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out string response)
{
if (arguments.Array.Length == 2)
{
if (Player.TryGet(sender, out Player player))
{
foreach (var player1 in Player.Get(player.Role.Side))
{
player1.ToFPlayer().UI.ChatList.Add(new ChatText(arguments.Array[1], 10, ChatType.Team, player.ToFPlayer()));
}
response = "OK";
return true;
}
}
response = "NO";
return false;
}
}
}
38 changes: 38 additions & 0 deletions Commands/Chats/ChatBanCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
using CommandSystem;
using Exiled.Permissions.Extensions;
using System;
using YongAnFrame.Features.Players;

namespace SyncPlugin.Commands.Chats
{
[CommandHandler(typeof(RemoteAdminCommandHandler))]
public class ChatBanCommand : ICommand
{
public string Command => "chat_ban";

public string[] Aliases => ["cb"];

public string Description => "用于Ban Chat";

public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out string response)
{
response = "NO";
if (sender.CheckPermission("yongan404.chat.ban"))
{
if (arguments.Array.Length > 1)
{
FramePlayer? framePlayer = FramePlayer.Get(int.Parse(arguments.Array[1]));
//framePlayer.IsChatBan = true;
response = "OK";
return true;
}
}
else
{
response = "请保证你有yongan404.chat.ban权限";
}

return false;
}
}
}
6 changes: 3 additions & 3 deletions Commands/ExpCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using CommandSystem;
using CommandSystem;
using Exiled.API.Features;
using Exiled.Permissions.Extensions;
using System;
Expand All @@ -19,7 +19,7 @@ public class ExpCommand : ICommand
/// <summary>
/// 次要指令名
/// </summary>
public string[] Aliases => ["pexp","pe"];
public string[] Aliases => ["pexp", "pe"];
/// <summary>
/// 指令描述
/// </summary>
Expand All @@ -39,7 +39,7 @@ public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out s
{
if (arguments.Count >= 1)
{
Player.Get(arguments.Array[1]).ToFPlayer().Level += ulong.Parse(arguments.Array[2]);
Player.Get(arguments.Array[1]).ToFPlayer().AddExp(ulong.Parse(arguments.Array[2]), "管理员签发");
response = "OK";
return true;
}
Expand Down
29 changes: 29 additions & 0 deletions Commands/KillCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using CommandSystem;
using Exiled.API.Features;
using PlayerStatsSystem;
using System;

namespace SyncPlugin.Commands
{
[CommandHandler(typeof(ClientCommandHandler))]
public class KillCommand : ICommand
{
public string Command => "killme";

public string[] Aliases => ["kill", "s"];

public string Description => "自杀指令";
public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out string response)
{
if (Player.TryGet(sender, out Player player))
{
player.Kill(new CustomReasonDamageHandler("都死了啦,都你害啦,死亡原因自杀"));
response = "Ok";
return true;
}
response = "No";

return false;
}
}
}
5 changes: 2 additions & 3 deletions Commands/MessageCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
using Exiled.Permissions.Extensions;
using System;
using System.Collections.Generic;
using System.Runtime.ConstrainedExecution;
using YongAnFrame.Extensions;
using YongAnFrame.Features.Players;
using YongAnFrame.Features.UI.Enums;
Expand Down Expand Up @@ -78,9 +77,9 @@ public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out s
return false;
}

foreach (FramePlayer yPlayer in choicePlayer)
foreach (FramePlayer framePlayer in choicePlayer)
{
yPlayer.UI.MessageList.Add(new MessageText($"{arguments.Array[2]}", duration, MessageType.Admin));
framePlayer.UI.MessageList.Add(new MessageText($"{arguments.Array[2]}", duration, MessageType.Admin));
}
response = "已成功运行";
return true;
Expand Down
4 changes: 1 addition & 3 deletions Commands/PlayerCommand.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
using CommandSystem;
using Exiled.API.Features;
using System;
using YongAnFrame.Extensions;
using YongAnFrame.Features.Players;

namespace YongAnFrame.Commands
{
Expand All @@ -15,7 +13,7 @@ public class PlayerCommand : ICommand
///<inheritdoc cref="ExpCommand.Command"/>
public string Command => "FramePlayer";
///<inheritdoc cref="ExpCommand.Aliases"/>
public string[] Aliases => ["player", "fp" ,"p"];
public string[] Aliases => ["player", "fp", "p"];
///<inheritdoc cref="ExpCommand.Description"/>
public string Description => "用于管理自己的YongAnFrame用户";
///<inheritdoc cref="ExpCommand.Execute"/>
Expand Down
110 changes: 110 additions & 0 deletions Commands/TitleCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
using CommandSystem;
using Exiled.Permissions.Extensions;
using System;
using YongAnFrame.Features.Players;

namespace SyncPlugin.Commands
{
[CommandHandler(typeof(RemoteAdminCommandHandler))]
public class TitleCommand : ICommand
{
public string Command => "title";

public string[] Aliases => ["tit", "ti"];

public string Description => "title指令";

public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out string response)
{
PlayerTitle? titleData;
switch (arguments.Array[1])
{
case "new":
if (!sender.CheckPermission("yongan404.title.new"))
{
response = "请保证你有yongan404.title.new权限";
return false;
}

if (arguments.Array[2] == "dynamic")
{
titleData = new(0, "", "", bool.Parse(arguments.Array[3]), arguments.Array[4]);
titleData.Insert(arguments.Array[4]);
}
else
{
titleData = new(0, arguments.Array[2], arguments.Array[3], bool.Parse(arguments.Array[4]));
titleData.Insert(null);
}
response = "OK";
return true;
case "up":
if (!sender.CheckPermission("yongan404.title.update"))
{
response = "请保证你有yongan404.title.update权限";
return false;
}

titleData = PlayerTitle.Get(uint.Parse(arguments.Array[2]));
if (titleData is null)
{
response = "无效的称号ID";
return false;
}

switch (arguments.Array[3])
{
case "name":
titleData.Name = arguments.Array[4];
break;
case "color":
titleData.Color = arguments.Array[4];
break;
case "pro":
titleData.IsRank = bool.Parse(arguments.Array[4]);
break;
case "dc":
titleData.SetDynamicCommand(arguments.Array[4]);
break;
}
titleData.Update();
response = "OK";
return true;
case "set":
if (!sender.CheckPermission("yongan404.title.set"))
{
response = "请保证你有yongan404.title.set权限";
return false;
}

FramePlayer? framePlayer = FramePlayer.Get(int.Parse(arguments.Array[2]));
titleData = PlayerTitle.Get(uint.Parse(arguments.Array[3]));

if (framePlayer is null)
{
response = "无效的玩家ID";
return false;
}
if (titleData is null)
{
response = "无效的称号ID";
return false;
}

if (titleData.IsRank)
{
framePlayer.UsingRankTitles = titleData;
}
else
{
framePlayer.UsingTitles = titleData;
}
framePlayer.UpdateShowInfo();
response = "OK";
return true;
}
response = "???";
return false;
}
}
}
Loading
Loading