· 5 years ago · May 29, 2020, 02:02 PM
1if not game:IsLoaded() then
2 game.Loaded:Wait()
3end
4
5local Secret_Key = 200
6local IYC = {}
7local Ignored = {}
8local Players = game:GetService("Players")
9local LP = Players.LocalPlayer
10local Chat = Instance.new("ScreenGui")
11local Frame = Instance.new("Frame")
12local ChatBarParentFrame = Instance.new("Frame")
13local Frame_2 = Instance.new("Frame")
14local BoxFrame = Instance.new("Frame")
15local Frame_3 = Instance.new("Frame")
16local ChatBar = Instance.new("TextBox")
17local ChatChannelParentFrame = Instance.new("Frame")
18local Frame_MessageLogDisplay = Instance.new("Frame")
19local Scroller = Instance.new("ScrollingFrame")
20local UIListLayout = Instance.new("UIListLayout")
21local Frame_8 = Instance.new("Frame")
22local TextLabel_5 = Instance.new("TextLabel")
23local ImageButton = Instance.new("ImageButton")
24local ImageLabel_3 = Instance.new("ImageLabel")
25
26function FindInTable(Table, Name)
27 for i,v in pairs(Table) do
28 if v == Name then
29 return true
30 end
31 end
32 return false
33end
34
35function GetInTable(Table, Name)
36 for i = 1, #Table do
37 if Table[i] == Name then
38 return i
39 end
40 end
41 return false
42end
43
44function CreateLabelChat(Name, Text, Color)
45 local sf = Scroller.Frame
46 local sf2 = Scroller
47 local alls = 20
48 for i,v in pairs(sf:GetChildren()) do
49 if v then
50 alls = v.Size.Y.Offset + alls
51 end
52 if not v then
53 alls = 0
54 end
55 end
56 local ChatLabel = Instance.new('TextLabel', sf)
57 local ChatFrame = Instance.new('Frame', ChatLabel)
58 ChatLabel.Name = Name
59 ChatLabel.Text = Text
60 ChatLabel.BackgroundTransparency = 1
61 ChatLabel.Font = Enum.Font.SourceSansBold
62 ChatLabel.ClipsDescendants = true
63 ChatLabel.Position = UDim2.new(0,8,0,alls)
64 ChatLabel.TextTransparency = 1
65 ChatLabel.TextScaled = false
66 ChatLabel.TextSize = 18
67 ChatLabel.TextWrapped = true
68 ChatLabel.TextXAlignment = Enum.TextXAlignment.Left
69 ChatLabel.TextYAlignment = Enum.TextYAlignment.Top
70 ChatFrame.BackgroundTransparency = 1
71 ChatFrame.BorderSizePixel = 0
72 ChatFrame.Size = UDim2.new(0,16,1,0)
73 ChatFrame.Position = UDim2.new(0,316,0,0)
74 ChatLabel.TextStrokeTransparency = 0.750
75 ChatLabel.TextColor3 = Color --(Name == LP.Name and Color3.fromRGB(0, 100, 255)) or (IsDM and Color3.fromRGB(249, 233, 153)) or Color3.fromRGB(255, 255, 255)
76 local BoundY = game:GetService("TextService"):GetTextSize(ChatLabel.Text, ChatLabel.TextSize, Enum.Font.SourceSansBold, sf2.AbsoluteSize).Y
77 ChatLabel.Size = UDim2.new(1,-15,0,BoundY)
78 sf2.CanvasSize = UDim2.new(0,0,0,alls+BoundY)
79 sf2.CanvasPosition = Vector2.new(0,sf2.CanvasPosition.Y + BoundY)
80 local size2 = sf2.CanvasSize.Y.Offset
81 ChatLabel.TextTransparency = 0
82end
83
84----------------------------------------------------------------------
85
86local Chat2 = Instance.new("ImageButton")
87local ChatIcon2 = Instance.new("ImageLabel")
88local ChatCounter2 = Instance.new("ImageLabel")
89local ChatCounterText2 = Instance.new("TextLabel")
90
91TMouse = game.Players.LocalPlayer:GetMouse()
92TMouse.KeyUp:connect(function(Key)
93 if (Key=="'") then
94 Frame.Visible = true
95 ChatBar:CaptureFocus()
96 end
97end)
98
99Chat.Name = "CustomChat"
100Chat.Parent = game:GetService("CoreGui")
101Chat.DisplayOrder = 6
102Chat.ResetOnSpawn = false
103
104Frame.Parent = Chat
105Frame.BackgroundTransparency = 1.000
106Frame.Size = UDim2.new(0.300000012, 0, 0.275945932, 0)
107Frame.Visible = false
108Frame.Position = UDim2.new(0, 0, 0.6, 0)
109
110ChatBarParentFrame.Name = "ChatBarParentFrame"
111ChatBarParentFrame.Parent = Frame
112ChatBarParentFrame.BackgroundTransparency = 1.000
113ChatBarParentFrame.Position = UDim2.new(0, 0, 1, -42)
114ChatBarParentFrame.Size = UDim2.new(1, 0, 0, 42)
115
116Frame_2.Parent = ChatBarParentFrame
117Frame_2.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
118Frame_2.BackgroundTransparency = 1
119Frame_2.BorderSizePixel = 0
120Frame_2.Size = UDim2.new(1, 0, 1, 0)
121
122BoxFrame.Name = "BoxFrame"
123BoxFrame.Parent = Frame_2
124BoxFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
125BoxFrame.BackgroundTransparency = 1
126BoxFrame.BorderSizePixel = 0
127BoxFrame.Position = UDim2.new(0, 7, 0, 7)
128BoxFrame.Size = UDim2.new(1, -14, 1, -14)
129
130Frame_3.Parent = BoxFrame
131Frame_3.BackgroundTransparency = 1.000
132Frame_3.Position = UDim2.new(0, 5, 0, 5)
133Frame_3.Size = UDim2.new(1, -10, 1, -10)
134
135ChatBar.Name = "ChatBar"
136ChatBar.Parent = Frame_3
137ChatBar.BackgroundTransparency = 1.000
138ChatBar.Selectable = false
139ChatBar.Size = UDim2.new(1,0,0,28)
140ChatBar.ClearTextOnFocus = false
141ChatBar.Font = Enum.Font.SourceSansBold
142ChatBar.Text = ""
143ChatBar.PlaceholderText = "To chat click here or press ' key"
144ChatBar.PlaceholderColor3 = Color3.fromRGB(0, 0, 0)
145ChatBar.TextColor3 = Color3.fromRGB(0, 0, 0)
146ChatBar.TextSize = 18.000
147ChatBar.TextTransparency = 1
148ChatBar.TextWrapped = true
149ChatBar.TextScaled = false
150ChatBar.TextXAlignment = Enum.TextXAlignment.Left
151ChatBar.TextYAlignment = Enum.TextYAlignment.Top
152
153ChatChannelParentFrame.Name = "ChatChannelParentFrame"
154ChatChannelParentFrame.Parent = Frame
155ChatChannelParentFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
156ChatChannelParentFrame.BackgroundTransparency = 1
157ChatChannelParentFrame.BorderSizePixel = 0
158ChatChannelParentFrame.Position = UDim2.new(0, 0, 0, 2)
159ChatChannelParentFrame.Size = UDim2.new(1, 0, 1, -46)
160local mouseEntered = false
161Frame.MouseEnter:connect(function()
162 mouseEntered = true
163 if(ChatChannelParentFrame.BackgroundTransparency > 0.7) then
164 spawn(function()
165 for i = 0.95, 0.6, -.05 do
166 ChatChannelParentFrame.BackgroundTransparency = i
167 ImageButton.BackgroundTransparency = i
168 Frame_2.BackgroundTransparency = i
169 BoxFrame.BackgroundTransparency = i
170 wait()
171 end
172 end)
173 spawn(function()
174 for i = 0.95, 0.4, -.05 do
175 ChatBar.TextTransparency = i
176 Scroller.ScrollBarImageTransparency = i
177 wait()
178 end
179 end)
180 end
181end)
182local mouseLeaveCalled = false
183Frame.MouseLeave:connect(function()
184 if(not mouseLeaveCalled) then
185 mouseLeaveCalled = true
186 mouseEntered = false;
187 wait(3)
188 if(not mouseEntered) then
189 spawn(function()
190 for i = 0.6, 1.1, .05 do
191 ChatChannelParentFrame.BackgroundTransparency = i
192 ImageButton.BackgroundTransparency = i
193 Frame_2.BackgroundTransparency = i
194 BoxFrame.BackgroundTransparency = i
195 wait()
196 end
197 end)
198 spawn(function()
199 for i = 0.4, 1.1, .05 do
200 ChatBar.TextTransparency = i
201 Scroller.ScrollBarImageTransparency = i
202 wait()
203 end
204 end)
205 end
206 mouseLeaveCalled = false
207 end
208end)
209
210Frame_MessageLogDisplay.Name = "Frame_MessageLogDisplay"
211Frame_MessageLogDisplay.Parent = ChatChannelParentFrame
212Frame_MessageLogDisplay.BackgroundTransparency = 1.000
213Frame_MessageLogDisplay.Size = UDim2.new(1, 0, 1, 0)
214
215Scroller.Name = "Scroller"
216Scroller.Parent = Frame_MessageLogDisplay
217Scroller.Active = true
218Scroller.BackgroundTransparency = 1.000
219Scroller.BorderSizePixel = 0
220Scroller.Position = UDim2.new(0, 0, 0, 3)
221Scroller.Selectable = false
222Scroller.Size = UDim2.new(1, -4, 1, -6)
223Scroller.CanvasSize = UDim2.new(0, 0, 0, 18)
224Scroller.ScrollBarThickness = 4
225Scroller.ScrollingEnabled = true
226Scroller.ZIndex = 5
227
228UIListLayout.Parent = Scroller
229UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
230
231Frame_8.Parent = Scroller
232Frame_8.BackgroundTransparency = 1.000
233Frame_8.LayoutOrder = 1
234Frame_8.Size = UDim2.new(1, 0, 0, 18)
235
236TextLabel_5.Parent = Frame_8
237TextLabel_5.BackgroundTransparency = 1.000
238TextLabel_5.ClipsDescendants = true
239TextLabel_5.Position = UDim2.new(0, 8, 0, 0)
240TextLabel_5.Size = UDim2.new(1, -14, 1, 0)
241TextLabel_5.Font = Enum.Font.SourceSansBold
242TextLabel_5.Text = "Encrypted chat between Exploiters."
243TextLabel_5.TextColor3 = Color3.fromRGB(255, 255, 255)
244TextLabel_5.TextSize = 18.000
245TextLabel_5.TextStrokeTransparency = 0.750
246TextLabel_5.TextWrapped = true
247TextLabel_5.TextXAlignment = Enum.TextXAlignment.Left
248TextLabel_5.TextYAlignment = Enum.TextYAlignment.Top
249
250unread_counter = 0
251game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessed)
252 if ChatBar:IsFocused() == true then
253 Frame.Visible = true
254 ChatIcon2.ImageColor3 = Color3.new(0, 255, 0)
255 ChatChannelParentFrame.BackgroundTransparency = 0.6
256 ImageButton.BackgroundTransparency = 0.6
257 Frame_2.BackgroundTransparency = 0.6
258 BoxFrame.BackgroundTransparency = 0.6
259 ChatBar.TextTransparency = 0.4
260 ChatCounterText2.Text = ""
261 ChatCounter2.Visible = false
262 unread_counter = 0
263 Scroller.ScrollBarImageTransparency = 0.4
264 end
265end)
266ChatBar.Focused:Connect(function(enterPressed)
267 ChatChannelParentFrame.BackgroundTransparency = 0.6
268 ImageButton.BackgroundTransparency = 0.6
269 Frame_2.BackgroundTransparency = 0.6
270 BoxFrame.BackgroundTransparency = 0.6
271 ChatBar.TextTransparency = 0.4
272 Scroller.ScrollBarImageTransparency = 0.4
273end)
274ChatBar.FocusLost:Connect(function(enterPressed)
275 if enterPressed then
276 if string.len(ChatBar.Text) ~= 0 then
277 if string.sub(ChatBar.Text, 1, 3) == "/w " then
278 local msg = ChatBar.Text:gsub("/w ", "")
279 local args = msg:split(" ")
280 local Players = GetPlayers(args[1])
281 if #Players > 0 then
282 local Player = GetPlayers(args[1])[1]
283 if FindInTable(IYC, Player.Name) then
284 msg = msg:gsub(args[1] .. " ", "")
285 LP.OsPlatform = GenMsg(msg, true, Player.Name)
286 CreateLabelChat(Player.Name,LocalTime().." - [To " .. Player.Name .. "] " .. msg, Color3.fromRGB(249, 233, 153))
287 else
288 CreateLabelChat("ERROR",LocalTime().." - " .. Player.Name .." ISNT USING ENCRYPTED CHAT", Color3.fromRGB(255, 25, 25))
289 end
290 else
291 CreateLabelChat("ERROR",LocalTime().." - No Users found", Color3.fromRGB(255, 25, 25))
292 end
293
294 else
295 LP.OsPlatform = GenMsg(ChatBar.Text)
296 end
297 end
298 ChatBar.Text = "";
299 foundPlayer = false
300 end
301end)
302local foundPlayer = false;
303local function Index()
304 local Text = ChatBar.Text;
305 if(Text == "" or Text == "/") then
306 foundPlayer = false
307 end
308 if(#Text > 3) then
309 if string.sub(Text, 1, 3) == "/w " then
310 if(foundPlayer == false) then
311 if(not Text:split(" ")[3]) then
312 local findPlayer = GetPlayers(Text:split(" ")[2])
313 if(#findPlayer == 1) then
314 ChatBar.Text = "/w " .. findPlayer[1].Name .. " ";
315 ChatBar.CursorPosition = string.len(ChatBar.Text)+1
316 foundPlayer = true
317 end
318 end
319 end
320 else
321 foundPlayer = true
322 end
323 elseif(#Text > 265) then
324 ChatBar.Text = ChatBar.Text:sub(265);
325 end
326end
327ChatBar:GetPropertyChangedSignal("Text"):Connect(Index)
328
329function Match(str, with)
330 local str, with = tostring(str), tostring(with)
331 if (string.match(str, with) and true or false) then
332 return true or false
333 end
334end
335
336local arrayUsers = {}
337ChatLog = function(plr)
338 if not FindInTable(IYC, plr.Name) then
339 if(LP ~= plr) then
340 if Match(plr.OsPlatform, "IYCHAT_") then
341 table.insert(IYC, plr.Name)
342 CreateLabelChat(plr.Name, "[SYSTEM] " .. plr.Name .. " joined Exploiter Chat", Color3.fromRGB(5, 150, 100))
343 end
344 end
345 if(arrayUsers[plr.Name]) then arrayUsers[plr.Name]:Disconnect() end
346 arrayUsers[plr.Name] = plr:GetPropertyChangedSignal("OsPlatform"):Connect(function()
347 if Match(plr.OsPlatform, "IYCHAT_") then
348 if not FindInTable(IYC, plr.Name) then
349 if(LP ~= plr) then
350 table.insert(IYC, plr.Name)
351 CreateLabelChat(plr.Name, "[SYSTEM] " .. plr.Name .. " joined Exploiter Chat", Color3.fromRGB(5, 150, 100))
352 end
353 end
354 end
355 local getMessage = GetMsg(plr.OsPlatform, LP.Name)
356 if getMessage and not FindInTable(Ignored, plr.Name) then
357 local Msg = getMessage[1]
358 local Private = getMessage[2]
359 if Private then
360 Msg = LocalTime().." - [From " .. plr.Name .. "] " .. Msg
361 else
362 Msg = LocalTime().." - ["..plr.Name.."]: "..Msg
363 end
364
365 CreateLabelChat(plr.Name,Msg, (plr.Name == LP.Name and Color3.fromRGB(0, 100, 255)) or (Private and Color3.fromRGB(249, 233, 153)) or Color3.fromRGB(255, 255, 255))
366 unread_counter = unread_counter + 1
367 ChatCounterText2.Text = unread_counter
368 if unread_counter > 99 then
369 ChatCounterText2.Text = "99+"
370 end
371 end
372 end)
373 end
374end
375
376for _, plr in pairs(game.Players:GetChildren()) do
377 ChatLog(plr)
378end
379
380game.Players.PlayerAdded:connect(function(player)
381 ChatLog(player)
382end)
383
384Players.PlayerRemoving:Connect(function(plr)
385 if FindInTable(IYC, plr.Name) then
386 table.remove(IYC, GetInTable(IYC, plr.Name))
387 if(arrayUsers[plr.Name]) then arrayUsers[plr.Name]:Disconnect() arrayUsers[plr.Name] = nil; end
388 CreateLabelChat(plr.Name, "[SYSTEM] " .. plr.Name .. " left Exploiter Chat", Color3.fromRGB(5, 150, 100))
389 end
390end)
391
392Chat2.Name = "Chat"
393Chat2.Parent = game.CoreGui:WaitForChild("TopBar")
394Chat2.BackgroundTransparency = 1.000
395Chat2.Position = UDim2.new(0, 150, 0, 0)
396Chat2.Size = UDim2.new(0, 50, 0, 36)
397Chat2.AutoButtonColor = false
398Chat2.MouseButton1Click:Connect(function()
399 if Frame.Visible then
400 unread_counter = 0
401 ChatCounter2.Visible = true
402 Frame.Visible = false
403 ChatIcon2.ImageColor3 = Color3.new(255, 255, 255)
404 ChatChannelParentFrame.BackgroundTransparency = 1
405 ImageButton.BackgroundTransparency = 1
406 Frame_2.BackgroundTransparency = 1
407 BoxFrame.BackgroundTransparency = 1
408 elseif not Frame.Visible then
409 ChatCounterText2.Text = ""
410 ChatCounter2.Visible = false
411 unread_counter = 0
412 Frame.Visible = true
413 ChatIcon2.ImageColor3 = Color3.new(0, 255, 0)
414 ChatChannelParentFrame.BackgroundTransparency = 0.6
415 ImageButton.BackgroundTransparency = 0.6
416 Frame_2.BackgroundTransparency = 0.6
417 BoxFrame.BackgroundTransparency = 0.6
418 end
419end)
420
421ChatIcon2.Name = "ChatIcon"
422ChatIcon2.Parent = Chat2
423ChatIcon2.BackgroundTransparency = 1.000
424ChatIcon2.Position = UDim2.new(0.5, -14, 0.5, -13)
425ChatIcon2.Size = UDim2.new(0, 28, 0, 27)
426ChatIcon2.Image = "rbxasset://textures/ui/Chat/Chat.png"
427
428ChatCounter2.Name = "ChatCounter"
429ChatCounter2.Parent = ChatIcon2
430ChatCounter2.BackgroundTransparency = 1.000
431ChatCounter2.Position = UDim2.new(1, -12, 0, -4)
432ChatCounter2.Size = UDim2.new(0, 18, 0, 18)
433ChatCounter2.Visible = true
434ChatCounter2.Image = "rbxasset://textures/ui/Chat/MessageCounter.png"
435
436ChatCounterText2.Name = "ChatCounterText"
437ChatCounterText2.Parent = ChatCounter2
438ChatCounterText2.BackgroundTransparency = 1.000
439ChatCounterText2.BorderSizePixel = 0
440ChatCounterText2.Position = UDim2.new(0.5, -6, 0.5, -7)
441ChatCounterText2.Size = UDim2.new(0, 13, 0, 9)
442ChatCounterText2.Font = Enum.Font.SourceSansBold
443ChatCounterText2.Text = ""
444ChatCounterText2.TextColor3 = Color3.fromRGB(255, 255, 255)
445ChatCounterText2.TextSize = 13.000
446ChatCounterText2.TextWrapped = true
447ChatCounterText2.TextXAlignment = Enum.TextXAlignment.Center
448
449function LocalTime()
450 local the_hour = math.floor((tick() % 86400) / 3600)
451 local the_minute = math.floor((tick() % 3600) / 60)
452 local the_second = math.floor(tick() % 60)
453 local the_time_of_day = the_hour > 11 and 'PM' or 'AM'
454 the_hour = (the_hour % 12 == 0 and 12 or the_hour % 12)
455 the_hour = the_hour < 10 and '0' .. the_hour or the_hour
456 the_minute = the_minute < 10 and '0' .. the_minute or the_minute
457 the_second = the_second < 10 and '0' .. the_second or the_second
458 return the_hour .. ':' .. the_minute .. ':' .. the_second .. ' ' .. the_time_of_day
459end
460
461function SplitStr(str, div)
462 local str, sep, div = tostring(str), {}, tostring(div)
463 for i in str:gmatch("[^".. div .."]+") do
464 table.insert(sep, i)
465 end
466 return sep
467end
468
469function Encrypt(Message, PluginKey)
470 local Message, PluginKey, tab = tostring(Message), tonumber(PluginKey), {}
471 for i = 0, 127 do
472 local a = -1
473 repeat a = a + 2
474 until a * (2 * i + 1) % 256 == 1
475 tab[i] = a
476 end
477 local Var1 = PluginKey
478 local Var2 = PluginKey + PluginKey
479 return (Message:gsub(".", function(Encode)
480 local Var3 = Var1 % 274877906944
481 local Var4 = (Var1 - Var3) / 274877906944
482 local Var5 = Var4 % 128
483 Encode = Encode:byte()
484 local Var6 = (Encode * tab[Var5] - (Var4 - Var5) / 128) % 256
485 Var1 = Var3 * Var2 + Var4 + Var6 + Encode
486 return ('%02x'):format(Var6)
487 end))
488end
489
490function Decrypt(Message, PluginKey)
491 local Message, PluginKey = tostring(Message), tonumber(PluginKey)
492 local Var1 = PluginKey
493 local Var2 = PluginKey + PluginKey
494 return(Message:gsub("%x%x", function(Decode)
495 local Var3 = Var1 % 274877906944
496 local Var4 = (Var1 - Var3) / 274877906944
497 local Var5 = Var4 % 128
498 Decode = tonumber(Decode, 16)
499 local Var6 = (Decode + (Var4 - Var5) / 128) * (2 * Var5 + 1) % 256
500 Var1 = Var3 * Var2 + Var4 + Decode + Var6
501 return string.char(Var6)
502 end))
503end
504
505function GetPlayers(str)
506 local str = tostring(str)
507 local found = {}
508 for i,v in pairs(Players:GetChildren()) do
509 if v.Name:lower():sub(1, #str) == str:lower() then
510 table.insert(found, v)
511 end
512 end
513 return found
514end
515
516function GetIYPlayers(str)
517 local str = tostring(str)
518 local found = {}
519 for i,v in pairs(IYC) do
520 if v:lower():sub(1, #str) == str:lower() then
521 table.insert(found, v)
522 end
523 end
524 return found
525end
526
527function GenMsg(str, PM, Target)
528 local str, Target = tostring(str), tostring(Target):lower()
529 if not PM then
530 return "IYCHAT_"..Encrypt("Received|||||"..str, Secret_Key)
531 else
532 local Key = 0
533 for i = 1, #Target do
534 Key = Key + Target:sub(i, i):byte()
535 end
536 if PM and Target and Key then
537 local PMEncryption = "Private|||||"..Encrypt("Received|||||" .. str, Key)
538 return "IYCHAT_"..Encrypt(PMEncryption, Secret_Key)
539 end
540 end
541end
542
543function GetMsg(str, Username)
544 local str, Username, Key = tostring(str), tostring(Username):lower(), 0
545 for i = 1, #Username do
546 Key = Key + Username:sub(i, i):byte()
547 end
548 if Match(str, "IYCHAT_") then
549 str = str:gsub("IYCHAT_", "")
550 str = Decrypt(str, Secret_Key)
551 local split = SplitStr(str, "|||||")
552 if #split > 1 then
553 if split[1] == "Received" then
554 return {split[2]; false}
555 elseif split[1] == "Private" then
556 local encmsg = Decrypt(split[2], Key)
557 local split2 = SplitStr(encmsg, "|||||")
558 if #split2 > 1 then
559 if split2[1] == "Received" then
560 return {split2[2]; true}
561 end
562 end
563 end
564 end
565 end
566 return false
567end
568
569local function updateSize()
570 local TextService = game:GetService("TextService")
571 local newSize = TextService:GetTextSize(ChatBar.Text, ChatBar.TextSize, ChatBar.Font, Vector2.new(ChatBar.AbsoluteSize.X, 1000))
572 ChatBar.Size = UDim2.new(1, -15, 0, newSize.Y)
573 BoxFrame.Size = UDim2.new(1, -14, 0, newSize.Y+10)
574 Frame_3.Size = UDim2.new(1, -10, 1, -10 + newSize.Y)
575 Frame_2.Size = UDim2.new(1, 0, 0, newSize.Y+24)
576end
577ChatBar:GetPropertyChangedSignal("TextBounds"):Connect(updateSize)
578LP.OsPlatform = "IYCHAT_Running"
579
580local Plugin = {
581 ["PluginName"] = "Encrypted Chat Users";
582 ["PluginDescription"] = "Allows you to securely chat with other users with this plugin installed.";
583 ["Commands"] = {
584 ["ecchatusers"] = {
585 ["ListName"] = "ecchatusers";
586 ["Description"] = "Lists all the players in the game who has Encrypted Chat";
587 ["Aliases"] = {"ecu"};
588 ["Function"] = function(args, speaker)
589 notify("Encrypted Chat", "Users: "..table.concat(IYC, ", "))
590 end
591 },
592 ["ignoredlist"] = {
593 ["ListName"] = "ignoredlist";
594 ["Description"] = "Lists all the ignored players in the Encrypted Chat";
595 ["Aliases"] = {};
596 ["Function"] = function(args, speaker)
597 notify("Encrypted Chat", "Ignored Users: "..table.concat(Ignored, ", "))
598 end
599 },
600 ["ignore"] = {
601 ["ListName"] = "ignore";
602 ["Description"] = "Ignores a Player in Encrypted Chat";
603 ["Aliases"] = {};
604 ["Function"] = function(args, speaker)
605 local Players = GetPlayers(args[1])
606 if #Players > 0 then
607 local Player = GetPlayers(args[1])[1]
608 if not FindInTable(Ignored, Player.Name) then
609 table.insert(Ignored, Player.Name)
610 notify("Encrypted Chat", "Ignored user: "..Player.Name)
611 end
612 end
613
614 end
615 },
616 ["unignore"] = {
617 ["ListName"] = "unignore";
618 ["Description"] = "Unignores a Player in Encrypted Chat";
619 ["Aliases"] = {};
620 ["Function"] = function(args, speaker)
621 local Players = GetPlayers(args[1])
622 if #Players > 0 then
623 local Player = GetPlayers(args[1])[1]
624 if FindInTable(Ignored, Player.Name) then
625 table.remove(Ignored, GetInTable(Ignored, Player.Name))
626 notify("Encrypted Chat", "Unignored user: "..Player.Name)
627 end
628 end
629
630 end
631 },
632 ["changekey"] = {
633 ["ListName"] = "changekey";
634 ["Description"] = "Changes Secret Key in Encrypted Chat";
635 ["Aliases"] = {};
636 ["Function"] = function(args, speaker)
637 Secret_Key = args[1];
638 notify("Encrypted Chat", "Changed security code to: " .. Secret_Key)
639 end
640 };
641 };
642};
643return Plugin