GithubHelp home page GithubHelp logo

amstan / hyperserv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from greghaynes/xsbs

6.0 6.0 3.0 6.3 MB

HyperServ

Home Page: hypertriangle.com

License: Other

C++ 30.52% C 59.81% Python 9.66%

hyperserv's People

Contributors

amstan avatar crcollins avatar darkf avatar fdchasm avatar greghaynes avatar jonlimle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hyperserv's Issues

Record demos problems

The /recorddemo 1, /recorddemo 0, does nothing when you change map after. No demo recorded. /listdemos returns "no demos available", that's normal. /getdemo prompts, so the /recorddemo 1 should be fixed..

Invisible login

Implement a way to login when ingame without the server relaying the (X-User has logged in as X-Name)
ex #loginsilent

Come up with a way to make both hash methods work

Right now, hyperserv uses sha224 to store passwords in the database. And then use a traditional transaction to check the password:
Passwords are sent in plaintext over the network, but then hashed by the server and checked with the hash in the database. This way, if the database is compromised, the passwords are not. There is one hash for every password.

Sauerbraten does it differently:
The passwords are hashed by the client with their cn info in it, therefore multiple hashes exist for the same password. Then sent to the server which takes a plaintext password from the database, hashes it, then compares with the password that went through the internet.
This makes it more secure when questioning the identity of the server, but it makes storing passwords securely impossible.

I need to find a way to hash the passwords that i store, while still having a way to do some more processing(shoving cn in there) and then getting a password that will match the one generated by the client.

Can't switch team

Big problem, especially with clanwars..
edit : in the fighting necessities..

Can't start server D:

hyperserv@debian:/hyperserv$ ./start_server.py
Traceback (most recent call last):
File "/home/hyper/hyperserv/src/pyscripts/hyperserv/events.py", line 1, in
import timers
File "/home/hyper/hyperserv/src/pyscripts/hyperserv/timers.py", line 1, in
from twisted.internet.task import LoopingCall
ImportError: No module named twisted.internet.task
Error initializing python modules.
Server initialization failed.
Python Error: Invalid handler to triggerEvent function.
hyperserv@debian:
/hyperserv$

How do i fix this?

editspam warnings

implement an edit event, and add an eventHandler which coults them and notices on too many.

New error with starting server D:

unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
unknown command: cfg
Configuration loaded.
HyperShade initialized.
Traceback (most recent call last):
File "/home/hyper/hyperserv/src/pyscripts/hyperserv/plugins.py", line 8, in
import hyperserv.ingame
File "/home/hyper/hyperserv/src/pyscripts/hyperserv/ingame.py", line 28, in
systemCS.executestring("map %s %s" % (config["defaultmap"],config["defaultmode"]))
File "/home/hyper/hyperserv/src/pyscripts/lib/cubescript.py", line 145, in functionErrorWrapper
return functionpointer(self,_params)
File "/home/hyper/hyperserv/src/pyscripts/hypershade/cubescript.py", line 35, in
functionpointer=lambda *args: self.wrapper(f,_args)
File "/home/hyper/hyperserv/src/pyscripts/hypershade/cubescript.py", line 28, in wrapper
return f(owner,*args[1:])
File "/home/hyper/hyperserv/src/pyscripts/hyperserv/servercommands.py", line 32, in changeMap
mode=modeNumber(mode)
File "/home/hyper/hyperserv/src/pyscripts/hypershade/util.py", line 80, in modeNumber
raise ValueError('Invalid mode')
ValueError: Invalid mode
Error initializing python modules.
Server initialization failed.

CFG file organization

server-init.cfg needs to be phased out
A map load command needs to be put somewhere.
maybe server-empty.cfg

Clearbans

Add clearbans, to delete bans that expire within the next ban delta.

Send to

Like on jim dandy, force a getmap by doing #sendto . Only for masters/admins

Whisper/PM

For saying private message.. everyone can do it :
#pm "cn" "text"

#davelist

Add a #davelist ( kinda like a whitelist )
for people who are your buddies that you don't want random people to kick, but those who you don't quite trust with an account.

long echo/say lines

All echo and say commands that are long seem to get truncated for some reason, both ingame and irc.

A good test is say (useradmin).

Cant make??!!!

Here is what i get in error:

hyperserv@debian:/hyperserv$ make
[ 17%] Built target sauertools
[ 64%] Built target enet
make[2]: *** No rule to make target /usr/libpython2.6.so', needed bysrc/hyperserv'. Stop.
make[1]: *** [src/CMakeFiles/hyperserv.dir/all] Error 2
make: *** [all] Error 2
hyperserv@debian:
/hyperserv$

File handling code

Get a file library in place(include the maps in it too).

downloadfile, #deletefile.

Manage heightmaps with it as well.

Kick Preventer Typo

SMBoy attempted to kick RaZgRiZ but failed since RaZgRiZ is an trusted.

I don't think "an" should be there.

Can Not Open Some Maps

When some map names are put in they produce an error. From experience maps with ":)" will not work.

Can be replicated with:
"#map JK|Clanmap:)"

Error Produced:
"CSError: Unexpected ): )"

x----------------------------------------------------------------------------------x
Also, if you swap the ")" for "(" then you get another error.

Can be replicated with:
"#map JK|Clanmap:)"

Error Produced:
"TypeError: argument 1 must be string, not None"

x----------------------------------------------------------------------------------x
A quick fix for both is putting the map name in quotes. Ex:
"" '#map "JK|Clanmap:)" ""

NameError: global name 'PermissionError' is not defined

ERROR:root:Uncaught exception occured in event handler.
ERROR:root:Traceback (most recent call last):
  File "/storage/raided/opt/sauer/hyperserv/src/pyscripts/hyperserv/events.py", line 23, in trigger
    event(*args)
  File "/storage/raided/opt/sauer/hyperserv/src/pyscripts/hyperserv/clientcommands.py", line 17, in clientSetMaster
    simpleMasterRequest(caller)
  File "/storage/raided/opt/sauer/hyperserv/src/pyscripts/hyperserv/clientcommands.py", line 68, in simpleMasterRequest
    raise PermissionError("There are masters/admins present.")
NameError: global name 'PermissionError' is not defined

Null map on first connect

Thar be no map upon first connect. The server denies a map change to he who is not master, and therefor leaves the client with no map loaded and a pleasant view of the main menu.

Need an auto map load script for server startup, and then the server can do as all others do. Remember the previous map it was on.

Fighting necessities for v1

vote map
map rotation - i think this is will work if votemap was implemented
switch team - this doesn't work at all
addbot/debot - take this out from the c++, make a python interface, since right now someone has to claim main master to add/del bots

Savemap on the server

make it very seamless.
When a map is loaded automatically "sendmap" in the background, so that first getmap is the right map.

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.