Giter Site home page Giter Site logo

shine's People

Contributors

axamdy avatar blueberryy avatar fsfod avatar ghoulofgsg9 avatar kparal avatar lancehilliard avatar misteroizo avatar person8880 avatar welldotru avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shine's Issues

Lock votes on map change

Stop votes being started when the map's going to change. Also change the colour of the next map text.

Issues with last nights update

3 issues

  • Badges are not working properly with the change. My config was working for some badges before, but now its not. In my example config, ghost is still working at least, but not admin or moderator
  • When players join a team, their model changes, and they go in to the score board under that team, but they physically remain in the ready room. They have to press f4 to be able to get in to the map.
  • Elo based random does not seem to be working, nor does the real random fall back.

Thanks

Improve vote 'random'

Remove scramble and random, create a new central vote plugin. Have multiple modes of operation, from pure random, to previous rounds score based to NS2Stats ELO ranking.

Support multiple redirect servers, query player counts

When a player joins, query every server in the list of redirects for player counts. After 5 seconds, collate the data we have and try and send them to a server with a free slot.

If there is no data in time, then send them to the first redirect. If all servers are "full", then inform them and kick them.

Make next map vote text clearer

Add the time remaining on the current map to the text in the top right of the screen when a next map vote is in progress. This should remove confusion where people think the map's going to change at the end of the round.

Map cycle should cycle if there's only a short amount of time left

The default NS2 is strictly if time on map > map cycle time then set it to cycle else keep going. This is dumb when there's only 1 minute left on the cycle for instance.

Need to override the NS2 map cycle to get it to change instead, add this to the map vote plugin.

Questions/suggestions regarding new ELO random and pregame

Hi,

  • How would I remove the immunity for admins from the elo random? We just had a round random'd to 6 vs 9 and I think it was because 2 admins joined the same team, then the random vote passed.
  • Not sure if its due to the elo random, but scores are reset from the previous round when the teams are randomed - can this be set to not reset?
  • Please can we have an option to enable damage during the 15 seconds prior to round start like vanilla.
  • Please disable the random when a map vote has started.

Thanks
Alc

CycleOnEmpty Player amount

There should be an option to allow CycleOnEmpty when there is still either 1 or X defined players on the server.

Issue with concede (normal or surrender) appearing for everyone, including specs.

When in a game, if a losing team starts to concede or surrender the other team will be able to see it as well as any spectators watching. We came across this issue live on a stream so it was quite funny, but I think that would be something to look into =). Also, I don't know if it helps or not, but it appears to say that it needs 0 votes to concede for everyone but the team conceding. The team conceding on the other hand sees the votes normally.
Cheers

Pregame alltalk option

Automatically enables all talk whilst teams are waiting to get commanders. Once the countdown to begin starts, turn all talk off.

"All talk is enabled" Message Still Displayed When Disabled.

My AllTalk options are all disabled.

{
"AllTalk": false,
"EjectVotesNeeded": 0.5,
"AllTalkPreGame": false
}

However, the lower center of the screen displays "All talk is enabled".

I tried toggling the setting by using sh_AllTalk. The setting toggled on and off as expected but the "All talk is enabled" message would always persist.

Inform users of all talk

If all talk before the game start is enabled, then have a small persistent bit of text before the game starts telling them. Make it red when the game goes into kGameState.PreGame saying it's disabled and fade it out on game start.

Investigate loading errors

Some users have reported that the addon's functionality is not always complete. Need to test different configurations with the map cycle file and other things I suspect are causing problems to find the exact issue.

Admin GUI

I would like to create an interface that allows admins to run commands through a centralised menu, and also use it to alter plugin settings etc.

If this were Garry's mod, I'd use Derma elements, need to find an equivalent in NS2 or create my own if not.

This will take a long while if I have to create them...

Printing available sh_ commands to console.

Hey,

This isnt really a big issue at all but still putting it here since I don't know where else to do it.

I would love to have a feature where I can get every sh_ command in the console with a short description of its function, pretty much how sv_help works.

So you get a litle overview of what commands are available to you. If I do sv_help now, the sh_ commands do not get printed to the console.

Thanks for reading.

-Fly

small request

i made plugin of your mod. i called shop.

i want to add button to that plugin.

can you add some code for me.

GUIShineVoteMenu.lua > ClickFuncs

SHOP = function()
return GenericClick( "sh_shop" )
end

[BUG] Shine don't loading at a changemap (sv_changemap)

After a try sh_status*

[Server] Script Error #1: lua/lib/player.lua:142: attempt to call global 'Floor' (a nil value)
Call stack:
#1: NS2ToSteamID lua/lib/player.lua:142
ID = 13542427
#2: Func lua/extensions/basecommands.lua:231
Client = ServerClient { }
CanSeeIPs = true
PlayerList = ClassEntityList { }
Size = 1
GameIDs = {userdata=1 }
SortTable = {1= {1=1, 2=ServerClient { } } }
Count = 2
(for index) = 1
(for limit) = 1
(for step) = 1
i = 1
Data = {1=1, 2=ServerClient { } }
GameID = 1
PlayerClient = ServerClient { }
Player = ReadyRoomPlayer-806 {activeWeaponId=-1, alive=true, animateAngles=false, animateDistance=false, animatePosition=false, animateYOffset=false, animationBlend=0.20000000298023, animationGraphIndex=41, animationGraphNode=12, animationSequence2=1, animationSequence=0, animationSpeed2=1, animationSpeed=1, animationStart2=556.091796875, animationStart=556.18981933594, armor=0, baseYaw=0, bodyYaw=0, bodyYawRun=0, cameraDistance=0, clientIndex=1, collisionRep=0, communicationStatus=1, countingDown=false, crouching=false, currentBadge=1, darwinMode=false, desiredCameraAngles=Vector {x=0, y=0, z=0 }, desiredCameraDistance=0, desiredCameraPosition=Vector {x=0, y=0, z=0 }, desiredCameraYOffset=0, flinchIntensity=0, followingTransition=false, fov=90, frozen=false, fullPrecisionOrigin=Vector {x=14.963448524475, y=166.55451965332, z=252.87007141113 }, gameEffectsFlags=0, gameStarted=false, giveDamageTime=0, gravityEnabled=true, health=100, healthIgnored=false, isMoveBlocked=false, isUsing=false, jumpHandled=false, jumping=false, layer1AnimationBlend=0, layer1AnimationGraphNode=137, layer1AnimationSequence2=-1, layer1AnimationSequence=-1, layer1AnimationSpeed2=1, layer1AnimationSpeed=1, layer1AnimationStart2=0, layer1AnimationStart=0, locationId=9, maxArmor=0, maxHealth=100, mode=1, modeTime=-1, modelIndex=63, moveButtonPressed=false, moveTransition=false, onGround=true, onGroundNeedsUpdate=true, onLadder=false, physicsGroup=7, physicsGroupFilterMask=0, physicsType=1, primaryAttackLastFrame=false, processMove=true, pushImpulse=Vector {x=0, y=0, z=0 }, pushTime=0, resetMouse=0, resources=0, runningBodyYaw=0.43642419576645, secondaryAttackLastFrame=false, sighted=false, slowAmount=0, standingBodyYaw=0.43642419576645, startCameraAngles=Vector {x=0, y=0, z=0 }, startCameraDistance=0, startCameraPosition=Vector {x=0, y=0, z=0 }, startCameraYOffset=0, stepAmount=-0.0015498305438086, stepStartTime=556.18981933594, syncHealth=false, teamNumber=0, teamResources=0, techId=35, timeLastHealed=0, timeLastMenu=0, timeOfCrouchChange=0, timeOfLastJump=555.39624023438, timeOfLastUse=0, timeOfLastWeaponSwitch=0, transitionDuration=0, transitionStart=0, tweeningFunction=1, upgrade1=1, upgrade2=1, upgrade3=1, upgrade4=1, upgrade5=1, upgrade6=1, velocity=Vector {x=0, y=0, z=0 }, velocityLength=0, velocityPitch=0, velocityYaw=0, viewModelId=3352, viewPitch=0.12099458277225, viewRoll=0, viewYaw=0.43642419576645, weaponsWeight=0 }
ID = 13542427
#3: lua/core/server/commands.lua:456
self = {AdminPrint=function, BuildChatMessage=function, BuildPluginData=function, BuildScreenMessage=function, CanTarget=function, ChatCommands= {acceptmotd= {Arguments= { }, ChatCmd="acceptmotd", ConCmd="sh_acceptmotd", Func=function, Help="Accepts the message of the day so you no longer see it on connect.", NoPerm=true }, alltalk= {Arguments= {1= {Default=function, Optional=true, Type="boolean" } }, ChatCmd="alltalk", ConCmd="sh_alltalk", Func=function, Help="<true/false> Enable or disable all talk, which allows everyone to hear each others voice chat regardless of team." }, autobalance= {Arguments= {1= {Error="Please specify whether auto balance should be enabled.", Type="boolean" }, 2= {Default=2, Min=1, Optional=true, Round=true, Type="number" }, 3= {Default=10, Min=0, Optional=true, Round=true, Type="number" } }, ChatCmd="autobalance", ConCmd="sh_autobalance", Func=function, Help="<true/false> Enables or disables auto balance. Player amount and seconds are optional." }, ban= {Arguments= {1= {NotSelf=true, Type="client" }, 2= {Default=60, Min=0, Optional=true, Round=true, Type="number" }, 3= {Default="No reason given.", Optional=true, TakeRestOfLine=true, Type="string" } }, ChatCmd="ban", ConCmd="sh_ban", Func=function, Help=" Bans the given player for the given time in minutes. 0 is a permanent ban." }, banid= {Arguments= {1= {Error="Please specify a Steam ID to ban.", Type="string" }, 2= {Default=60, Min=0, Optional=true, Round=true, Type="number" }, 3= {Default="No reason given.", Optional=true, TakeRestOfLine=true, Type="string" } }, ChatCmd="banid", ConCmd="sh_banid", Func=function, Help=" Bans the given Steam ID for the given time in minutes. 0 is a permanent ban." }, bring= {Arguments= {1= {NotSelf=true, Type="client" } }, ChatCmd="bring", ConCmd="sh_bring", Func=function, Help=" Moves the given player to your location." }, csay= {Arguments= {1= {Error="Please specify a message to send.", MaxLength=128, TakeRestOfLine=true, Type="string" } }, ChatCmd="csay", ConCmd="sh_csay", Func=function, Help="Displays a message in the centre of all play..., Commands= {sh_autobalance= {Arguments= {1= {Error="Please specify whether auto balance should be enabled.", Type="boolean" }, 2= {Default=2, Min=1, Optional=true, Round=true, Type="number" }, 3= {Default=10, Min=0, Optional=true, Round=true, Type="number" } }, ChatCmd="autobalance", ConCmd="sh_autobalance", Func=function, Help="<true/false> Enables or disables auto balance. Player amount and seconds are optional." }, sh_ban= {Arguments= {1= {NotSelf=true, Type="client" }, 2= {Default=60, Min=0, Optional=true, Round=true, Type="number" }, 3= {Default="No reason given.", Optional=true, TakeRestOfLine=true, Type="string" } }, ChatCmd="ban", ConCmd="sh_ban", Func=function, Help=" Bans the given player for the given time in minutes. 0 is a permanent ban." }, sh_banid= {Arguments= {1= {Error="Please specify a Steam ID to ban.", Type="string" }, 2= {Default=60, Min=0, Optional=true, Round=true, Type="number" }, 3= {Default="No reason given.", Optional=true, TakeRestOfLine=true, Type="string" } }, ChatCmd="banid", ConCmd="sh_banid", Func=function, Help=" Bans the given Steam ID for the given time in minutes. 0 is a permanent ban." }, sh_bring= {Arguments= {1= {NotSelf=true, Type="client" } }, ChatCmd="bring", ConCmd="sh_bring", Func=function, Help=" Moves the given player to your location." }, sh_changelevel= {Arguments= {1= {Error="Please specify a map to change to.", TakeRestOfLine=true, Type="string" } }, ChatCmd="map", ConCmd="sh_changelevel", Func=function, Help=" Changes the map to the given level immediately." }, sh_csay= {Arguments= {1= {Error="Please specify a message to send.", MaxLength=128, TakeRestOfLine=true, Type="string" } }, ChatCmd="csay", ConCmd="sh_csay", Func=function, Help="Displays a message in the centre of all player's screens." }, sh_darwin= {Arguments= {1= {Type="clients" }, 2= {Type="boolean" } }, ChatCmd= {1="god", 2="darwin" }, ConCmd="sh_darwin", Func=function, Help=" <true/false> En..., Config= {ActiveExtensions= {adverts=false, afkkick=false, badges=true, ban=true, basecommands=true, funcommands=true, logging=true, mapvote=true, motd=true, pregame=true, readyroom=true, serverswitch=false, unstuck=true, voterandom=true, votescramble=true, votesurrender=true, welcomemessages=true }, AddTag=true, ChatName="Admin", DateFormat="dd-mm-yyyy", EnableLogging=true, EqualsCanTarget=false, ExtensionDir="config://shine\plugins", GetUsersFromWeb=false, LogDir="config://shine\logs", RefreshInterval=60, RefreshUsers=false, SilentChatCommands=true, UsersURL="http://www.yoursite.com/users.json" }, ConvertData=function, GameIDs= {userdata=1 }, GenerateDefaultConfig=function, GenerateDefaultUsers=function, GetAllClients=function, GetAllPlayers=function, GetClient=function, GetClientByID=function, GetClientByNS2ID=function, GetClientByName=function, GetClientBySteamID=function, GetClientsByGroup=function, GetClientsForLog=function, GetDate=function, GetPermission=function, GetRandomPlayerList=function, GetTeamClients=function, GetTeamName=function, GetTimeString=function, GetUpValue=function, HasAccess=function, Hook= {Add=function, Call=function, Remove=function }, IsInGroup=function, LoadConfig=function, LoadExtension=function, LoadExtensionConfigs=function, LoadJSONFile=function, LoadUsers=function, LogString=function, NS2ToSteamID=function, Notify=function, NotifyColour=function, Plugins= {badges= {Cleanup=function, Enabled=true, Initialise=function, Version="1.0" }, ban= {AddBan=function, CheckBans=function, Cleanup=function, ClientConnect=function, Commands= {BanCommand= {Arguments= {1= {NotSelf=true, Type="client" }, 2= {Default=60, Min=0, Optional=true, Round=true, Type="number" }, 3= {Default="No reason given.", Optional=true, TakeRestOfLine=true, Type="string" } }, ChatCmd="ban", ConCmd="sh_ban", Func=function, Help=" Bans the given player for the given time in minutes. 0 is a permanent ban." }, BanIDCommand= {Arguments= {1= {Error="Please specify a Steam ID to ban.", Type="string" }, 2= {Default=60, Min=0, Optional=true, Round=true, Type="number" }, 3= {Default="No reason given.", Optional=true, TakeRestOfLine=true, Type="string" } }, ChatCmd="banid", ConCmd="sh_banid", Func=function, Help=" Bans the given Steam ID for the given time in minutes. 0 is a permanent ban." }, ListBansCommand= {Arguments= { }, ConCmd="sh_listbans", Func=function, Help="Lists all stored bans from Shine." }, UnbanCommand= {Arguments= {1= {Error="Please specify a Steam ID to unban.", Type="string" } }, ChatCmd="unban", ConCmd="sh_unban", Func=function, Help=" Unbans the given Steam ID." } }, Config= {Banned= {16418920= {Name="Nadjow", UnbanTime=0 }, 58897668= {Name="koj", UnbanTime=0 }, 709368= {Name="Pipette", UnbanTime=0 } }, BansURL="", DefaultBanTime=60, GetBansFromWeb=false }, ConfigName="Bans.json", ConvertData=function, CreateCommands=function, Enabled=true, GenerateDefaultConfig=function, HasConfig=true, Initialise=function, LoadConfig=function, RemoveBan=function, SaveConfig=function, SecondaryConfig="config://BannedPlayers.json", Version="1.3" }, basecommands= {CanPlayerHearPlayer=function, Cleanup=function, Commands= {AdminSayCommand= {Arguments= {1= {Error="Please specify a message.", MaxLength=80, TakeRestOfLine=true, Type="string" } }, ChatCmd="say", ConCmd="sh_say", Func=function, Help=" Sends a message to everyon..., Print=function, RegisterCommand=function, RegisterExtension=function, RemoveCommand=function, RemoveText=function, ReplaceClassMethod=function, RequestUsers=function, RunCommand=function, SaveConfig=function, SaveJSONFile=function, SaveLog=function, SaveUsers=function, SendPluginData=function, SendText=function, SendVoteOptions=function, SteamIDToNS2=function, Timer= {Create=function, Destroy=function, Exists=function, Simple=function }, UnloadExtension=function, UpdateText=function, UserData= {Groups= {admin_group= {Commands= { }, Immunity=10, IsBlacklist=true }, mod_group= {Commands= {1="sh_kick", 2="sh_say", 3="sh_randomall", 4="sh_rrall", 5="sh_eject", 6="sh_reset", 7="cyclemap", 8="sh_psay", 9="sh_tsay" }, Immunity=10, IsBlacklist=false } }, Users= {112750834= {Group="mod_group" }, 13542427= {Group="admin_group" }, 3954396= {Group="admin_group" }, 74148483= {Group="mod_group" } } } }
Client = ServerClient { }
ConCommand = "sh_status"
arg = nil
Command = {Arguments= { }, ConCmd="sh_status", Func=function, Help="Prints a list of all connected players and their relevant information.", NoPerm=true }
Player = ReadyRoomPlayer-806 {activeWeaponId=-1, alive=true, animateAngles=false, animateDistance=false, animatePosition=false, animateYOffset=false, animationBlend=0.20000000298023, animationGraphIndex=41, animationGraphNode=12, animationSequence2=1, animationSequence=0, animationSpeed2=1, animationSpeed=1, animationStart2=556.091796875, animationStart=556.18981933594, armor=0, baseYaw=0, bodyYaw=0, bodyYawRun=0, cameraDistance=0, clientIndex=1, collisionRep=0, communicationStatus=1, countingDown=false, crouching=false, currentBadge=1, darwinMode=false, desiredCameraAngles=Vector {x=0, y=0, z=0 }, desiredCameraDistance=0, desiredCameraPosition=Vector {x=0, y=0, z=0 }, desiredCameraYOffset=0, flinchIntensity=0, followingTransition=false, fov=90, frozen=false, fullPrecisionOrigin=Vector {x=14.963448524475, y=166.55451965332, z=252.87007141113 }, gameEffectsFlags=0, gameStarted=false, giveDamageTime=0, gravityEnabled=true, health=100, healthIgnored=false, isMoveBlocked=false, isUsing=false, jumpHandled=false, jumping=false, layer1AnimationBlend=0, layer1AnimationGraphNode=137, layer1AnimationSequence2=-1, layer1AnimationSequence=-1, layer1AnimationSpeed2=1, layer1AnimationSpeed=1, layer1AnimationStart2=0, layer1AnimationStart=0, locationId=9, maxArmor=0, maxHealth=100, mode=1, modeTime=-1, modelIndex=63, moveButtonPressed=false, moveTransition=false, onGround=true, onGroundNeedsUpdate=true, onLadder=false, physicsGroup=7, physicsGroupFilterMask=0, physicsType=1, primaryAttackLastFrame=false, processMove=true, pushImpulse=Vector {x=0, y=0, z=0 }, pushTime=0, resetMouse=0, resources=0, runningBodyYaw=0.43642419576645, secondaryAttackLastFrame=false, sighted=false, slowAmount=0, standingBodyYaw=0.43642419576645, startCameraAngles=Vector {x=0, y=0, z=0 }, startCameraDistance=0, startCameraPosition=Vector {x=0, y=0, z=0 }, startCameraYOffset=0, stepAmount=-0.0015498305438086, stepStartTime=556.18981933594, syncHealth=false, teamNumber=0, teamResources=0, techId=35, timeLastHealed=0, timeLastMenu=0, timeOfCrouchChange=0, timeOfLastJump=555.39624023438, timeOfLastUse=0, timeOfLastWeaponSwitch=0, transitionDuration=0, transitionStart=0, tweeningFunction=1, upgrade1=1, upgrade2=1, upgrade3=1, upgrade4=1, upgrade5=1, upgrade6=1, velocity=Vector {x=0, y=0, z=0 }, velocityLength=0, velocityPitch=0, velocityYaw=0, viewModelId=3352, viewPitch=0.12099458277225, viewRoll=0, viewYaw=0.43642419576645, weaponsWeight=0 }
Args = { }
ParsedArgs = { }
ExpectedArgs = { }
ExpectedCount = 0
Arguments = ""
#4: (tail call):-1

After a problem about not starting when both teams get a commander ... No error message on the console.

We launch "Sv_changemap ns2_summit" to load a other map and ...
Shine don't load during the loading map

I can send you the Log.txt with my hotmail [email protected]

Shinebaseconfig .txt

{
"LogDir": "config://shine\logs",
"DateFormat": "dd-mm-yyyy",
"AddTag": true,
"RefreshUsers": false,
"UsersURL": "http://www.yoursite.com/users.json",
"SilentChatCommands": true,
"ChatName": "Admin",
"EnableLogging": true,
"ExtensionDir": "config://shine\plugins",
"EqualsCanTarget": false,
"RefreshInterval": 60,
"ActiveExtensions": {
"funcommands": true,
"adverts": false,
"motd": true,
"serverswitch": false,
"welcomemessages": true,
"pregame": true,
"votescramble": true,
"voterandom": true,
"unstuck": true,
"readyroom": true,
"ban": true,
"votesurrender": true,
"badges": true,
"logging": true,
"basecommands": true,
"mapvote": true,
"afkkick": false
},
"GetUsersFromWeb": false
}

Look into improving team sorting methods further

Some common ideas I see:

  • KDR based sorting (sort of redundant, high KDR players will have a high score?)
  • Only sort the top 8 players by score, leave the rest to choose team (perhaps a 4th 'experimental' mode)
  • Make sure AFK players are not being included in the players we're sorting.

Also clean up the damn mess in the plugin!

Feature Request: Pugbot style 6v6 game launcher

I'm not sure if this is doable, but after seeing everything else in this mod, I wouldn't be surprised. Is it possible to make a pugbot system that works for 6v6 that chooses team captains and assigns people to teams etc? Something like this would be super cool.

Sort out client side plugins

I've started on this, but I'd like to get a good way to have plugins with a client side part to make plugins as self-contained as possible.

Latest updates causing problems

Noticing that today I'm having to disable Shine for the first time because I'm getting "Shine mod outdated" when trying to join. Is there some way to fix this? I never was sure how Shine mod updated itself on the server or if it did that automatically or what.

Server.lua

Hi,

Is it possible to load Shine via server.lua? The current situation with modded servers put me off loading any mods from the workshop :(

edit: How do I make this a question, not an issue?

ELO ranking vote/NS2 Stats plugin

Apparently NS2Stats has an ELO ranking system. Perhaps create a vote that uses it to 'balance' the teams better?

Also, extend the votemenu to have a button to show the player's stats?

Tournament mode

Can you add a tournament mode like the one in ns2stats, because ns2stats is broken with each build, and we can't play matches for a few day.

Motd issue NS build 243

For some reason the motd does not show up for anyone unless !motd is typed in chat.

motd is set to true under activeextensions and my motd config is as following:

{
"URL": "http://www.team-dpu.eu",
"Delay": 5,
"Mode": 2,
"MessageText": [ "Welcome to [NL]Team-dPu // Natural Selection 2!", "Join our community at Team-dPu.eu", "Have a pleasant stay!" ],
"Accepted": [ ]
}

Is there some setting i am missing or is this glitched atm?

Thanks in advance !

Userconfig.json problem

Hi,

Can anyone see a problem in my config file? The moderators and juniorfresh groups are not working with the badges, but the admin commands are. I can't see any difference between those groups and the others....

{
"Users": {
"143755": {
"Group": "admin_group"
},
"10060141": {
"Group": "troll"
},
"26949092": {
"Group": "moderators"
},
"3187207": {
"Group": "moderators"
},
"43701116": {
"Group": "juniorfresh"
},
"36389428": {
"Group": "ghost"
},
"12034125": {
"Group": "nyancat"
},
"4365505": {
"Group": "clover"
},
"73397263": {
"Group": "pumpkin"
},
"28998795": {
"Group": "troll"
},
"12844620": {
"Group": "pumpkin"
},
"17256747": {
"Group": "troll"
},
"38953806": {
"Group": "clover"
},
"7089528": {
"Group": "ghost"
}
},
"Groups": {
"admin_group": {
"IsBlacklist": true,
"Immunity": 50,
"Commands": [ "sh_randomimmune" ]
"badge": "admin"
},
"troll": {
"IsBlacklist": false,
"Immunity": 0,
"Commands": [ ]
"badge": "troll"
},
"unicorn": {
"IsBlacklist": false,
"Immunity": 0,
"Commands": [ ]
"badge": "unicorn"
},
"ghost": {
"IsBlacklist": false,
"Immunity": 0,
"Commands": [ ]
"badge": "ghost"
},
"nyancat": {
"IsBlacklist": false,
"Immunity": 0,
"Commands": [ ]
"badge": "nyancat"
},
"pumpkin": {
"IsBlacklist": false,
"Immunity": 0,
"Commands": [ ]
"badge": "pumpkin"
},
"clover": {
"IsBlacklist": false,
"Immunity": 0,
"Commands": [ ]
"badge": "clover"
},
"moderators": {
"IsBlacklist": true,
"Immunity": 20,
"Commands": [ "sh_randomimmune" ]
"badge": "admin"
},
"juniorfresh": {
"IsBlacklist": false,
"Immunity": 10,
"Commands": [ "sh_status", "sh_eject", "sh_say", "sh_kick", "sh_helplist", "sh_enablerandom" ]
"badge": "ghost"
}
}
}

Debug timers

I can't see a reason for them to be failing for a select few people.

ELO sorting failing does not fallback properly

We're passing old player data to the fallback sorting resulting in accessing entities that no longer exist as they've changed team. We need to recreate the TeamMembers and Targets tables before we fallback.

Suggestion: Custom vote

Low priority

Could you implement a custom vote? Such as

sh_customvote "Should be ban xxx"

Which would run a custom vote of Yes or No answers and display the vote.

Just a fun thing really, so low priority as I say.

Streamline vote code

Should create a generic vote object and convert all voting plugins to use it.

Current method is not exactly great.

Make generic config structure

Current config handling is less than optimal. Have plugins simply define a default and handle the saving/loading/updating automatically.

Issue with shine, ns2stats and badges mod together?

Having real trouble on my server with shine, ns2stats and the badges mod installed. They just keep randomly dropping one, some or all mods. The mods just stop working completely.

Should they be compatible together? I have votemap, afk and unstuck switched off on ns2stats, so use the shine versions.

Just now, shine and badges was working, but not ns2stats. So I ran a steam update on the server, and when it restarted, only shine was working. So I restarted it again and now all 3 are working again. No config changes were made between doing all this.

Any ideas?

Expand adverts

Add "csay" adverts, and add configurable colours to advert messages. The "csay" adverts should have configurable locations.

Moving average of KDR/scores

Store data for last few rounds in a file, update it at the end of a round with the next set of data, average and use it for sorting.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.