Hello guys,
I am working on a team switcher system, but I have noticed it takes many lines to build this. Are there any other shorter methods I can use?
My team manager module script
local teams = {
Afk = {},
Non_afk = {},
}
function teams:JoinedTeam(player : Instance, Type : string)
if player then
if Type == "Afk" then
local index = table.find(teams.Afk, player)
local findAfk = table.find(teams.Non_afk, player)
if not index then
table.insert(teams.Afk, player)
table.remove(teams.Non_afk, findAfk)
print(player.Name.." joined afk")
else
warn(player.Name.. " has already joined team afk")
end
end
if Type == "Non_afk" then
local index = table.find(teams.Non_afk, player)
local findAfk = table.find(teams.Afk, player)
if not index then
table.insert(teams.Non_afk, player)
table.remove(teams.Afk, findAfk)
print(player.Name.." joined Non_afk")
else
warn(player.Name.. " has already joined team Non_afk")
end
end
end
end
return teams
This is a Complete Organized Code That Will Work With Any Team You Add In!
local TeamsHandler = {
Teams = {
["OG"] = {},
["AFK"] = {},
["NonAfk"] = {},
["WhatEver"] = {},
}
}
function TeamsHandler:RemovePlayerFromTeams(Player)
for _, TeamTable in pairs(self.Teams) do
local index = table.find(TeamTable, Player)
if index then table.remove(TeamTable, index) end
end
end
function TeamsHandler:JoinTeam(player, teampassed)
local TeamFound = self.Teams[teampassed]
if TeamFound then
table.insert(TeamFound, player)
end
end
function TeamsHandler:OnJoinTeam(player, teanmpassed)
self:RemovePlayerFromTeams(player)
self:JoinTeam(player, teanmpassed)
end
return TeamsHandler
Or in case you wanted to add additional teams later on…
local teams = {
Afk = {},
Non_afk = {},
}
function teams:JoinedTeam(player : Instance, Type : string)
if player and teams[Type] then
for k, team in teams do
local index = table.find(team, player)
if index and k == Type then
warn(player.Name, "is already in team", Type)
return teams
elseif index then
table.remove(team, index)
end
end
table.insert(teams[Type], player)
print(player.Name, "joined", Type)
else
warn(Type, "is not a valid team!")
end
return teams
end
This is a Complete Organized Code That Will Work With Any Team You Add In!
local TeamsHandler = {
Teams = {
["OG"] = {},
["AFK"] = {},
["NonAfk"] = {},
["WhatEver"] = {},
}
}
function TeamsHandler:RemovePlayerFromTeams(Player)
for _, TeamTable in pairs(self.Teams) do
local index = table.find(TeamTable, Player)
if index then table.remove(TeamTable, index) end
end
end
function TeamsHandler:JoinTeam(player, teampassed)
local TeamFound = self.Teams[teampassed]
if TeamFound then
table.insert(TeamFound, player)
end
end
function TeamsHandler:OnJoinTeam(player, teanmpassed)
self:RemovePlayerFromTeams(player)
self:JoinTeam(player, teanmpassed)
end
return TeamsHandler