Code Monkey home page Code Monkey logo

mineserver2's Introduction

Mineserver 2.0

Mineserver 2.0 Preview

Forum Announcement

Overview

We've learnt a lot from writing the first version of Mineserver. One of those lessons was that to maintain a large application, it's necessary to design the application with the right concepts in mind from the very start. This was one of the driving forces behind the rewrite for 2.0. To that end, we've tried breaking up the new codebase into smaller, self contained pieces, while maintaining the speed and efficiency Mineserver is known for.

NOTE

This is very much a work in progress! MS1 is still more functional and works with latest Minecraft client. We'll be slowly pulling in bits of code from the original Mineserver repository to make this functional.

Planned features

  • Cleaner code - cohesive, isolated modules make hacking on Mineserver a breeze!
  • Better design - many advanced features that were all but impossible before are now simple!
  • Neater installation - getting started with Mineserver has never been easier!
  • Virtual hosting - host more than one server on the same IP and port!
  • Distributed hosting - spread the load of your game over multiple cores or even physical machines!
  • Plugin repository - find all the best plugins in one convenient place!
  • Multiple protocols - use any Minecraft client!
  • Game hibernation - no resources used while no players are connected!
  • Remote API - interact with Mineserver from any application that can speak JSON!
  • Rich administrative tools - delegate administration of your games over multiple admin tiers!

Contact

Any feedback would be greatly appreciated and new contributors are always welcome. We can be contacted in any of the following ways:

mineserver2's People

Contributors

carlbennett avatar deoxxa avatar joooo avatar nredor avatar themasch 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mineserver2's Issues

Interested in helping

I have had a great desire to build a minecraft server and I am wondering what needs to be done to get this project going. It looks like it hasn't been touched in quite a long time.

I can't link mineserver bin :(

Im new to the c++ business and linking stuff has proven pretty frustrating.

I'm using MacOS 10.6 with gcc (i686-apple-darwin10-g++-4.2.1)
cmake version 2.8.5
doxygen-1.7.5.1
latest libnoise from git.
libevent

the mineserver source is cloned from your main branch
Linking CXX executable bin/mineserver
Undefined symbols:
"_iconv", referenced from:
Mineserver::Network_Protocol_Notch_PacketStream::operator>>(std::basic_string<char, std::char_traits, std::allocator >&)in packetstream.cpp.o
Mineserver::Network_Protocol_Notch_PacketStream::operator<<(std::basic_string<char, std::char_traits, std::allocator > const&)in packetstream.cpp.o
"_iconv_close", referenced from:
Mineserver::Network_Protocol_Notch_PacketStream::~Network_Protocol_Notch_PacketStream()in app.cpp.o
Mineserver::Network_Protocol_Notch_PacketStream::~Network_Protocol_Notch_PacketStream()in app.cpp.o
"_iconv_open", referenced from:
Mineserver::Network_Protocol_Notch_PacketStream::Network_Protocol_Notch_PacketStream()in app.cpp.o
Mineserver::Network_Protocol_Notch_PacketStream::Network_Protocol_Notch_PacketStream()in app.cpp.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [bin/mineserver] Error 1
make[1]: *** [CMakeFiles/mineserver.dir/all] Error 2
make: *** [all] Error 2

Can't run mineserver2 after make

I tried to use cmake and make, and I have no errors, but I can't run the mineserver executable.

user@Nunix-Netbook:/Downloads/mineserver2$ cmake .
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.40.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- signals
-- thread
-- Found ZLIB: /usr/lib/libz.so
-- Performing Test ICONV_SECOND_ARGUMENT_IS_CONST
-- Performing Test ICONV_SECOND_ARGUMENT_IS_CONST - Failed
-- Found Iconv: /usr/lib/libc.so
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found NOISE: /usr/lib/libnoise.so
-- Target: mineserver
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/Downloads/mineserver2
user@Nunix-Netbook:
/Downloads/mineserver2$ make
Scanning dependencies of target mineserver
[ 1%] Building CXX object CMakeFiles/mineserver.dir/src/app.cpp.o
[ 2%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/nbt.cpp.o
[ 4%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/game.cpp.o
[ 5%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/game/player.cpp.o
[ 6%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/localization.cpp.o
[ 8%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/server.cpp.o
[ 9%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/client.cpp.o
/home/user/Downloads/mineserver2/src/mineserver/network/client.cpp: In member function ‘void Mineserver::Network_Client::write()’:
/home/user/Downloads/mineserver2/src/mineserver/network/client.cpp:118: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘size_t’
/home/user/Downloads/mineserver2/src/mineserver/network/client.cpp: In member function ‘void Mineserver::Network_Client::handleWrite(const boost::system::error_code&, size_t)’:
/home/user/Downloads/mineserver2/src/mineserver/network/client.cpp:170: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘size_t’
/home/user/Downloads/mineserver2/src/mineserver/network/client.cpp:170: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 3 has type ‘size_t’
[ 10%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/world/generator/flatlands.cpp.o
[ 12%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/protocol.cpp.o
[ 13%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packetstream.cpp.o
[ 15%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x00.cpp.o
[ 16%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x01.cpp.o
[ 17%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x02.cpp.o
[ 19%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x03.cpp.o
[ 20%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x04.cpp.o
[ 21%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x05.cpp.o
[ 23%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x06.cpp.o
[ 24%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x07.cpp.o
[ 26%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x08.cpp.o
[ 27%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x09.cpp.o
[ 28%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x0A.cpp.o
[ 30%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x0B.cpp.o
[ 31%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x0C.cpp.o
[ 32%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x0D.cpp.o
[ 34%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x0E.cpp.o
[ 35%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x0F.cpp.o
[ 36%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x10.cpp.o
[ 38%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x11.cpp.o
[ 39%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x12.cpp.o
[ 41%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x13.cpp.o
[ 42%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x14.cpp.o
[ 43%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x15.cpp.o
[ 45%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x16.cpp.o
[ 46%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x17.cpp.o
[ 47%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x18.cpp.o
[ 49%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x19.cpp.o
[ 50%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x1A.cpp.o
[ 52%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x1C.cpp.o
[ 53%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x1D.cpp.o
[ 54%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x1E.cpp.o
[ 56%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x1F.cpp.o
[ 57%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x20.cpp.o
[ 58%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x21.cpp.o
[ 60%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x22.cpp.o
[ 61%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x26.cpp.o
[ 63%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x27.cpp.o
[ 64%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x28.cpp.o
[ 65%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x29.cpp.o
[ 67%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x2A.cpp.o
[ 68%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x2B.cpp.o
[ 69%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x32.cpp.o
[ 71%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x33.cpp.o
[ 72%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x34.cpp.o
[ 73%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x35.cpp.o
[ 75%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x36.cpp.o
[ 76%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x3C.cpp.o
[ 78%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x3D.cpp.o
[ 79%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x46.cpp.o
[ 80%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x47.cpp.o
[ 82%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x64.cpp.o
[ 83%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x65.cpp.o
[ 84%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x66.cpp.o
[ 86%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x67.cpp.o
[ 87%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x68.cpp.o
[ 89%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x69.cpp.o
[ 90%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x6A.cpp.o
[ 91%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x6B.cpp.o
[ 93%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x82.cpp.o
[ 94%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0x83.cpp.o
[ 95%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0xC8.cpp.o
[ 97%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0xC9.cpp.o
[ 98%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0xFE.cpp.o
[100%] Building CXX object CMakeFiles/mineserver.dir/src/mineserver/network/protocol/notch/packet/0xFF.cpp.o
Linking CXX executable bin/mineserver
[100%] Built target mineserver

And if I try to run bin/mineserver, it does nothing.

Segmentation Fault ./mineserver

Not sure if this information is useful but I thought I'd help with the bug fixing for Mac builds.

Seems like libiconv is having trouble encoding the motd & playercount to send or something because the program crashed as soon as the client 'polls'

-libiconv-1.14
-boost 1.48

_Compiling boost initial output iconv pops up there_

Performing configuration checks
- has_icu builds : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
- iconv (libc) : no
- iconv (separate) : yes
- icu : no
- icu (lib64) : no
- ../config//has_gcc_visibility builds : yes
- ../config//has_long_double_support builds : yes
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.

My macs library setup might be the root cause of this.

timsullivan@tim-mac:~/src/mineserver2/bin$ ./mineserver
Got bytes: fe
Found packet: fe
State is: 0
State is: 1
There are 1 messages.
Server list ping watcher called!
Watchers done.
Trying to send message ID: ff
Segmentation fault

Using Wireshark, no response is heard.
00000000 fe .

timsullivan@tim-mac:~/src/mineserver2/bin$ gdb ./mineserver
GNU gdb 6.3.50-20050815 (Apple version gdb-1515) (Sat Jan 15 08:33:48 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ......... done

(gdb) rn
Undefined command: "rn". Try "help".
(gdb) run
Starting program: /Users/timsullivan/src/mineserver2/bin/mineserver
Reading symbols for shared libraries .++++++++ done
Got bytes: fe
Found packet: fe
State is: 0
State is: 1
There are 1 messages.
Server list ping watcher called!
Watchers done.
Trying to send message ID: ff

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xffffffffffffffff
0x000000010035195e in libiconv (icd=0xffffffffffffffff, inbuf=0x7fff5fbff0e8, inbytesleft=0x7fff5fbff100, outbuf=0x7fff5fbff110, outbytesleft=0x7fff5fbff0f0) at ./iconv.c:254
254 return cd->lfuncs.loop_convert(icd,
(gdb) back
#0 0x000000010035195e in libiconv (icd=0xffffffffffffffff, inbuf=0x7fff5fbff0e8, inbytesleft=0x7fff5fbff100, outbuf=0x7fff5fbff110, outbytesleft=0x7fff5fbff0f0) at ./iconv.c:254
#1 0x000000010003c913 in Mineserver::Network_Protocol_Notch_PacketStream::operator<< (this=0x100516598, str=@0x100517068) at /Users/timsullivan/src/mineserver2/src/mineserver/network/protocol/notch/packetstream.cpp:358
#2 0x000000010004a1c6 in Mineserver::Network_Protocol_Notch_Packet_0xFF::_write (this=0x7fff5fbff1d0, ps=@0x100516598, message=@0x100517060) at /Users/timsullivan/src/mineserver2/src/mineserver/network/protocol/notch/packet/0xFF.cpp:47
#3 0x000000010003b2ca in Mineserver::Network_Protocol_Notch_Packet::write (this=0x7fff5fbff1d0, ps=@0x100516598, message=@0x100517060) at packet.h:53
#4 0x000000010003a1c2 in Mineserver::Network_Protocol_Notch_Protocol::compose (this=0x100516590, bytes=@0x1005170d0, message=@0x100517060) at /Users/timsullivan/src/mineserver2/src/mineserver/network/protocol/notch/protocol.cpp:903
#5 0x0000000100035795 in Mineserver::Network_Client::write (this=0x100802c20) at /Users/timsullivan/src/mineserver2/src/mineserver/network/client.cpp:115
#6 0x00000001000296b1 in Mineserver::Game::run (this=0x100801220) at /Users/timsullivan/src/mineserver2/src/mineserver/game.cpp:87
#7 0x0000000100008a26 in main () at /Users/timsullivan/src/mineserver2/src/app.cpp:69

Current language: auto; currently c

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.