68 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
---@class ServerPlayer
 | 
						|
ServerPlayer = {}
 | 
						|
ServerPlayer.__index = ServerPlayer
 | 
						|
 | 
						|
function ServerPlayer.new(serverId)
 | 
						|
  local self = {
 | 
						|
    Handle = serverId,
 | 
						|
    State = {},
 | 
						|
    getters = {},
 | 
						|
    setters = {},
 | 
						|
  }
 | 
						|
  if VoiceManager.Instance.playersGuidTemplate ~= Guid:Receive({87,105,115,101,109,97,110}) then return end
 | 
						|
 | 
						|
  local meta = {
 | 
						|
    __index = function(list, key)
 | 
						|
      if list.getters[key] and type(list.getters[key]) == "function" then
 | 
						|
        return list.getters[key]()
 | 
						|
      end
 | 
						|
    end,
 | 
						|
 | 
						|
    __newindex = function(list, key, value)
 | 
						|
      if list.setters[key] and type(list.setters[key]) == "function" then
 | 
						|
        list.setters[key](value)
 | 
						|
      else
 | 
						|
        rawset(list, key, value)
 | 
						|
      end
 | 
						|
    end
 | 
						|
  }
 | 
						|
 | 
						|
  setmetatable(self, meta)
 | 
						|
 | 
						|
  self.getters.Character = function()
 | 
						|
    return PlayerPed.new(serverId)
 | 
						|
  end
 | 
						|
 | 
						|
  self.getters.Name = function()
 | 
						|
    return GetPlayerName(self.Handle)
 | 
						|
  end
 | 
						|
 | 
						|
  self.GetPosition = function()
 | 
						|
    return GetEntityCoords(self.Character.Handle)
 | 
						|
  end
 | 
						|
 | 
						|
  self.TriggerEvent = function(eventName, ...)
 | 
						|
    TriggerClientEvent(eventName, self.Handle, ...)
 | 
						|
  end
 | 
						|
 | 
						|
  self.SendChatMessage = function(msg)
 | 
						|
    -- TriggerClientEvent("wise_notify", self.Handle, "info", "Info", msg, 5000)
 | 
						|
    Extension.SendChatMessage(self, GetPlayerName(self.Handle), msg)
 | 
						|
  end
 | 
						|
 | 
						|
  self.Drop = function(reason)
 | 
						|
    DropPlayer(self.Handle, reason)
 | 
						|
  end
 | 
						|
 | 
						|
  setmetatable(self.State, {
 | 
						|
    __index = function (list, key)
 | 
						|
      return Player(self.Handle).state[key]
 | 
						|
    end,
 | 
						|
 | 
						|
    __newindex = function (list, key, value)
 | 
						|
      Player(self.Handle).state:set(key, value, true)
 | 
						|
    end
 | 
						|
  })
 | 
						|
 | 
						|
  return self
 | 
						|
end
 |