Skip to content

Commit f205e2f

Browse files
authored
Merge pull request #247 from sgkoishi/general-devel
Respect OTAPI hook result
2 parents 8a3fffd + dd2c806 commit f205e2f

File tree

7 files changed

+64
-0
lines changed

7 files changed

+64
-0
lines changed

TerrariaServerAPI/TerrariaApi.Server/Hooking/GameHooks.cs

+16
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ private static void OnUpdate(On.Terraria.Main.orig_Update orig, Terraria.Main in
3434

3535
private static void OnHardmodeTileUpdate(object sender, Hooks.WorldGen.HardmodeTileUpdateEventArgs e)
3636
{
37+
if (e.Result == HookResult.Cancel)
38+
{
39+
return;
40+
}
3741
if (_hookManager.InvokeGameHardmodeTileUpdate(e.X, e.Y, e.Type))
3842
{
3943
e.Result = HookResult.Cancel;
@@ -42,6 +46,10 @@ private static void OnHardmodeTileUpdate(object sender, Hooks.WorldGen.HardmodeT
4246

4347
private static void OnHardmodeTilePlace(object sender, Hooks.WorldGen.HardmodeTilePlaceEventArgs e)
4448
{
49+
if (e.Result == HardmodeTileUpdateResult.Cancel)
50+
{
51+
return;
52+
}
4553
if (_hookManager.InvokeGameHardmodeTileUpdate(e.X, e.Y, e.Type))
4654
{
4755
e.Result = HardmodeTileUpdateResult.Cancel;
@@ -63,6 +71,10 @@ private static void OnStartServer(On.Terraria.Netplay.orig_StartServer orig)
6371

6472
private static void OnItemMechSpawn(object sender, Hooks.Item.MechSpawnEventArgs e)
6573
{
74+
if (e.Result == HookResult.Cancel)
75+
{
76+
return;
77+
}
6678
if (!_hookManager.InvokeGameStatueSpawn(e.Num2, e.Num3, e.Num, (int)(e.X / 16f), (int)(e.Y / 16f), e.Type, false))
6779
{
6880
e.Result = HookResult.Cancel;
@@ -71,6 +83,10 @@ private static void OnItemMechSpawn(object sender, Hooks.Item.MechSpawnEventArgs
7183

7284
private static void OnNpcMechSpawn(object sender, Hooks.NPC.MechSpawnEventArgs e)
7385
{
86+
if (e.Result == HookResult.Cancel)
87+
{
88+
return;
89+
}
7490
if (!_hookManager.InvokeGameStatueSpawn(e.Num2, e.Num3, e.Num, (int)(e.X / 16f), (int)(e.Y / 16f), e.Type, true))
7591
{
7692
e.Result = HookResult.Cancel;

TerrariaServerAPI/TerrariaApi.Server/Hooking/ItemHooks.cs

+4
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ private static void OnSetDefaults(On.Terraria.Item.orig_SetDefaults_int_bool_Ite
4040

4141
private static void OnQuickStack(object sender, Hooks.Chest.QuickStackEventArgs e)
4242
{
43+
if (e.Result == HookResult.Cancel)
44+
{
45+
return;
46+
}
4347
if (_hookManager.InvokeItemForceIntoChest(Main.chest[e.ChestIndex], e.Item, Main.player[e.PlayerId]))
4448
{
4549
e.Result = HookResult.Cancel;

TerrariaServerAPI/TerrariaApi.Server/Hooking/NetHooks.cs

+16
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ static void OnBroadcastChatMessage(On.Terraria.Chat.ChatHelper.orig_BroadcastCha
5050

5151
static void OnSendData(object sender, Hooks.NetMessage.SendDataEventArgs e)
5252
{
53+
if (e.Result == HookResult.Cancel)
54+
{
55+
return;
56+
}
5357
if (e.Event == HookEvent.Before)
5458
{
5559
var msgType = e.MsgType;
@@ -110,6 +114,10 @@ ref packet
110114

111115
static void OnReceiveData(object sender, Hooks.MessageBuffer.GetDataEventArgs e)
112116
{
117+
if (e.Result == HookResult.Cancel)
118+
{
119+
return;
120+
}
113121
if (!Enum.IsDefined(typeof(PacketTypes), (int)e.PacketId))
114122
{
115123
e.Result = HookResult.Cancel;
@@ -141,6 +149,10 @@ static void OnGreetPlayer(On.Terraria.NetMessage.orig_greetPlayer orig, int plr)
141149

142150
static void OnSendBytes(object sender, Hooks.NetMessage.SendBytesEventArgs e)
143151
{
152+
if (e.Result == HookResult.Cancel)
153+
{
154+
return;
155+
}
144156
if (_hookManager.InvokeNetSendBytes(Netplay.Clients[e.RemoteClient], e.Data, e.Offset, e.Size))
145157
{
146158
e.Result = HookResult.Cancel;
@@ -149,6 +161,10 @@ static void OnSendBytes(object sender, Hooks.NetMessage.SendBytesEventArgs e)
149161

150162
static void OnNameCollision(object sender, Hooks.MessageBuffer.NameCollisionEventArgs e)
151163
{
164+
if (e.Result == HookResult.Cancel)
165+
{
166+
return;
167+
}
152168
if (_hookManager.InvokeNetNameCollision(e.Player.whoAmI, e.Player.name))
153169
{
154170
e.Result = HookResult.Cancel;

TerrariaServerAPI/TerrariaApi.Server/Hooking/NpcHooks.cs

+12
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ static void OnTransform(On.Terraria.NPC.orig_Transform orig, NPC npc, int newTyp
7272

7373
static void OnSpawn(object sender, Hooks.NPC.SpawnEventArgs e)
7474
{
75+
if (e.Result == HookResult.Cancel)
76+
{
77+
return;
78+
}
7579
var index = e.Index;
7680
if (_hookManager.InvokeNpcSpawn(ref index))
7781
{
@@ -82,6 +86,10 @@ static void OnSpawn(object sender, Hooks.NPC.SpawnEventArgs e)
8286

8387
static void OnDropLoot(object sender, Hooks.NPC.DropLootEventArgs e)
8488
{
89+
if (e.Result == HookResult.Cancel)
90+
{
91+
return;
92+
}
8593
if (e.Event == HookEvent.Before)
8694
{
8795
var Width = e.Width;
@@ -129,6 +137,10 @@ ref reverseLookup
129137

130138
static void OnBossBagItem(object sender, Hooks.NPC.BossBagEventArgs e)
131139
{
140+
if (e.Result == HookResult.Cancel)
141+
{
142+
return;
143+
}
132144
var Width = e.Width;
133145
var Height = e.Height;
134146
var Type = e.Type;

TerrariaServerAPI/TerrariaApi.Server/Hooking/ServerHooks.cs

+4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ static void Main_startDedInput(On.Terraria.Main.orig_startDedInput orig)
3535

3636
static void OnProcess(object sender, Hooks.Main.CommandProcessEventArgs e)
3737
{
38+
if (e.Result == HookResult.Cancel)
39+
{
40+
return;
41+
}
3842
if (_hookManager.InvokeServerCommand(e.Command))
3943
{
4044
e.Result = HookResult.Cancel;

TerrariaServerAPI/TerrariaApi.Server/Hooking/WiringHooks.cs

+4
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ public static void AttachTo(HookManager hookManager)
2020

2121
static void OnAnnouncementBox(object sender, Hooks.Wiring.AnnouncementBoxEventArgs e)
2222
{
23+
if (e.Result == HookResult.Cancel)
24+
{
25+
return;
26+
}
2327
if (_hookManager.InvokeWireTriggerAnnouncementBox(Wiring.CurrentUser, e.X, e.Y, e.SignId, Main.sign[e.SignId].text))
2428
{
2529
e.Result = HookResult.Cancel;

TerrariaServerAPI/TerrariaApi.Server/Hooking/WorldHooks.cs

+8
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ public static void AttachTo(HookManager hookManager)
2727

2828
static void OnPressurePlate(object sender, Hooks.Collision.PressurePlateEventArgs e)
2929
{
30+
if (e.Result == HookResult.Cancel)
31+
{
32+
return;
33+
}
3034
if (e.Entity is NPC npc)
3135
{
3236
if (_hookManager.InvokeNpcTriggerPressurePlate(npc, e.X, e.Y))
@@ -62,6 +66,10 @@ private static void WorldGen_StartHardmode(On.Terraria.WorldGen.orig_StartHardmo
6266

6367
static void OnDropMeteor(object sender, Hooks.WorldGen.MeteorEventArgs e)
6468
{
69+
if (e.Result == HookResult.Cancel)
70+
{
71+
return;
72+
}
6573
if (_hookManager.InvokeWorldMeteorDrop(e.X, e.Y))
6674
{
6775
e.Result = HookResult.Cancel;

0 commit comments

Comments
 (0)