Skip to content

Commit df1c3d5

Browse files
authored
Merge pull request #4 from Gtt1229/Dev
Dev
2 parents ddc1baa + 9ec29ae commit df1c3d5

File tree

3 files changed

+160
-49
lines changed

3 files changed

+160
-49
lines changed

RocketLeagueAssistant/RocketLeagueAssistant.cpp

+138-42
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,16 @@ void RocketLeagueAssistant::onLoad()
3131
cvarManager->registerCvar("ha_home", "http://192.168.1.256:8123/api/webhook/webhook-light-example-home");
3232
cvarManager->registerCvar("ha_away", "http://192.168.1.256:8123/api/webhook/webhook-light-example-away");
3333
cvarManager->registerCvar("ha_demos", "http://192.168.1.256:8123/api/webhook/webhook-light-example-demos");
34-
cvarManager->registerCvar("ha_goalScored", "http://192.168.1.256:8123/api/webhook/webhook-light-example-goalscored");
34+
//cvarManager->registerCvar("ha_goalScored", "http://192.168.1.256:8123/api/webhook/webhook-light-example-goalscored");
3535
cvarManager->registerCvar("ha_freeplay", "http://192.168.1.256:8123/api/webhook/webhook-light-example-freeplay");
3636
cvarManager->registerCvar("ha_mainmenu", "http://192.168.1.256:8123/api/webhook/webhook-light-example-mainmenu");
3737
cvarManager->registerCvar("ha_overtime", "http://192.168.1.256:8123/api/webhook/webhook-light-example-overtime");
3838
cvarManager->registerCvar("ha_exit", "http://192.168.1.256:8123/api/webhook/webhook-light-example-exit");
39+
cvarManager->registerCvar("ha_goalHome", "http://192.168.1.256:8123/api/webhook/webhook-light-example-homegoal");
40+
cvarManager->registerCvar("ha_goalAway", "http://192.168.1.256:8123/api/webhook/webhook-light-example-awaygoal");
41+
42+
//Team CVAR
43+
cvarManager->registerCvar("ha_playersTeam", "2");
3944

4045
//Prep for possibly using tokens in the future for requests over https
4146
cvarManager->registerCvar("ha_token", "Generated Token", "Home Assistant URL");
@@ -49,7 +54,7 @@ void RocketLeagueAssistant::onLoad()
4954

5055
_globalCvarManager = cvarManager;
5156

52-
57+
5358
}
5459

5560
void RocketLeagueAssistant::onUnload()
@@ -67,12 +72,12 @@ void RocketLeagueAssistant::LoadHooks()
6772

6873

6974
//Goal Scored
70-
gameWrapper->HookEvent("Function TAGame.Ball_TA.Explode", std::bind(&RocketLeagueAssistant::GoalScoredHook, this, std::placeholders::_1));
75+
//gameWrapper->HookEvent("Function TAGame.Ball_TA.Explode", std::bind(&RocketLeagueAssistant::GoalScoredHook, this, std::placeholders::_1));
7176

72-
//Demo Feature
77+
//Stats Feature
7378
gameWrapper->HookEventWithCallerPost<ActorWrapper>("Function TAGame.GFxHUD_TA.HandleStatTickerMessage",
7479
[this](ActorWrapper caller, void* params, std::string eventname) {
75-
DemosHook(params);
80+
StatsHook(params);
7681
});
7782

7883
//Overtime
@@ -87,8 +92,25 @@ void RocketLeagueAssistant::LoadHooks()
8792
//Check if it is a replay
8893
gameWrapper->HookEvent("Function GameEvent_Soccar_TA.ReplayPlayback.BeginState", std::bind(&RocketLeagueAssistant::Replay, this, std::placeholders::_1));
8994
gameWrapper->HookEvent("Function GameEvent_Soccar_TA.ReplayPlayback.EndState", std::bind(&RocketLeagueAssistant::NotReplay, this, std::placeholders::_1));
95+
96+
97+
98+
99+
100+
101+
//Goal Scored Hook Test
102+
103+
104+
105+
106+
//gameWrapper->HookEventWithCallerPost<ServerWrapper>(
107+
// "Function TAGame.GFxHUD_TA.HandleStatTickerMessage",
108+
// std::bind(&RocketLeagueAssistant::GoalScoredTest, this,
109+
// std::placeholders::_1, std::placeholders::_2));
110+
90111
}
91112

113+
92114
void RocketLeagueAssistant::SendCommands(std::string reqUrl)
93115
{
94116

@@ -182,32 +204,40 @@ void RocketLeagueAssistant::LoadTeams(std::string name)
182204
if (!haHomeCVar) { return; }
183205
CVarWrapper haAwayCVar = cvarManager->getCvar("ha_away");
184206
if (!haAwayCVar) { return; }
207+
208+
//get current team cvar
209+
CVarWrapper ha_playersTeam = cvarManager->getCvar("ha_playersTeam");
210+
if (!ha_playersTeam) { return; }
185211
//
186212

187213
//this may be redundant?
188214
auto reqUrlHome = cvarManager->getCvar("ha_home");
189215
auto reqUrlAway = cvarManager->getCvar("ha_away");
216+
190217
//
191218

192219
//convert haurlcvars to string
193220
std::string reqUrlHomeString = reqUrlHome.getStringValue();
194221
std::string reqUrlAwayString = reqUrlAway.getStringValue();
195-
//
196222

197223
//Send based on home or away team
198224
if (teamnum <= 1) {
199225

200226
if (teamnum == 0) {
201227

228+
202229
std::string reqUrlTeam = reqUrlHomeString;
203230
SendCommands(reqUrlTeam);
231+
ha_playersTeam.setValue(teamnum);
204232
LOG("Using Home Team Colors");
233+
205234
}
206235

207236
if (teamnum == 1) {
208237

209238
std::string reqUrlTeam = reqUrlAwayString;
210239
SendCommands(reqUrlTeam);
240+
ha_playersTeam.setValue(teamnum);
211241
LOG("Using Away Team Colors");
212242
}
213243

@@ -242,7 +272,7 @@ void RocketLeagueAssistant::ConvertLinearColor(float red, float green, float blu
242272
}
243273

244274

245-
void RocketLeagueAssistant::DemosHook(void* params)
275+
void RocketLeagueAssistant::StatsHook(void* params)
246276
{
247277

248278
//Check if plugin is enabled
@@ -254,35 +284,100 @@ void RocketLeagueAssistant::DemosHook(void* params)
254284
//See if demos are enabled
255285
CVarWrapper demosEnabledCvar = cvarManager->getCvar("demos_enabled");
256286
bool demosEnabled = demosEnabledCvar.getBoolValue();
257-
if (!demosEnabled) { LOG("Demos Automations are not enabled"); return; }
287+
//if (!demosEnabled) { LOG("Demos Automations are not enabled"); return; }
258288

259289
//See if it is a replay
260290
CVarWrapper replayCvar = cvarManager->getCvar("isReplay");
261291
bool isReplay = replayCvar.getBoolValue();
262292
if (isReplay == true) { Log("It's a replay"); return; }
263293

294+
295+
//Get goals automation url, transform, and convert to string
296+
CVarWrapper haGoalHomeCVar = cvarManager->getCvar("ha_goalHome");
297+
if (!haGoalHomeCVar) { return; }
298+
CVarWrapper haGoalAwayCVar = cvarManager->getCvar("ha_goalAway");
299+
if (!haGoalAwayCVar) { return; }
300+
//
301+
302+
//Current team CVAR
303+
//get current team cvar
304+
CVarWrapper ha_playersTeam = cvarManager->getCvar("ha_playersTeam");
305+
if (!ha_playersTeam) { return; }
306+
//
307+
auto haplayersTeam = cvarManager->getCvar("ha_playersTeam");
308+
int haplayersTeam2 = haplayersTeam.getIntValue();
309+
310+
//convert team to int
311+
//int haplayersTeam = ha_playersTeam.getIntValue();
312+
//
313+
//
314+
//this may be redundant?
315+
auto reqGoalUrlHome = cvarManager->getCvar("ha_goalHome");
316+
auto reqGoalUrlAway = cvarManager->getCvar("ha_goalAway");
317+
//
318+
319+
//convert haurlcvars to string
320+
std::string reqUrlGoalHomeString = reqGoalUrlHome.getStringValue();
321+
std::string reqUrlGoalAwayString = reqGoalUrlAway.getStringValue();
322+
264323
//Get demos automation url, transform, and convert to string
265324
CVarWrapper haDemosCVar = cvarManager->getCvar("ha_demos");
266325
if (!haDemosCVar) { return; }
267326
auto reqUrlDemos = cvarManager->getCvar("ha_demos");
268327
std::string reqUrlDemosString = reqUrlDemos.getStringValue();
269328

270-
//Get a demo's info
329+
//Get a StatEvent's info
271330
struct StatTickerParams {
272331
uintptr_t Receiver;
273332
uintptr_t Victim;
274333
uintptr_t StatEvent;
275334
};
276335

336+
337+
277338
StatTickerParams* pStruct = (StatTickerParams*)params;
278339
PriWrapper receiver = PriWrapper(pStruct->Receiver);
279340
PriWrapper victim = PriWrapper(pStruct->Victim);
280341

281342
StatEventWrapper statEvent = StatEventWrapper(pStruct->StatEvent);
282343

283344
//
345+
LOG("StateEventOccured");
346+
if (statEvent.GetEventName() == "Goal") {
284347

348+
//See if Goal Scored hook is enabled
349+
CVarWrapper goalScoredEnabledCvar = cvarManager->getCvar("goalScored_enabled");
350+
bool goalScoredEnabled = goalScoredEnabledCvar.getBoolValue();
351+
if (!goalScoredEnabled) { LOG("goalScored Automations are not enabled"); return; }
352+
353+
//See if it is a replay
354+
CVarWrapper replayCvar = cvarManager->getCvar("isReplay");
355+
bool isReplay = replayCvar.getBoolValue();
356+
if (isReplay == true) { Log("It's a replay"); return; }
357+
358+
int tmpCounter = 0;
359+
int lastGoalScoredBy = receiver.GetTeamNum();
360+
361+
if (lastGoalScoredBy <= 1) {
362+
363+
if (lastGoalScoredBy == haplayersTeam2) {
364+
365+
LOG("Your team scored");
366+
SendCommands(reqUrlGoalHomeString);
367+
}
368+
369+
if (lastGoalScoredBy != haplayersTeam2) {
370+
371+
LOG("Other team scored");
372+
SendCommands(reqUrlGoalAwayString);
373+
}
285374

375+
}
376+
377+
378+
379+
LOG("Using Goals Hook", lastGoalScoredBy);
380+
}
286381
if (statEvent.GetEventName() == "Demolish") {
287382

288383
CVarWrapper demosEnabledCvar = cvarManager->getCvar("demos_enabled");
@@ -301,6 +396,7 @@ void RocketLeagueAssistant::DemosHook(void* params)
301396
// Compare the primary player to the victim
302397
if (playerPRI.memory_address != victim.memory_address) {
303398

399+
LOG("Using Demos Hook");
304400
SendCommands(reqUrlDemosString);
305401

306402

@@ -317,11 +413,11 @@ void RocketLeagueAssistant::FreeplayHook()
317413

318414
if (!enabled) { LOG("RocketLeagueAssistant is not enabled"); return; }
319415

320-
//Check if it is a replay (this is may be temporary to minimize log flooding on Home Assistant)
416+
////Check if it is a replay (this is may be temporary to minimize log flooding on Home Assistant)
321417

322-
CVarWrapper replayCvar = cvarManager->getCvar("isReplay");
323-
bool isReplay = replayCvar.getBoolValue();
324-
if (!isReplay) { Log("It's a replay"); return; }
418+
//CVarWrapper replayCvar = cvarManager->getCvar("isReplay");
419+
//bool isReplay = replayCvar.getBoolValue();
420+
//if (!isReplay) { Log("It's a replay"); return; }
325421

326422
//May be redundant, but good to check
327423

@@ -363,35 +459,35 @@ void RocketLeagueAssistant::MainMenuHook(std::string name)
363459

364460
}
365461

366-
void RocketLeagueAssistant::GoalScoredHook(std::string name)
367-
{
368-
//Check if plugin is enabled
369-
CVarWrapper enableCvar = cvarManager->getCvar("ha_enabled");
370-
bool enabled = enableCvar.getBoolValue();
371-
372-
if (!enabled) { LOG("RocketLeagueAssistant is not enabled"); return; }
373-
374-
375-
//See if Goal Scored hook is enabled
376-
CVarWrapper goalScoredEnabledCvar = cvarManager->getCvar("goalScored_enabled");
377-
bool goalScoredEnabled = goalScoredEnabledCvar.getBoolValue();
378-
if (!goalScoredEnabled) { LOG("goalScored Automations are not enabled"); return; }
379-
380-
//See if it is a replay
381-
CVarWrapper replayCvar = cvarManager->getCvar("isReplay");
382-
bool isReplay = replayCvar.getBoolValue();
383-
if (isReplay == true) { Log("It's a replay"); return; }
384-
385-
//Get Goal Scored automation url, transform, and convert to string
386-
CVarWrapper hagoalScoredCVar = cvarManager->getCvar("ha_goalScored");
387-
if (!hagoalScoredCVar) { return; }
388-
auto reqUrlgoalScored = cvarManager->getCvar("ha_goalScored");
389-
std::string reqUrlgoalScoredString = reqUrlgoalScored.getStringValue();
390-
391-
LOG("Using Goal Scored Hook");
392-
SendCommands(reqUrlgoalScoredString);
393-
394-
}
462+
//void RocketLeagueAssistant::GoalScoredHook(std::string name)
463+
//{
464+
// //Check if plugin is enabled
465+
// CVarWrapper enableCvar = cvarManager->getCvar("ha_enabled");
466+
// bool enabled = enableCvar.getBoolValue();
467+
//
468+
// if (!enabled) { LOG("RocketLeagueAssistant is not enabled"); return; }
469+
//
470+
//
471+
// //See if Goal Scored hook is enabled
472+
// CVarWrapper goalScoredEnabledCvar = cvarManager->getCvar("goalScored_enabled");
473+
// bool goalScoredEnabled = goalScoredEnabledCvar.getBoolValue();
474+
// if (!goalScoredEnabled) { LOG("goalScored Automations are not enabled"); return; }
475+
//
476+
// //See if it is a replay
477+
// CVarWrapper replayCvar = cvarManager->getCvar("isReplay");
478+
// bool isReplay = replayCvar.getBoolValue();
479+
// if (isReplay == true) { Log("It's a replay"); return; }
480+
//
481+
// //Get Goal Scored automation url, transform, and convert to string
482+
// CVarWrapper hagoalScoredCVar = cvarManager->getCvar("ha_goalScored");
483+
// if (!hagoalScoredCVar) { return; }
484+
// auto reqUrlgoalScored = cvarManager->getCvar("ha_goalScored");
485+
// std::string reqUrlgoalScoredString = reqUrlgoalScored.getStringValue();
486+
//
487+
// LOG("Using Goal Scored Hook");
488+
// SendCommands(reqUrlgoalScoredString);
489+
//
490+
//}
395491

396492
void RocketLeagueAssistant::OvertimeHook(std::string name)
397493
{

RocketLeagueAssistant/RocketLeagueAssistant.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ class RocketLeagueAssistant: public BakkesMod::Plugin::BakkesModPlugin, public B
2222
void LoadHooks();
2323
void LoadTeams(std::string name);
2424
void ConvertLinearColor(float red, float green, float blue);
25-
void DemosHook(void* params);
25+
void StatsHook(void* params);
2626
void FreeplayHook();
2727
void MainMenuHook(std::string name);
2828
void OvertimeHook(std::string name);
29-
void GoalScoredHook(std::string name);
29+
//void GoalScoredHook(std::string name);
3030
void ExitHook(std::string name);
3131
void Replay(std::string name);
3232
void NotReplay(std::string name);

RocketLeagueAssistant/RocketLeagueAssistantGUI.cpp

+20-5
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ void RocketLeagueAssistant::RenderSettings() {
2929
CVarWrapper haAwayCvargui = cvarManager->getCvar("ha_away");
3030

3131
CVarWrapper goalScoredEnableCvar = cvarManager->getCvar("goalScored_enabled");
32-
CVarWrapper haGoalScoredCvargui = cvarManager->getCvar("ha_goalScored");
32+
CVarWrapper haAwayGoalScoredCvargui = cvarManager->getCvar("ha_goalAway");
33+
CVarWrapper haHomeGoalScoredCvargui = cvarManager->getCvar("ha_goalHome");
3334

3435
CVarWrapper mainmenuEnableCvar = cvarManager->getCvar("mainmenu_enabled");
3536
CVarWrapper haMainMenuCvargui = cvarManager->getCvar("ha_mainmenu");
@@ -129,14 +130,28 @@ void RocketLeagueAssistant::RenderSettings() {
129130

130131
if (goalScoredEnabled == true) {
131132

132-
if (!haGoalScoredCvargui) { return; }
133-
std::string reqgoalScoredUrlex = haGoalScoredCvargui.getStringValue();
133+
if (!haHomeGoalScoredCvargui) { return; }
134+
std::string reqhomeGoalUrlex = haHomeGoalScoredCvargui.getStringValue();
134135

135-
if (ImGui::InputText("Home Assistant Web Hook URL For Goals", &reqgoalScoredUrlex)) {
136+
if (ImGui::InputText("Home Assistant Web Hook URL for Your Team Scored", &reqhomeGoalUrlex)) {
136137

137-
haGoalScoredCvargui.setValue(reqgoalScoredUrlex);
138+
haHomeGoalScoredCvargui.setValue(reqhomeGoalUrlex);
138139

139140
}
141+
142+
143+
if (!haAwayGoalScoredCvargui) { return; }
144+
std::string reqawayGoalUrlex = haAwayGoalScoredCvargui.getStringValue();
145+
146+
147+
//char const* currentUrl = reqawayUrlex.data();
148+
149+
if (ImGui::InputText("Home Assistant Web Hook URL For Other Team Scored", &reqawayGoalUrlex)) {
150+
151+
haAwayGoalScoredCvargui.setValue(reqawayGoalUrlex);
152+
153+
}
154+
140155
}
141156

142157
//Demos hook Gui

0 commit comments

Comments
 (0)