добавил Игры, нужно разобраться с передачей команд в игру
This commit is contained in:
+71
-27
@@ -27,7 +27,7 @@ uses
|
||||
System.IOUtils, fCommands, uDataBase, FMX.Edit, FMX.Colors, FMX.SpinBox,
|
||||
windows, System.Skia, FMX.Skia, uCreateChat, uCreateNotify, fOBS, fTTS,
|
||||
fPlayerWeb, uWebServerKandinsky, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo,
|
||||
fRevards;
|
||||
fRevards, json;
|
||||
|
||||
type
|
||||
TTTW_Bot = class(TForm)
|
||||
@@ -124,6 +124,7 @@ type
|
||||
procedure ESStatus(Sender: TObject; const ConnectionEvent: String;
|
||||
StatusCode: Integer; const Description: String);
|
||||
procedure ESOnSubOk(s: string);
|
||||
procedure checkAndSendToGames(aNick: string; aCommand: string);
|
||||
public
|
||||
{ Public declarations }
|
||||
procedure toLog(aModule, aMethod, aMessage: string; aCode: Integer);
|
||||
@@ -432,6 +433,27 @@ begin
|
||||
db.WriteSetting('cbTheme', inttostr(cbTheme.ItemIndex));
|
||||
end;
|
||||
|
||||
procedure TTTW_Bot.checkAndSendToGames(aNick: string; aCommand: string);
|
||||
var
|
||||
I: Integer;
|
||||
j: Integer;
|
||||
begin
|
||||
for I := 0 to frOBS1.GameWebServers.Count - 1 do
|
||||
begin
|
||||
for j := 0 to frOBS1.GameWebServers[I].commands.Count - 1 do
|
||||
begin
|
||||
if frOBS1.GameWebServers[I].commands[j] = aCommand then
|
||||
begin
|
||||
var
|
||||
obj := TJSONObject.Create;
|
||||
obj.AddPair('user', aNick);
|
||||
obj.AddPair('cmd', aCommand);
|
||||
frOBS1.GameWebServers[I].WebServerGame.Input(obj);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTTW_Bot.FormCreate(Sender: TObject);
|
||||
var
|
||||
Path: string;
|
||||
@@ -515,12 +537,13 @@ end;
|
||||
|
||||
procedure TTTW_Bot.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
FreeAndNil(frOBS1.ChatBadges);
|
||||
FreeAndNil(frOBS1.ChatBadges);
|
||||
FreeAndNil(frOBS1.ChatEmotes);
|
||||
FreeAndNil(frOBS1.ChatWebServers);
|
||||
FreeAndNil(frOBS1.EventWebServers);
|
||||
FreeAndNil(frOBS1.KandinskyWebServers);
|
||||
FreeAndNil(frRevards1.CustomRewards);
|
||||
FreeAndNil(frOBS1.EventWebServers);
|
||||
FreeAndNil(frOBS1.KandinskyWebServers);
|
||||
FreeAndNil(frOBS1.GameWebServers);
|
||||
FreeAndNil(frRevards1.CustomRewards);
|
||||
|
||||
frOBS1.BTTV.Free;
|
||||
frOBS1.m7tv.Free;
|
||||
@@ -533,7 +556,7 @@ FreeAndNil(frRevards1.CustomRewards);
|
||||
FreeAndNil(ttw_API);
|
||||
if Assigned(Kandinsky) then
|
||||
Kandinsky.Free;
|
||||
//frSettings1.Destroy;
|
||||
// frSettings1.Destroy;
|
||||
FreeAndNil(db);
|
||||
FreeAndNil(frAutoActions1.FTimerList);
|
||||
FreeAndNil(frLog1.FLogList);
|
||||
@@ -577,14 +600,14 @@ var
|
||||
frAutoActions1.UpdateGridFromArray;
|
||||
end;
|
||||
|
||||
function StringToArray(const input: string): TArray<string>;
|
||||
function StringToArray(const Input: string): TArray<string>;
|
||||
var
|
||||
Delimiter: char;
|
||||
Words: TArray<string>;
|
||||
I: Integer;
|
||||
begin
|
||||
Delimiter := ',';
|
||||
Words := input.Split([Delimiter]);
|
||||
Words := Input.Split([Delimiter]);
|
||||
SetLength(Result, Length(Words));
|
||||
for I := 0 to High(Words) do
|
||||
Result[I] := Words[I].Trim;
|
||||
@@ -725,8 +748,9 @@ begin
|
||||
UpdateWordCounters(processedText);
|
||||
CheckBannedWords(processedText, aRecord.DisplayName, aRecord.UserId);
|
||||
|
||||
if (frCommands1.frContruct1.cbTextToSpeach.IsChecked) and (processedText[1] = '!') and
|
||||
(processedText[2] = '!') and (processedText[3] = '!') then
|
||||
if (frCommands1.frContruct1.cbTextToSpeach.IsChecked) and
|
||||
(processedText[1] = '!') and (processedText[2] = '!') and
|
||||
(processedText[3] = '!') then
|
||||
begin
|
||||
s := StringReplace(processedText, '!!!', '', [rfReplaceAll]);
|
||||
s := Trim(s);
|
||||
@@ -734,7 +758,8 @@ begin
|
||||
exit;
|
||||
end;
|
||||
|
||||
if (frCommands1.frContruct1.cbHelloTTS.IsChecked) and (aRecord.FirstMsg = 1) then
|
||||
if (frCommands1.frContruct1.cbHelloTTS.IsChecked) and (aRecord.FirstMsg = 1)
|
||||
then
|
||||
toSpeech('приветствую, ' + IfThen(aRecord.DisplayName <> '',
|
||||
aRecord.DisplayName, aRecord.Username));
|
||||
|
||||
@@ -752,6 +777,8 @@ begin
|
||||
end);
|
||||
PlayNotifySound((aRecord.Moder = 1), (aRecord.Vip = 1),
|
||||
(aRecord.Subscriber = 1));
|
||||
processedText := StringReplace(processedText, '!', '', [rfReplaceAll]);
|
||||
checkAndSendToGames(aRecord.DisplayName, processedText);
|
||||
end;
|
||||
|
||||
procedure TTTW_Bot.PlayNotifySound(aMod, aVip, aSub: Boolean);
|
||||
@@ -806,30 +833,36 @@ begin
|
||||
end;
|
||||
|
||||
procedure TTTW_Bot.frAutoActions1btnCounterAddClick(Sender: TObject);
|
||||
var i:integer;
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
frAutoActions1.btnCounterAddClick(Sender);
|
||||
frCommands1.frContruct1.cbCounterName.Items.Clear;
|
||||
for i:=0 to high(frAutoActions1.listCounters) do
|
||||
frCommands1.frContruct1.cbCounterName.Items.Add(frAutoActions1.listCounters[i].counterName);
|
||||
for I := 0 to high(frAutoActions1.listCounters) do
|
||||
frCommands1.frContruct1.cbCounterName.Items.Add
|
||||
(frAutoActions1.listCounters[I].counterName);
|
||||
end;
|
||||
|
||||
procedure TTTW_Bot.frAutoActions1btnCounterDeleteClick(Sender: TObject);
|
||||
var i:integer;
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
frAutoActions1.btnCounterDeleteClick(Sender);
|
||||
frCommands1.frContruct1.cbCounterName.Items.Clear;
|
||||
for i:=0 to high(frAutoActions1.listCounters) do
|
||||
frCommands1.frContruct1.cbCounterName.Items.Add(frAutoActions1.listCounters[i].counterName);
|
||||
frCommands1.frContruct1.cbCounterName.Items.Clear;
|
||||
for I := 0 to high(frAutoActions1.listCounters) do
|
||||
frCommands1.frContruct1.cbCounterName.Items.Add
|
||||
(frAutoActions1.listCounters[I].counterName);
|
||||
end;
|
||||
|
||||
procedure TTTW_Bot.frAutoActions1btnCounterEditClick(Sender: TObject);
|
||||
var i:integer;
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
frAutoActions1.btnCounterEditClick(Sender);
|
||||
frCommands1.frContruct1.cbCounterName.Items.Clear;
|
||||
for i:=0 to high(frAutoActions1.listCounters) do
|
||||
frCommands1.frContruct1.cbCounterName.Items.Add(frAutoActions1.listCounters[i].counterName);
|
||||
frCommands1.frContruct1.cbCounterName.Items.Clear;
|
||||
for I := 0 to high(frAutoActions1.listCounters) do
|
||||
frCommands1.frContruct1.cbCounterName.Items.Add
|
||||
(frAutoActions1.listCounters[I].counterName);
|
||||
end;
|
||||
|
||||
procedure TTTW_Bot.frCommands1btnRandAddClick(Sender: TObject);
|
||||
@@ -1094,15 +1127,19 @@ procedure TTTW_Bot.ReadDB;
|
||||
|
||||
// Загрузка гридов автоматических действий
|
||||
procedure LoadAutoActionsGrids;
|
||||
var i:integer;
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
db.LoadRecordArray<TListTimer>('listTimer', frAutoActions1.listTimer);
|
||||
db.LoadRecordArray<TBanWord>('listBanWords', frAutoActions1.listBanWords);
|
||||
db.LoadRecordArray<TCounter>('listCounters', frAutoActions1.listCounters);
|
||||
for I := 0 to High(frAutoActions1.listCounters) do
|
||||
frCommands1.frContruct1.cbCounterName.items.Add(frAutoActions1.listCounters[i].counterName);
|
||||
frCommands1.frContruct1.cbTextToSpeach.IsChecked:=db.ReadSetting('cbTextToSpeach', 'False') = 'True';
|
||||
frCommands1.frContruct1.cbHelloTTS.IsChecked:= db.ReadSetting('cbHelloTTS', 'False') = 'True';
|
||||
for I := 0 to High(frAutoActions1.listCounters) do
|
||||
frCommands1.frContruct1.cbCounterName.Items.Add
|
||||
(frAutoActions1.listCounters[I].counterName);
|
||||
frCommands1.frContruct1.cbTextToSpeach.IsChecked :=
|
||||
db.ReadSetting('cbTextToSpeach', 'False') = 'True';
|
||||
frCommands1.frContruct1.cbHelloTTS.IsChecked :=
|
||||
db.ReadSetting('cbHelloTTS', 'False') = 'True';
|
||||
frAutoActions1.initTimers;
|
||||
frAutoActions1.UpdateGridFromArray;
|
||||
end;
|
||||
@@ -1143,6 +1180,13 @@ var i:integer;
|
||||
|
||||
end;
|
||||
|
||||
db.LoadRecordArray<TOBSGames>('listGames', frOBS1.listGames);
|
||||
frOBS1.GameWebServers := TList<TGameWebServers>.Create;
|
||||
for I := 0 to High(frOBS1.listGames) do
|
||||
begin
|
||||
frOBS1.CreateWebGame(frOBS1.listGames[I].game, frOBS1.listGames[I].port);
|
||||
end;
|
||||
|
||||
frOBS1.UpdateGridFromArray;
|
||||
end;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user