This commit is contained in:
AlexKvazos
2015-04-28 01:06:53 -05:00
commit a867668582
8 changed files with 7173 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
node_modules/
+29
View File
@@ -0,0 +1,29 @@
/**
* chat.alexkvazos.com
*
* Minecraft web-based chat client
* @copyright AlexKvazos 2015
*/
// create new express application
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
// handle root requests
app.get('/', function(req, res, next) {
res.sendFile(__dirname + '/views/index.html');
});
// public folder serves static content
app.use('/static', express.static('public'));
// initialize http and socket servers
app.listen(3000, function() {
console.log('> Server running on port 3000')
});
+33
View File
@@ -0,0 +1,33 @@
{
"name": "Chat",
"version": "1.0.0",
"description": "Minecraft chat client",
"main": "app.js",
"dependencies": {
"debug": "^2.1.3",
"express": "^4.12.3",
"mineflayer": "^1.1.0",
"socket.io": "^1.3.5"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app.js"
},
"repository": {
"type": "git",
"url": "git@github.com:MCBoard/chat.alexkvazos.com.git"
},
"keywords": [
"minecraft",
"chat",
"client",
"web"
],
"author": "AlexKvazos",
"license": "Propietary Software",
"bugs": {
"url": "https://github.com/MCBoard/chat.alexkvazos.com/issues"
},
"homepage": "https://github.com/MCBoard/chat.alexkvazos.com"
}
+53
View File
@@ -0,0 +1,53 @@
body {
padding-top: 80px;
}
#buffer {
font-family: 'Source Code Pro';
position: absolute;
top: 51px;
bottom: 40px;
left: 0;
right: 0;
color: #D6D6D6;
padding: 0 20px;
}
#chat {
position: absolute;
bottom: 0;
left: 0;
right: 100px;
height: 40px;
background: #171717;
}
#send {
position: absolute;
bottom: 0;
right: 0;
height: 40px;
width: 100px;
}
#chat input {
background: none;
border: none;
width: 100%;
height: 40px;
padding: 0 10px;
font-size: 15px;
}
#chat input:focus {
outline: none;
}
#send input {
width: 100%;
height: 100%;
border: none;
background: #264369;
color: #fff;
text-align: center;
padding: 0 10px;
position: relative;
z-index: 100;
}
#send input:focus {
outline: none;
}
+8
View File
@@ -0,0 +1,8 @@
var app = angular.module('chat', []);
$('#buffer').append('<br>');
$('#buffer').append('Welcome to AlexKvazos\'s Minecraft Chat App');
$('#buffer').append('<br>');
$('#buffer').append('&gt; Press connect to connect to a Minecraft server and start chatting!');
$('#buffer').append('<br><br>');
$('#buffer').append('<i>Note: This application only works with 1.8 Minecraft servers.</i>');
File diff suppressed because it is too large Load Diff
+33
View File
@@ -0,0 +1,33 @@
process.env.DEBUG = 'bot';
process.stdout.write('\033c');
console.log('> MineFlayer Initializing');
var mineflayer = require('mineflayer');
var log = require('debug')('bot');
var bot = mineflayer.createBot({
host: 'play.koonkraft.net',
port: 25565,
username: 'alexth',
password: 'alexth123'
});
bot.on('login', function() {
bot.chat('/prison');
});
bot.on('message', function(message) {
var buffer = '';
message.extra.forEach(function(data) {
var text = data.text;
if (text) {
text = text.replace(/§k/ig, '');
text = text.replace(/§l/ig, '');
buffer += text;
}
});
buffer = buffer.replace(/§([0-9abcdef])([^§]*)/ig, function replace(x, y, z) {
return '<span class="color-'+y+'">'+z+'</span>';
});
process.stdout.write(buffer + '<br>\n');
});
+78
View File
@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<head>
<title>Minecraft Chat | AlexKvazos</title>
<link href='http://fonts.googleapis.com/css?family=Source+Code+Pro' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="//bootswatch.com/cyborg/bootstrap.min.css">
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body ng-app="chat">
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<a class="navbar-brand" href="/">Minecraft Chat</a>
<ul class="nav navbar-nav">
<li><a href="#" data-toggle="modal" data-target="#connectModal">Connect</a></li>
</ul>
<ul class="nav navbar-nav pull-right">
<li><a style="color:#9E0F06">Not Connected</a></li>
</ul>
</nav>
<div id="buffer">
</div>
<form>
<div id="chat">
<input type="text" ng-model="chat" placeholder="Type to chat...">
</div>
<div id="send">
<input type="submit" value="Chat">
</div>
</form>
<!-- Modal -->
<div class="modal fade" id="connectModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<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>
<p>This application only works with 1.8 Minecraft servers.</p>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label>Minecraft Username</label>
<input type="text" ng-model="username" class="form-control" placeholder="Steve">
</div>
<div class="form-group">
<label>Minecraft Password</label>
<input type="password" ng-model="password" class="form-control" placeholder="">
</div>
<div class="form-group">
<label>Server IP</label>
<input type="password" ng-model="ip" class="form-control" placeholder="mc.server.com">
</div>
<div class="form-group">
<label>Server Port (Leave empty if unknown)</label>
<input type="password" ng-model="port" class="form-control" placeholder="25565">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Connect</button>
</div>
</div>
</div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="/static/js/lib/socket.io.js"></script>
<script src="/static/js/app.js"></script>
</body>
</html>