1+ -- Trello plugin
2+ type Card = {id : string , name : string , desc : string , labels : {any }? }
3+ type List = {id : string , name : string , cards : {Card }}
4+
15return function (Vargs , GetEnv )
26 local server = Vargs .Server ;
37 local service = Vargs .Service ;
@@ -8,11 +12,13 @@ return function(Vargs, GetEnv)
812
913 HTTP .Trello .Update = function ()
1014 if not HTTP .Trello .API or not Settings .Trello_Enabled then
15+ Logs :AddLog ("Script" , "Not running Trello API update" )
1116 return
1217 end
1318
1419 if not HTTP .HttpEnabled then
1520 warn ("Unable to connect to Trello. Make sure HTTP Requests are enabled in Game Settings." )
21+ Logs :AddLog ("Script" , "Not running Trello API update due to HTTP request being disabled." )
1622 return
1723 else
1824 local data = {
@@ -41,6 +47,7 @@ return function(Vargs, GetEnv)
4147 for _ , override in HTTP .Trello .Overrides do
4248 if table.find (override .Lists , list .name ) then
4349 foundOverride = true
50+ Logs :AddLog ("Script" , `Found override {list .name } for board {board } with {type (list .cards ) == "table" and # list .cards or list .cards } cards.` )
4451 for _ , card in list .cards do
4552 override .Process (card , data )
4653 end
@@ -58,6 +65,7 @@ return function(Vargs, GetEnv)
5865 table.insert (users , card .name )
5966 end
6067 data .Ranks [list .name ] = users
68+ Logs :AddLog ("Script" , `Found custom rank override {list .name } for board {board } with {type (list .cards ) == "table" and # list .cards or list .cards } cards.` )
6169 end
6270 end
6371 end
@@ -68,15 +76,19 @@ return function(Vargs, GetEnv)
6876 Settings .Trello_Primary ,
6977 unpack (Settings .Trello_Secondary )
7078 }
71- for i , v in boards do
79+ for _ , v in boards do
7280 if not v or service .Trim (v ) == "" then
7381 continue
7482 end
83+ Logs :AddLog ("Script" , `Attempting to pool data from Trello board {v }.` )
7584 local ran , err = pcall (grabData , v )
7685 if not ran then
7786 warn ("Unable to reach Trello. Ensure your board IDs, Trello key, and token are all correct. If issue persists, try increasing HttpWait in your Adonis settings." )
87+ Logs :AddLog ("Script" , `Failed to pool data from Trello board {v } due to {err }.` )
7888 success = false
7989 break
90+ else
91+ Logs :AddLog ("Script" , `Successfully pooled data from Trello board {v }.` )
8092 end
8193 end
8294
@@ -108,7 +120,7 @@ return function(Vargs, GetEnv)
108120 }
109121 end
110122
111- for i , v in service .GetPlayers () do
123+ for _ , v in service .GetPlayers () do
112124 local isBanned , Reason = Admin .CheckBan (v )
113125 if isBanned then
114126 v :Kick (string.format ("%s | Reason: %s" , Variables .BanMessage , (Reason or "No reason provided" )))
@@ -128,8 +140,8 @@ return function(Vargs, GetEnv)
128140
129141 Remote .Commands .TrelloOperation = function (p : Player , args : {[number ]: any })
130142 local adminLevel = Admin .GetLevel (p )
131-
132143 local data = args [1 ]
144+
133145 if data .Action == "MakeCard" then
134146 local command = Commands .MakeCard
135147 if command and Admin .CheckComLevel (adminLevel , command .AdminLevel ) then
@@ -141,7 +153,7 @@ return function(Vargs, GetEnv)
141153
142154 for _ , overrideList in HTTP .Trello .GetOverrideLists () do
143155 if service .Trim (string.lower (overrideList )) == service .Trim (string.lower (listName )) then
144- Functions .Hint ("You cannot create a card in that list" , {p })
156+ Functions .Hint ("You cannot create a card in that list" , {p }) -- Why??
145157 return
146158 end
147159 end
@@ -172,15 +184,15 @@ return function(Vargs, GetEnv)
172184 TrelloRequired = true ;
173185 AdminLevel = "Moderators" ;
174186 ListUpdater = function (plr : Player )
175- local tab = table.create (# HTTP .Trello .Bans )
187+ local tab = table.create (# HTTP .Trello .Bans + 2 )
188+ tab [1 ] = `# Banned Users: {# HTTP .Trello .Bans }`
189+ tab [2 ] = "―――――――――――――――――――――――"
176190 for _ , banData in HTTP .Trello .Bans do
177191 table.insert (tab , {
178192 Text = banData .Name ,
179193 Desc = banData .Reason or "No reason specified" ,
180194 })
181195 end
182- table.insert (tab , 1 , `# Banned Users: {# HTTP .Trello .Bans }` )
183- table.insert (tab , 2 , "―――――――――――――――――――――――" )
184196 return tab
185197 end ;
186198 Function = function (plr : Player , args : {string })
@@ -252,19 +264,17 @@ return function(Vargs, GetEnv)
252264 TrelloRequired = true ;
253265 AdminLevel = "HeadAdmins" ;
254266 Function = function (plr : Player , args : {string })
255- assert (args [1 ], "You need to supply a list name." )
256-
257267 local trello = HTTP .Trello .API
258268 if not Settings .Trello_Enabled or trello == nil then return Functions .Hint ('Trello has not been configured in settings' , {plr }) end
259269
260- local list = trello .Boards .MakeList (Settings .Trello_Primary , args [1 ])
270+ local list = trello .Boards .MakeList (Settings .Trello_Primary , assert ( args [1 ], "You need to supply a list name." ) )
261271 Functions .Hint (`Made list {list .name }` , {plr })
262272 end
263273 }
264274
265275 Commands .ViewList = {
266276 Prefix = Settings .Prefix ;
267- Commands = {"viewlist " , "viewtrellolist " };
277+ Commands = {"viewtrellolist " , "viewlist " };
268278 Args = {"name" };
269279 Description = "Views the specified Trello list from the primary board set in Settings." ;
270280 TrelloRequired = true ;
@@ -298,6 +308,29 @@ return function(Vargs, GetEnv)
298308 -- // Initialization
299309 if Settings .Trello_Enabled then
300310 service .StartLoop ("TRELLO_UPDATER" , Settings .HttpWait , HTTP .Trello .Update , true )
311+ Logs :AddLog ("Script" , `Trello update loop has been started to run every {Settings .HttpWait } seconds.` )
312+
313+ if not Settings .Trello_AppKey or Settings .Trello_AppKey == "" then
314+ table.insert (server .Messages , {
315+ Level = 301 ;
316+ Title = "Potential Trello issue!" ;
317+ Message = "You have enabled Trello without having an AppKey and thus Trello will likely not work! For better behavior it is adviced to also add a Trello Token. Click to see more" ;
318+ Time = 15 ;
319+ Icon = "MatIcon://Description" ;
320+ onClick = (server .Data and server .Data .NightlyMode ) and Core .Bytecode ([[ -- TODO: Upload image for this tutorial
321+ local window = client.UI.Make("Window", {
322+ Title = "How to change the DataStore key";
323+ Size = {700,300};
324+ Icon = "rbxassetid://7510994359";
325+ })
326+
327+ window:Add("ImageLabel", {
328+ Image = "rbxassetid://1059543904";
329+ })
330+
331+ window:Ready()
332+ ]] ) or nil })
333+ end
301334 end
302335 Logs :AddLog ("Script" , "Trello Module Loaded" )
303336end
0 commit comments