nbot

A clone of the eBot by @deStrO fully based on node.js with build in Web Page - WIP
git clone git://archive.git.mtrnord.blog/MTRNord/nbot.git
Log | Files | Refs | README | LICENSE

commit 21e5aa6d191459cf59075f109607b3138cc711ae
parent 59012ceece94ac48a427a2302a8339fea3e7e5ab
Author: MTRNord <mtrnord1@gmail.com>
Date:   Sat, 19 Mar 2016 22:12:00 +0100

Add some basics [skip CI]

Diffstat:
Mbackend/rcon.js | 54+++++++++++++++++++++++++++++++++++++++++++++++++++---
Mweb/server.js | 19++++++++++++++++---
Mweb/theme/index.html | 68++++++++++++++++++++------------------------------------------------
3 files changed, 87 insertions(+), 54 deletions(-)

diff --git a/backend/rcon.js b/backend/rcon.js @@ -4,7 +4,6 @@ var rcon = require('srcds-rcon')({ }); module.exports = { start: function () { - console.log("Start Rcon Commands") rcon.connect().then(() => { return rcon.command('changelevel de_dust2').then(() => { console.log('changed map'); @@ -12,13 +11,62 @@ module.exports = { }).then( () => rcon.command('sv_lan 0').then(() => console.log('changed sv_lan')) ).then( - () => rcon.command('mp_restartgame').then(() => console.log('restarted game')) + () => rcon.command('mp_restartgame 1').then(() => console.log('restarted game')) + ).then( + () => rcon.disconnect() + ).catch(err => { + console.log('caught', err); + console.log(err.stack); + }); + }, + restart_game: function () { + rcon.connect().then(() => { + return rcon.command('mp_restartgame 1').then(() => { + console.log('game restarted'); + }); + }).then( + () => rcon.disconnect() + ).catch(err => { + console.log('caught', err); + console.log(err.stack); + }); + }, + live_on: function () { + rcon.connect().then(() => { + return rcon.command('mp_restartgame 1').then(() => { + console.log('game restarted 0'); + }); + }).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 1')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 2')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 3')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 4')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 5')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 6')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 7')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 8')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 9')) + ).then( + () => rcon.command('mp_restartgame 1').then(() => console.log('game restarted 10')) + ).then( + () => rcon.command('say LIVE!!!').then(() => console.log('LIVE!!!')) + ).then( + () => rcon.command('say LIVE!!!').then(() => console.log('LIVE!!!')) + ).then( + () => rcon.command('say LIVE!!!').then(() => console.log('LIVE!!!')) ).then( () => rcon.disconnect() ).catch(err => { console.log('caught', err); console.log(err.stack); }); - console.log("End Rcon Commands") } }; diff --git a/web/server.js b/web/server.js @@ -21,9 +21,22 @@ module.exports = { }, iojs: function () { io.on('connection', function (socket) { - socket.emit('news', { hello: 'world' }); - socket.on('my other event', function (data) { - console.log(data); + //senden an socket dass er verbunden ist + //socket.emit('userOnline', {message: 'verbunden'}); + + //Informationen vom User holen + socket.on('command', function (command) { + console.log(command.command); + if (command.command == "restartgame") { + rcon.restart_game() + }else { + if (command.command == "live_on") { + rcon.live_on() + }else { + console.log("unknown command"); + } + } + socket.broadcast.emit('alert', "command executed"); }); }); } diff --git a/web/theme/index.html b/web/theme/index.html @@ -27,13 +27,6 @@ </head> <body role="document"> - <script> - var socket = io('http://localhost:3000'); - socket.on('news', function (data) { - console.log(data); - socket.emit('my other event', { my: 'data' }); - }); - </script> <!-- Fixed navbar --> <nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> @@ -51,18 +44,6 @@ <li class="active"><a href="#">Home</a></li> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a> - <ul class="dropdown-menu"> - <li><a href="#">Action</a></li> - <li><a href="#">Another action</a></li> - <li><a href="#">Something else here</a></li> - <li role="separator" class="divider"></li> - <li class="dropdown-header">Nav header</li> - <li><a href="#">Separated link</a></li> - <li><a href="#">One more separated link</a></li> - </ul> - </li> </ul> </div><!--/.nav-collapse --> </div> @@ -81,41 +62,14 @@ <h1>Buttons</h1> </div> <p> - <button type="button" class="btn btn-lg btn-default">Default</button> - <button type="button" class="btn btn-lg btn-primary">Primary</button> - <button type="button" class="btn btn-lg btn-success">Success</button> - <button type="button" class="btn btn-lg btn-info">Info</button> - <button type="button" class="btn btn-lg btn-warning">Warning</button> - <button type="button" class="btn btn-lg btn-danger">Danger</button> - <button type="button" class="btn btn-lg btn-link">Link</button> - </p> - <p> - <button type="button" class="btn btn-default">Default</button> - <button type="button" class="btn btn-primary">Primary</button> + <button type="button" class="btn btn-default" id="restart">Restart</button> + <button type="button" class="btn btn-primary" id="live_on">LIVE!!!</button> <button type="button" class="btn btn-success">Success</button> <button type="button" class="btn btn-info">Info</button> <button type="button" class="btn btn-warning">Warning</button> <button type="button" class="btn btn-danger">Danger</button> <button type="button" class="btn btn-link">Link</button> </p> - <p> - <button type="button" class="btn btn-sm btn-default">Default</button> - <button type="button" class="btn btn-sm btn-primary">Primary</button> - <button type="button" class="btn btn-sm btn-success">Success</button> - <button type="button" class="btn btn-sm btn-info">Info</button> - <button type="button" class="btn btn-sm btn-warning">Warning</button> - <button type="button" class="btn btn-sm btn-danger">Danger</button> - <button type="button" class="btn btn-sm btn-link">Link</button> - </p> - <p> - <button type="button" class="btn btn-xs btn-default">Default</button> - <button type="button" class="btn btn-xs btn-primary">Primary</button> - <button type="button" class="btn btn-xs btn-success">Success</button> - <button type="button" class="btn btn-xs btn-info">Info</button> - <button type="button" class="btn btn-xs btn-warning">Warning</button> - <button type="button" class="btn btn-xs btn-danger">Danger</button> - <button type="button" class="btn btn-xs btn-link">Link</button> - </p> <div class="page-header"> @@ -342,5 +296,23 @@ <!-- Placed at the end of the document so the pages load faster --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> + <script> + var socket = io('ws://localhost:3000'); + $(document).off('click', '#restart').on('click', '#restart', function (e) { + console.log('restart fired'); + + socket.emit('command', {command: 'restartgame'}); + e.preventDefault(); + }); + $(document).off('click', '#live_on').on('click', '#live_on', function (e) { + console.log('LIVE!!!'); + + socket.emit('command', {command: 'live_on'}); + e.preventDefault(); + }); + socket.on('alert', function (message) { + console.log(message); + }); + </script> </body> </html>