added disconnecter

This commit is contained in:
세젤귀 고양이들 2021-12-24 19:37:13 +09:00
parent 8d80a824b3
commit fb322a95e8
2 changed files with 40 additions and 1 deletions

View file

@ -72,6 +72,39 @@ function module.init(shared)
-- when created binding -- when created binding
new.created = prefix .. "Created::"; new.created = prefix .. "Created::";
new.createdSync = prefix .. "CreatedSync::"; new.createdSync = prefix .. "CreatedSync::";
-- roblox connections disconnecter
local insert = table.insert;
local idSpace = {};
local disconnecter = {};
function disconnecter:add(connection)
insert(self,connection);
end
function disconnecter:destroy()
local id = self.id;
if id then
idSpace[id] = nil;
end
for i,v in pairs(self) do
pcall(v.Disconnect,v);
self[i] = nil;
end
end
disconnecter.__index = disconnecter;
function new.new(id)
if id then
local old = idSpace[id];
if old then
return old;
end
end
local this = setmetatable({id = id},disconnecter);
if id then
idSpace[id] = this;
end
return this;
end
return new; return new;
end end

View file

@ -141,11 +141,17 @@ function module.init(shared)
self[key] = self[key] or value; self[key] = self[key] or value;
end end
function new.new(self,id) function new.new(self,id)
if id then
local old = storeIdSpace[id];
if old then
return old;
end
end
local this = setmetatable( local this = setmetatable(
{__self = self or {},__evt = setmetatable({},week),__reg = setmetatable({},week)},store {__self = self or {},__evt = setmetatable({},week),__reg = setmetatable({},week)},store
); );
if id then if id then
storeIdSpace[id] = id; storeIdSpace[id] = this;
end end
return this; return this;
end end