add multi version support and support show kicked reason

This commit is contained in:
Shugen002
2017-01-29 22:56:14 +08:00
parent e266167d4c
commit 857a14677c
11 changed files with 73 additions and 16 deletions
+1 -1
View File
@@ -45,7 +45,7 @@ module.exports = function(grunt) {
nodemon: { nodemon: {
dev: { dev: {
script: ['bin/start'], script: 'bin/start',
options: { options: {
watch: ['app/server'] watch: ['app/server']
} }
+1 -1
View File
@@ -9,7 +9,7 @@ module.exports = function($scope, socket, buffer) {
buffer.append('Welcome to AlexKvazos\'s Minecraft Chat App'); buffer.append('Welcome to AlexKvazos\'s Minecraft Chat App');
buffer.append('> Press connect to connect to a Minecraft server and start chatting!'); buffer.append('> Press connect to connect to a Minecraft server and start chatting!');
buffer.append('<br>'); buffer.append('<br>');
buffer.append('<i>Note: This application only works with 1.8 Minecraft servers.</i>'); buffer.append('<i>Note: This application only works with 1.8,1.9,1.10,1.11 Minecraft servers.</i>');
buffer.append('---'); buffer.append('---');
buffer.append('<br>'); buffer.append('<br>');
+8 -1
View File
@@ -5,10 +5,12 @@
module.exports = function($scope, socket, servers) { module.exports = function($scope, socket, servers) {
$scope.servers = servers.get(); $scope.servers = servers.get();
$scope.version = "1.10"
$scope.select = function(id) { $scope.select = function(id) {
$scope.ip = servers.select(id).ip; $scope.ip = servers.select(id).ip;
$scope.port = servers.select(id).port; $scope.port = servers.select(id).port;
$scope.version = servers.select(id).version;
if ($scope.username.length > 0 && $scope.password.length > 0) { if ($scope.username.length > 0 && $scope.password.length > 0) {
$scope.connect(); $scope.connect();
@@ -26,7 +28,8 @@ module.exports = function($scope, socket, servers) {
username: $scope.username, username: $scope.username,
password: $scope.password, password: $scope.password,
hostname: $scope.ip, hostname: $scope.ip,
port: $scope.port || 25565 port: $scope.port || 25565,
version: $scope.version || "1.10"
}); });
} else { } else {
@@ -34,4 +37,8 @@ module.exports = function($scope, socket, servers) {
} }
}; };
$scope.selectversion = function(version){
$scope.version=version;
}
}; };
+1
View File
@@ -11,6 +11,7 @@ module.exports = function($scope, socket) {
$scope.host = data.host; $scope.host = data.host;
$scope.port = data.port; $scope.port = data.port;
$scope.username = data.username; $scope.username = data.username;
$scope.version = data.version;
$scope.connected = true; $scope.connected = true;
}); });
}); });
+7 -1
View File
@@ -4,6 +4,7 @@ module.exports = function($scope, servers) {
$scope.name = ''; $scope.name = '';
$scope.ip = ''; $scope.ip = '';
$scope.port = ''; $scope.port = '';
$scope.version = "1.10";
} }
$scope.servers = servers.get(); $scope.servers = servers.get();
@@ -12,7 +13,8 @@ module.exports = function($scope, servers) {
var server = { var server = {
name: $scope.name, name: $scope.name,
ip: $scope.ip, ip: $scope.ip,
port: $scope.port || 25565 port: $scope.port || 25565,
version: $scope.version || "1.10",
}; };
servers.add(server); servers.add(server);
$scope.servers = servers.get(); $scope.servers = servers.get();
@@ -25,4 +27,8 @@ module.exports = function($scope, servers) {
$scope.servers = servers.get(); $scope.servers = servers.get();
}; };
$scope.selectversion = function(version){
$scope.version=version;
}
}; };
+14
View File
@@ -0,0 +1,14 @@
import moment from 'moment';
export default (socket) => {
let onkicked = (reason, loggedIn) => {
let timestamp = moment().format('MMM D h:mm:ss a');
socket.emit('buffer:info',JSON.stringify(reason));
console.log(`${timestamp}: Kicked > ${socket.connectionParams.hostname}:${socket.connectionParams.port} `);
};
socket.mcbot.on('kicked', onkicked);
};
+2 -1
View File
@@ -9,7 +9,8 @@ export default (socket) => {
socket.emit('bot:connect', { socket.emit('bot:connect', {
host: socket.connectionParams.hostname, host: socket.connectionParams.hostname,
port: socket.connectionParams.port, port: socket.connectionParams.port,
username: socket.mcbot.username username: socket.mcbot.username,
version: socket.connectionParams.version
}); });
console.log(`${timestamp}: logged in > ${socket.connectionParams.hostname}:${socket.connectionParams.port} - Username: ${socket.mcbot.username}`); console.log(`${timestamp}: logged in > ${socket.connectionParams.hostname}:${socket.connectionParams.port} - Username: ${socket.mcbot.username}`);
}; };
+2
View File
@@ -7,6 +7,7 @@ import death from './events/death';
import rain from './events/rain'; import rain from './events/rain';
import health from './events/health'; import health from './events/health';
import move from './events/move'; import move from './events/move';
import kicked from './events/kicked';
// bind all listeners to the bot // bind all listeners to the bot
export default (socket) => { export default (socket) => {
@@ -20,5 +21,6 @@ export default (socket) => {
rain(socket); rain(socket);
move(socket); move(socket);
health(socket); health(socket);
kicked(socket);
}; };
+4 -3
View File
@@ -9,11 +9,11 @@ export default (socket) => {
let timestamp = moment().format('MMM D h:mm:ss a'); let timestamp = moment().format('MMM D h:mm:ss a');
// log activity to console // log activity to console
console.log(`${timestamp}: connecting > ${data.hostname}:${data.port} - ${data.username}`); console.log(`${timestamp}: connecting > ${data.hostname}:${data.port} - ${data.version} - ${data.username}`);
// inform user that connection is being made // inform user that connection is being made
socket.emit('buffer:info', `Connecting to server ${data.hostname}:${data.port}`); socket.emit('buffer:info', `Connecting to ${data.version} server ${data.hostname}:${data.port}`);
// if a bot already exists, ask user to disconnect // if a bot already exists, ask user to disconnect
@@ -28,7 +28,8 @@ export default (socket) => {
host: data.hostname, host: data.hostname,
port: data.port, port: data.port,
username: data.username, username: data.username,
password: data.password password: data.password,
version: data.version || "1.10"
}); });
+14 -2
View File
@@ -4,7 +4,7 @@
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">Connect to Minecraft server</h4> <h4 class="modal-title" id="myModalLabel">Connect to Minecraft server</h4>
<p>This application only works with 1.8 Minecraft servers.</p> <p>This application only works with 1.8,1.9,1.10,1.11.2 Minecraft servers.</p>
</div> </div>
<form ng-submit="connect()"> <form ng-submit="connect()">
<div class="modal-body"> <div class="modal-body">
@@ -29,6 +29,7 @@
<table class="table table-bordered" ng-show="servers.length"> <table class="table table-bordered" ng-show="servers.length">
<tr ng-repeat="server in servers track by $index"> <tr ng-repeat="server in servers track by $index">
<td>{{server.name}}</td> <td>{{server.name}}</td>
<td>{{server.version}}</td>
<td>{{server.ip}}:{{server.port}}</td> <td>{{server.ip}}:{{server.port}}</td>
<td><span class="label label-info" ng-click="select($index)" style="cursor:pointer">Select</span></td> <td><span class="label label-info" ng-click="select($index)" style="cursor:pointer">Select</span></td>
</tr> </tr>
@@ -38,10 +39,21 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group">
<label>Server IP</label> <label>Server IP</label>
<div class="input-group">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span>{{version}} </span><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#" ng-click="selectversion('1.7')">1.7</a></li>
<li><a href="#" ng-click="selectversion('1.8')">1.8</a></li>
<li><a href="#" ng-click="selectversion('1.9')">1.9</a></li>
<li><a href="#" ng-click="selectversion('1.10')">1.10</a></li>
<li><a href="#" ng-click="selectversion('1.11.2')">1.11.2</a></li>
</ul>
</div>
<input type="text" ng-model="ip" class="form-control" placeholder="mc.server.com" required> <input type="text" ng-model="ip" class="form-control" placeholder="mc.server.com" required>
</div> </div>
<input type="text" class="form-control" style="display: none;" ng-model="version">
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
+16 -3
View File
@@ -13,6 +13,7 @@
<table class="table table-bordered" ng-show="servers.length"> <table class="table table-bordered" ng-show="servers.length">
<tr ng-repeat="server in servers track by $index"> <tr ng-repeat="server in servers track by $index">
<td>{{server.name}}</td> <td>{{server.name}}</td>
<td>{{server.version}}</td>
<td>{{server.ip}}:{{server.port}}</td> <td>{{server.ip}}:{{server.port}}</td>
<td><span class="label label-danger" ng-click="delete($index)" style="cursor:pointer">Delete</span></td> <td><span class="label label-danger" ng-click="delete($index)" style="cursor:pointer">Delete</span></td>
</tr> </tr>
@@ -27,17 +28,29 @@
<input type="text" class="form-control" ng-model="name" placeholder="Minecraft Server" required> <input type="text" class="form-control" ng-model="name" placeholder="Minecraft Server" required>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-6"> <div class="col-sm-8">
<div class="form-group">
<label>Server IP</label> <label>Server IP</label>
<div class="input-group">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span>{{version}}</span><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#" ng-click="selectversion('1.7')">1.7</a></li>
<li><a href="#" ng-click="selectversion('1.8')">1.8</a></li>
<li><a href="#" ng-click="selectversion('1.9')">1.9</a></li>
<li><a href="#" ng-click="selectversion('1.10')">1.10</a></li>
<li><a href="#" ng-click="selectversion('1.11.2')">1.11.2</a></li>
</ul>
</div>
<input type="text" class="form-control" ng-model="ip" placeholder="mc.server.com" required> <input type="text" class="form-control" ng-model="ip" placeholder="mc.server.com" required>
</div> </div>
<input type="text" class="form-control" style="display: none;" ng-model="version">
</div> </div>
<div class="col-sm-6"> <div class="col-sm-4">
<div class="form-group"> <div class="form-group">
<label>Server Port (Leave empty if unknown)</label> <label>Server Port (Leave empty if unknown)</label>
<input type="number" class="form-control" ng-model="port" placeholder="25565"> <input type="number" class="form-control" ng-model="port" placeholder="25565">
</div> </div>
<input type="text" class="form-control" style="display: none;" ng-model="version">
</div> </div>
</div> </div>
<div class="row"> <div class="row">