mirror of
				https://github.com/imezx/Warp.git
				synced 2025-11-04 03:49:17 +00:00 
			
		
		
		
	v1.0.7
This commit is contained in:
		
							parent
							
								
									f5bb1df4b0
								
							
						
					
					
						commit
						563af05c62
					
				
					 9 changed files with 102 additions and 5 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								Warp.rbxm
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Warp.rbxm
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
--!strict
 | 
					--!strict
 | 
				
			||||||
--!native
 | 
					--!native
 | 
				
			||||||
 | 
					--!optimize 2
 | 
				
			||||||
local Server = {}
 | 
					local Server = {}
 | 
				
			||||||
Server.__index = Server
 | 
					Server.__index = Server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,12 +12,16 @@ local ServerProcess = require(script.Parent.ServerProcess)
 | 
				
			||||||
local Assert = require(Util.Assert)
 | 
					local Assert = require(Util.Assert)
 | 
				
			||||||
local Key = require(Util.Key)
 | 
					local Key = require(Util.Key)
 | 
				
			||||||
local Serdes = require(Util.Serdes)
 | 
					local Serdes = require(Util.Serdes)
 | 
				
			||||||
 | 
					local Buffer = require(Util.Buffer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function Server.new(Identifier: string, rateLimit: Type.rateLimitArg?)
 | 
					function Server.new(Identifier: string, rateLimit: Type.rateLimitArg?)
 | 
				
			||||||
	local self = setmetatable({}, Server)
 | 
						local self = setmetatable({}, Server)
 | 
				
			||||||
	self.id = Serdes(Identifier)
 | 
						self._buffer = Buffer.new()
 | 
				
			||||||
 | 
						self._buffer:writeu8(Serdes(Identifier))
 | 
				
			||||||
 | 
						self.id = Buffer.convert(self._buffer:build())
 | 
				
			||||||
	self.fn = {}
 | 
						self.fn = {}
 | 
				
			||||||
	ServerProcess.add(self.id, Identifier, rateLimit or { maxEntrance = 200, interval = 2 })
 | 
						ServerProcess.add(self.id, Identifier, rateLimit or { maxEntrance = 200, interval = 2 })
 | 
				
			||||||
 | 
						self._buffer:remove()
 | 
				
			||||||
	return self
 | 
						return self
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
--!strict
 | 
					--!strict
 | 
				
			||||||
--!native
 | 
					--!native
 | 
				
			||||||
 | 
					--!optimize 2
 | 
				
			||||||
local Dedicated = {}
 | 
					local Dedicated = {}
 | 
				
			||||||
Dedicated.__index = Dedicated
 | 
					Dedicated.__index = Dedicated
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
--!strict
 | 
					--!strict
 | 
				
			||||||
--!native
 | 
					--!native
 | 
				
			||||||
 | 
					--!optimize 2
 | 
				
			||||||
local Signal = {}
 | 
					local Signal = {}
 | 
				
			||||||
Signal.__index = Signal
 | 
					Signal.__index = Signal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										64
									
								
								src/Index/Util/Buffer/Dedicated.luau
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								src/Index/Util/Buffer/Dedicated.luau
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					--!strict
 | 
				
			||||||
 | 
					--!native
 | 
				
			||||||
 | 
					--!optimize 2
 | 
				
			||||||
 | 
					local DedicatedBuffer = {}
 | 
				
			||||||
 | 
					DedicatedBuffer.__index = DedicatedBuffer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local create = buffer.create
 | 
				
			||||||
 | 
					local copy = buffer.copy
 | 
				
			||||||
 | 
					local writeu8 = buffer.writeu8
 | 
				
			||||||
 | 
					local tostring = buffer.tostring
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local default = {
 | 
				
			||||||
 | 
						point = 0,
 | 
				
			||||||
 | 
						size = 256,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function DedicatedBuffer.alloc(self: any, byte: number)
 | 
				
			||||||
 | 
						local size: number = self.size
 | 
				
			||||||
 | 
						local b: buffer = self.buffer
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						while self.point + byte >= size do
 | 
				
			||||||
 | 
							size = math.floor(size * 1.5)
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local newBuffer: buffer = create(size)
 | 
				
			||||||
 | 
						copy(newBuffer, 0, b)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						b = newBuffer
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function DedicatedBuffer.build(self: any): buffer
 | 
				
			||||||
 | 
						local p: number = self.point
 | 
				
			||||||
 | 
						local build: buffer = create(p)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						copy(build, 0, self.buffer, 0, p)
 | 
				
			||||||
 | 
						return build
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function DedicatedBuffer.writeu8(self: any, val: number)
 | 
				
			||||||
 | 
						DedicatedBuffer.alloc(self, 1)
 | 
				
			||||||
 | 
						writeu8(self.buffer, self.point, val)
 | 
				
			||||||
 | 
						self.point += 1
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function DedicatedBuffer.flush(self: any)
 | 
				
			||||||
 | 
						self.point = default.point
 | 
				
			||||||
 | 
						self.size = default.size
 | 
				
			||||||
 | 
						self.buffer = create(256)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function DedicatedBuffer.new()
 | 
				
			||||||
 | 
						return setmetatable({
 | 
				
			||||||
 | 
							point = default.point,
 | 
				
			||||||
 | 
							size = default.size,
 | 
				
			||||||
 | 
							buffer = create(256)
 | 
				
			||||||
 | 
						}, DedicatedBuffer)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function DedicatedBuffer.remove(self: any)
 | 
				
			||||||
 | 
						self:flush()
 | 
				
			||||||
 | 
						setmetatable(self, nil)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return DedicatedBuffer.new :: typeof(DedicatedBuffer.new)
 | 
				
			||||||
							
								
								
									
										24
									
								
								src/Index/Util/Buffer/init.luau
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/Index/Util/Buffer/init.luau
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					--!strict
 | 
				
			||||||
 | 
					--!native
 | 
				
			||||||
 | 
					--!optimize 2
 | 
				
			||||||
 | 
					local Buffer = {}
 | 
				
			||||||
 | 
					Buffer.__index = Buffer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local Dedicated = require(script.Dedicated)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local tostring = buffer.tostring
 | 
				
			||||||
 | 
					local fromstring = buffer.fromstring
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function Buffer.new()
 | 
				
			||||||
 | 
						return Dedicated()
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function Buffer.convert(b: buffer): string
 | 
				
			||||||
 | 
						return tostring(b)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function Buffer.revert(s: string): buffer
 | 
				
			||||||
 | 
						return fromstring(s)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return Buffer :: typeof(Buffer)
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,8 @@ return function(Identifier: string): string
 | 
				
			||||||
	if RunService:IsServer() then
 | 
						if RunService:IsServer() then
 | 
				
			||||||
		if not Event:GetAttribute(Identifier) then
 | 
							if not Event:GetAttribute(Identifier) then
 | 
				
			||||||
			SerInt += 1
 | 
								SerInt += 1
 | 
				
			||||||
			Event:SetAttribute(Identifier, string.pack("I1", SerInt)) -- I1 -> 255 max, I2 -> ~ 6.5e4 max. (SerInt)
 | 
								Event:SetAttribute(Identifier, SerInt)
 | 
				
			||||||
 | 
								--Event:SetAttribute(Identifier, string.pack("I1", SerInt)) -- I1 -> 255 max, I2 -> ~ 6.5e4 max. (SerInt)
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		while not Event:GetAttribute(Identifier) do
 | 
							while not Event:GetAttribute(Identifier) do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
--!native
 | 
					--!native
 | 
				
			||||||
--!strict
 | 
					--!strict
 | 
				
			||||||
 | 
					--!optimize 2
 | 
				
			||||||
local thread: thread? = nil
 | 
					local thread: thread? = nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local function passer(fn, ...): ()
 | 
					local function passer(fn, ...): ()
 | 
				
			||||||
| 
						 | 
					@ -20,7 +21,7 @@ if not thread then
 | 
				
			||||||
	coroutine.resume(thread :: any, thread)
 | 
						coroutine.resume(thread :: any, thread)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
return function(fn: (...any) -> (), ...: any): ()
 | 
					return function(fn: (...any) -> (...any?), ...: any): ()
 | 
				
			||||||
	if not thread then
 | 
						if not thread then
 | 
				
			||||||
		thread = coroutine.create(yield)
 | 
							thread = coroutine.create(yield)
 | 
				
			||||||
		coroutine.resume(thread :: any, thread)
 | 
							coroutine.resume(thread :: any, thread)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
[package]
 | 
					[package]
 | 
				
			||||||
name = "imezx/warp"
 | 
					name = "imezx/warp"
 | 
				
			||||||
version = "1.0.5"
 | 
					version = "1.0.7"
 | 
				
			||||||
registry = "https://github.com/UpliftGames/wally-index"
 | 
					registry = "https://github.com/UpliftGames/wally-index"
 | 
				
			||||||
realm = "shared"
 | 
					realm = "shared"
 | 
				
			||||||
license = "MIT"
 | 
					license = "MIT"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue