@@ -80,16 +80,16 @@ public async Task LogScriptAsync(string script, ShardedInteractionContext contex
80
80
81
81
if ( ! _percentageInvoker . CanInvoke ( _scriptsSettings . ScriptLoggingPercentage ) ) return ;
82
82
83
- // Get a SHA256 hash of the script (hex)
84
- var scriptHash = string . Join ( "" , SHA256 . HashData ( Encoding . UTF8 . GetBytes ( script ) ) . Select ( b => b . ToString ( "x2" ) ) ) ;
85
- if ( _scriptHashes . Contains ( scriptHash ) ) return ;
86
-
87
83
// username based off machine info
88
84
var username = $ "{ Environment . MachineName } ({ _localIpAddressProvider . AddressV4 } / { _localIpAddressProvider . AddressV6 } )";
89
85
var userInfo = context . User . ToString ( ) ;
90
86
var guildInfo = context . Guild ? . ToString ( ) ?? "DMs" ;
91
- var channelInfo = context . Channel . ToString ( ) ;
87
+ var channelInfo = context . Channel ? . ToString ( ) ?? "Forum Channel" ;
88
+
89
+
92
90
91
+ // Get a SHA256 hash of the script (hex)
92
+ var scriptHash = string . Join ( "" , SHA256 . HashData ( Encoding . UTF8 . GetBytes ( script ) ) . Select ( b => b . ToString ( "x2" ) ) ) ;
93
93
var content = $ """
94
94
**User:** { userInfo }
95
95
**Guild:** { guildInfo }
@@ -99,6 +99,26 @@ public async Task LogScriptAsync(string script, ShardedInteractionContext contex
99
99
100
100
using var client = _httpClientFactory . CreateClient ( ) ;
101
101
var url = _scriptsSettings . ScriptLoggingDiscordWebhookUrl ;
102
+
103
+
104
+ if ( _scriptHashes . Contains ( scriptHash ) )
105
+ {
106
+ // Just log the hash
107
+ content += "\n \n **Script already logged**" ;
108
+
109
+ var existsPayload = new
110
+ {
111
+ username ,
112
+ content
113
+ } ;
114
+
115
+ var existsJson = JsonConvert . SerializeObject ( existsPayload ) ;
116
+
117
+ await client . PostAsync ( url , new StringContent ( existsJson , Encoding . UTF8 , "application/json" ) ) ;
118
+
119
+ return ;
120
+ }
121
+
102
122
var payload = new
103
123
{
104
124
username ,
0 commit comments