Merge pull request #5 from bearbear12345/Indev

GitIgnore, AppIcon, Code optimization, Scripting Bot
This commit is contained in:
ORelio 2013-07-20 02:02:26 -07:00
commit 55b49c7b0d
22 changed files with 846 additions and 47 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/MinecraftClient.v11.suo

2
MinecraftClient/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/bin/
/obj/

View file

@ -486,14 +486,14 @@ namespace MinecraftClient
private string chooseword()
{
if (System.IO.File.Exists(English ? "words.txt" : "mots.txt"))
if (System.IO.File.Exists(English ? "config/hangman-words.txt" : "config/pendu-mots.txt"))
{
string[] dico = System.IO.File.ReadAllLines(English ? "words.txt" : "mots.txt");
return dico[new Random().Next(dico.Length)];
}
else
{
LogToConsole(English ? "Cannot find words.txt !" : "Fichier mots.txt introuvable !");
LogToConsole(English ? "Cannot find words.txt in config directory !" : "Fichier mots.txt introuvable dans config/hangman dossier!");
return English ? "WORDSAREMISSING" : "DICOMANQUANT";
}
}
@ -502,14 +502,14 @@ namespace MinecraftClient
{
List<string> owners = new List<string>();
owners.Add("CONSOLE");
if (System.IO.File.Exists("bot-owners.txt"))
if (System.IO.File.Exists("config/bot-owners.txt"))
{
foreach (string s in System.IO.File.ReadAllLines("bot-owners.txt"))
foreach (string s in System.IO.File.ReadAllLines("config/bot-owners.txt"))
{
owners.Add(s.ToUpper());
}
}
else LogToConsole(English ? "Cannot find bot-owners.txt !" : "Fichier bot-owners.txt introuvable !");
else LogToConsole(English ? "Cannot find bot-owners.txt in config folder!" : "Fichier bot-owners.txt introuvable dans config!");
return owners.ToArray();
}
@ -552,39 +552,39 @@ namespace MinecraftClient
public class Alerts : ChatBot
{
private string[] dictionnary = new string[0];
private string[] dictionary = new string[0];
private string[] excludelist = new string[0];
public override void Initialize()
{
if (System.IO.File.Exists("alerts.txt"))
if (System.IO.File.Exists("config/alerts.txt"))
{
dictionnary = System.IO.File.ReadAllLines("alerts.txt");
dictionary = System.IO.File.ReadAllLines("config/alerts.txt");
for (int i = 0; i < dictionnary.Length; i++)
for (int i = 0; i < dictionary.Length; i++)
{
dictionnary[i] = dictionnary[i].ToLower();
dictionary[i] = dictionary[i].ToLower();
}
}
else LogToConsole("Cannot find alerts.txt !");
else LogToConsole("Cannot find alerts.txt in the config folder!");
if (System.IO.File.Exists("alerts-exclude.txt"))
if (System.IO.File.Exists("config/alerts-exclude.txt"))
{
excludelist = System.IO.File.ReadAllLines("alerts-exclude.txt");
excludelist = System.IO.File.ReadAllLines("config/alerts-exclude.txt");
for (int i = 0; i < excludelist.Length; i++)
{
excludelist[i] = excludelist[i].ToLower();
}
}
else LogToConsole("Cannot find alerts-exclude.txt !");
else LogToConsole("Cannot find alerts-exclude.txt in the config folder!");
}
public override void GetText(string text)
{
text = getVerbatim(text);
string comp = text.ToLower();
foreach (string alert in dictionnary)
foreach (string alert in dictionary)
{
if (comp.Contains(alert))
{
@ -764,7 +764,7 @@ namespace MinecraftClient
public class AutoRelog : ChatBot
{
private string[] dictionnary = new string[0];
private string[] dictionary = new string[0];
private int attempts;
private int delay;
@ -786,23 +786,23 @@ namespace MinecraftClient
public override void Initialize()
{
McTcpClient.AttemptsLeft = attempts;
if (System.IO.File.Exists("kickmessages.txt"))
if (System.IO.File.Exists("config/kickmessages.txt"))
{
dictionnary = System.IO.File.ReadAllLines("kickmessages.txt");
dictionary = System.IO.File.ReadAllLines("config/kickmessages.txt");
for (int i = 0; i < dictionnary.Length; i++)
for (int i = 0; i < dictionary.Length; i++)
{
dictionnary[i] = dictionnary[i].ToLower();
dictionary[i] = dictionary[i].ToLower();
}
}
else LogToConsole("Cannot find kickmessages.txt !");
else LogToConsole("Cannot find kickmessages.txt in the config directory!");
}
public override bool OnDisconnect(DisconnectReason reason, string message)
{
message = getVerbatim(message);
string comp = message.ToLower();
foreach (string msg in dictionnary)
foreach (string msg in dictionary)
{
if (comp.Contains(msg))
{
@ -841,5 +841,71 @@ namespace MinecraftClient
}
}
}
/// <summary>
/// Runs a list of commands
/// Usage: bot:scripting:filename
/// Script must be placed in the config directory
/// </summary>
public class scripting : ChatBot
{
private string file;
private string[] lines = new string[0];
public scripting(string filename)
{
file = filename;
}
public override void Initialize()
{
// Loads the given file from the startup parameters
if (System.IO.File.Exists("config/" + file))
{
lines = System.IO.File.ReadAllLines("config/" + file); // Load the given bot text file (containing commands)
for (int i = 0; i < lines.Length; i++) // Parse through each line of the bot text file
{
System.Threading.Thread.Sleep(100);
string this_line = lines[i].Trim(); // Removes all whitespaces at start and end of current line
if (this_line.Length == 0)
{
// Skip a completely empty line
}
else if (this_line.Trim().StartsWith("//"))
{
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("BOT:" + this_line);
Console.ForegroundColor = ConsoleColor.Gray;
// Don't do anything for a comment line, denoted by '//'
}
else if (this_line.StartsWith("send "))
{
Console.ForegroundColor = ConsoleColor.Gray;
SendText((lines[i].Trim().Substring(5, lines[i].Length - 5)));
// Send the command
}
else if (this_line.StartsWith("wait "))
{
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("BOT:Pausing for " + Convert.ToInt32(lines[i].Substring(5, lines[i].Length - 5)) * 100 + "ms...");
Console.ForegroundColor = ConsoleColor.Gray;
System.Threading.Thread.Sleep(Convert.ToInt32(lines[i].Substring(5, lines[i].Length - 5)) * 100);
// Do a wait (given in milliseconds)
}
else if (this_line.StartsWith("exit"))
{
Program.B_Client.Disconnect();
} // Optional exit only if called in bot text file,
}
UnloadBot(); // Otherwise continue operation of Client to normal (non-bot) usage
}
else
{
Console.WriteLine(file + " not found! Please make sure that the file is located in the config directory.");
}
}
}
}
}

View file

@ -8,7 +8,7 @@ namespace MinecraftClient
/// <summary>
/// This class parses JSON chat data from MC 1.6+ and returns the appropriate string to be printed.
/// </summary>
static class ChatParser
{
/// <summary>
@ -54,11 +54,11 @@ namespace MinecraftClient
private static string color2tag(string colorname)
{
switch(colorname.ToLower())
switch (colorname.ToLower())
{
case "black": return "§0";
case "dark_blue": return "§1";
case "dark_green" : return "§2";
case "dark_green": return "§2";
case "dark_cyan": return "§3";
case "dark_cyanred": return "§4";
case "dark_magenta": return "§5";
@ -278,7 +278,7 @@ namespace MinecraftClient
return colorcode + TranslateString(JSONData2String(data.Properties["translate"]), using_data) + colorcode;
}
else return "";
case JSONData.DataType.Array:
string result = "";
foreach (JSONData item in data.DataArray)

View file

@ -141,7 +141,7 @@ namespace MinecraftClient
ChatBot.LogToConsole("Waiting 5 seconds (" + AttemptsLeft + " attempts left)...");
Thread.Sleep(5000); AttemptsLeft--; Program.Restart();
}
else if (!singlecommand){ Console.ReadLine(); }
else if (!singlecommand) { Console.ReadLine(); }
}
}
@ -156,6 +156,11 @@ namespace MinecraftClient
{
while (client.Client.Connected)
{
if (Program.scripting_enabled)
{
handler.BotLoad(new Bots.scripting(Program.scripting_param));
Program.scripting_enabled = false;
}
text = ConsoleIO.ReadLine();
if (text == "/quit" || text == "/reco" || text == "/reconnect") { break; }
while (text.Length > 0 && text[0] == ' ') { text = text.Substring(1); }

View file

@ -52,6 +52,13 @@
<PropertyGroup>
<SignManifests>false</SignManifests>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>resources\appicon.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<StartupObject>MinecraftClient.Program</StartupObject>
</PropertyGroup>
<PropertyGroup />
<ItemGroup>
<Reference Include="BouncyCastle.Crypto, Version=1.7.4114.6375, Culture=neutral, PublicKeyToken=0e99375e54769942">
<SpecificVersion>False</SpecificVersion>
@ -110,11 +117,12 @@
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Content Include="BouncyCastle.Crypto.dll" />
<Content Include="IKVM.OpenJDK.Core.dll" />
<Content Include="IKVM.OpenJDK.Security.dll" />
<Content Include="IKVM.OpenJDK.Util.dll" />
<Content Include="IKVM.Runtime.dll" />
<Content Include="resources\appicon.ico" />
<Content Include="lib\BouncyCastle.Crypto.dll" />
<Content Include="lib\IKVM.OpenJDK.Core.dll" />
<Content Include="lib\IKVM.OpenJDK.Security.dll" />
<Content Include="lib\IKVM.OpenJDK.Util.dll" />
<Content Include="lib\IKVM.Runtime.dll" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View file

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<StartArguments>
</StartArguments>
<StartArguments>user - 127.0.0.1 bot:scripting</StartArguments>
</PropertyGroup>
<PropertyGroup>
<PublishUrlHistory>publish\</PublishUrlHistory>

View file

@ -16,7 +16,7 @@ namespace MinecraftClient
#region Login to Minecraft.net, Obtaining a session ID
public enum LoginResult { Error, Success, WrongPassword, Blocked, AccountMigrated, NotPremium };
/// <summary>
/// Allows to login to a premium Minecraft account, and retrieve the session ID.
/// </summary>
@ -31,7 +31,8 @@ namespace MinecraftClient
{
Console.ForegroundColor = ConsoleColor.DarkGray;
WebClient wClient = new WebClient();
Console.WriteLine("https://login.minecraft.net/?user=" + user + "&password=<******>&version=13");
string str_len = new String('*', pass.Length);
Console.WriteLine("https://login.minecraft.net/?user=" + user + "&password=<" + str_len + ">&version=13");
string result = wClient.DownloadString("https://login.minecraft.net/?user=" + user + "&password=" + pass + "&version=13");
outdata = result;
Console.WriteLine(result);
@ -133,7 +134,7 @@ namespace MinecraftClient
//If the client gets out of sync, check the last green packet processing code.
//if (result == ProcessResult.OK) { printstring("§a0x" + id.ToString("X"), false); }
//else { printstring("§c0x" + id.ToString("X"), false); }
if (result == ProcessResult.ConnectionLost)
{
return false;
@ -283,11 +284,11 @@ namespace MinecraftClient
}
private string readNextString()
{
short lenght = readNextShort();
if (lenght > 0)
short length = readNextShort();
if (length > 0)
{
byte[] cache = new byte[lenght * 2];
Receive(cache, 0, lenght * 2, SocketFlags.None);
byte[] cache = new byte[length * 2];
Receive(cache, 0, length * 2, SocketFlags.None);
string result = ByteArrayToString(cache);
return result;
}
@ -329,7 +330,7 @@ namespace MinecraftClient
readData(1); //Item count
readData(2); //Item damage
short length = readNextShort();
//If lenght of optional NBT data > 0, read it
//If length of optional NBT data > 0, read it
if (length > 0) { readData(length); }
}
}

View file

@ -13,7 +13,12 @@ namespace MinecraftClient
class Program
{
// Scripting Bot Parameters - bearbear12345
public static bool scripting_enabled;
public static string scripting_param;
// End Scripting Bot Parameters
private static McTcpClient Client;
public static McTcpClient B_Client;
private static string loginusername = "";
private static string user = "";
private static string pass = "";
@ -50,17 +55,20 @@ namespace MinecraftClient
//Asking the user to type in missing data such as Username and Password
if (user == "") {
if (user == "")
{
Console.Write("Username : ");
user = Console.ReadLine();
}
if (pass == "") {
if (pass == "")
{
Console.Write("Password : ");
pass = Console.ReadLine();
//Hide the password
Console.CursorTop--;
Console.Write("Password : <******>");
string str_len = new String('*', pass.Length);
Console.Write("Password : <" + str_len + ">");
for (int i = 19; i < Console.BufferWidth; i++) { Console.Write(' '); }
}
@ -78,6 +86,7 @@ namespace MinecraftClient
private static void InitializeClient()
{
MinecraftCom.LoginResult result;
string logindata = "";
@ -199,12 +208,24 @@ namespace MinecraftClient
case "xauth":
if (botargs.Length > 2) { handler.BotLoad(new Bots.xAuth(botargs[2])); } break;
case "scripting":
if (botargs.Length > 2)
{
scripting_enabled = true;
scripting_param = botargs[2];
//handler.BotLoad(new Bots.scripting(botargs[2]));
}
else
{
scripting_enabled = true;
scripting_param = "scripting.txt";
//Launches later on after connected in MinecraftCom.cs
}
break;
}
command = "";
}
}
//Start the main TCP client
if (command != "")
{

View file

@ -0,0 +1,8 @@
myserver.com
Yourname>:
Player Yourname
Yourname joined
Yourname left
[Lockette] (Admin)
Yourname:
Yourname is

View file

@ -0,0 +1,37 @@
Yourname
whispers
-> me
admin
.com
.net
.fr
.us
.uk
!!!!
????
aaaa
zzzz
eeee
rrrr
tttt
yyyy
uuuu
iiii
oooo
pppp
qqqq
ssss
dddd
ffff
gggg
hhhh
jjjj
kkkk
llll
mmmm
wwww
xxxx
cccc
vvvv
bbbb
nnnn

View file

@ -0,0 +1,2 @@
ORelio
PutYourNameHere

View file

@ -0,0 +1,322 @@
MAISON
BLEU
AVION
XYLOPHONE
ABEILLE
IMMEUBLE
GOURDIN
NEIGE
ZERO
MARRON
TELEPHONE
ORDINATEUR
FENETRE
SOLEIL
TILLEUL
TINTAMARRE
PROLIFIQUE
HORLOGE
EGLISE
BUREAU
ABRICOT
PLANISPHERE
MAPPEMONDE
PECHE
ETUI
SELLE
CABAS
MANGER
BOUDIN
BANANE
MANGUE
KIWI
COLIBRI
CHOUCROUTE
CHEVET
REVEIL
NOUVELLE
BUANDERIE
FONCTIONNEMENT
PRINCESSE
POTAGER
DEMON
DENT
CAISSE
VILLAGE
URBANISATION
YACK
RIVIERE
ILOT
ENTREE
PALISSADE
ARBALETTE
SUCRERIE
TAPISSERIE
PAQUEBOT
PAQUERETTE
TOURNESOL
CALENDRIER
AUTOROUTE
COUTEAU
TORNADE
RUISSEAU
DELTAPLANE
PARAPENTE
PENDU
BROCOLI
TOPINAMBOUR
MAGMA
LICHEN
CALCULATRICE
DICTIONNAIRE
SUPERETTE
POULIE
ENGRENAGE
RADEAU
SACOCHE
SECATEUR
CHRONOMETRE
SABLIER
ESPRIT
TIROIR
MINERAI
LINGOT
BADGE
OREILLER
COUETTE
EDREDON
CORBEILLE
COURRIER
FRESQUE
BIBLIOTHEQUE
TABLE
CHAISE
CARRELAGE
SERVIETTE
SUPERFICIE
COMMODE
PELUCHE
GABARIT
PONTON
PRESQUE
MECHE
PELURE
BALLOT
TRACTEUR
AGRICULTURE
PORTILLON
CERF
SOURCE
FONTAINE
SANGLIER
TOURTERELLE
PHARAON
ELECTRIQUE
NOUVEAUTE
PYJAMA
NEON
PAON
FAON
ACTIVITE
ENCYCLOPEDIE
MESSAGER
MICROSCOPE
TELESCOPE
TELEPHERIQUE
EMPLACEMENT
TERRIER
TERRINE
PEINTURE
AQUARELLE
BOSQUET
GRAVIER
BOUGIE
CHANDELIER
DESTINATION
VEHICULE
EPERVIER
FLECHETTE
CANAPE
NARRATEUR
RECOMPENSE
VICTOIRE
BATAILLE
BRASIER
CHARBON
BRAISE
VACHERIE
POULAILLER
TIGRE
MATOU
DEFORESTATION
ELEPHANT
RADIATEUR
TRESOR
GOMME
TRIANGLE
PENTAGRAMME
SPIRALE
BLASON
BOULIER
BOUCLIER
TABOURET
PUZZLE
LABYRINTHE
ESPACE
AFFICHE
CINEMA
ANTICIPATION
ASTRE
PLANETE
UNIVERS
CURIOSITE
GUIDE
VALLEE
SOMMET
MURAILLE
MONUMENT
PIGEON
PIANO
GUITARE
VIOLON
VIOLET
CLAIRON
TROMPETTE
CLAIRIERE
BUISSON
FEUILLAGE
VOUTE
FOUGERE
CALENDRIER
THERMOMETRE
CASSEROLE
CASSOULET
COCCINELLE
PUCERON
FOURMI
LIBELLULE
PAPILLON
MIRADOR
ERUPTION
GOUVERNAIL
VOILE
CATAMARAN
PARAVENT
PARATONNERRE
CLOTURE
PHILOSOPHE
TIMBRE
ENVELOPPE
POESIE
ARTISANAT
JUMELLES
POULAIN
JUMENT
SEAU
ARROSOIR
ROSIER
JARDINIER
FORESTIER
GENDARME
SONGE
REVE
ETOILE
CORAIL
EVENTAIL
MARCHANDISE
ELEVATEUR
ASCENSEUR
ESCALIER
MONTGOLFIERE
LUMINAIRE
LAMPADAIRE
PACHYDERME
PASTEQUE
MELON
CEREALE
COQUELICOT
PISSENLIT
PATURAGE
BOTTE
BAIGNOIRE
BANQUEROUTE
BOUQUET
CHANDAIL
NAIN
CUMULONIMBUS
JAUNE
VENT
ECLAT
ECLAIR
DIAMANT
CRISTAL
ROCHER
CAPITALE
FACTURE
FEUILLETON
JOURNAL
GRILLAGE
WAGON
LOCOMOTIVE
CHRONOMETRE
CLOWN
TOURNEVIS
PETANQUE
PANCARTE
ETAGERE
BAGUETTE
ESQUIVE
BAQUET
ENORME
DONJON
BANQUET
CARNET
CHAUDIERE
SENTIER
MANEGE
LUNATIQUE
TAPAGE
CRAYON
CANYON
SAVATE
SAVANE
AEROPORT
QUESTION
GUIRLANDE
INFORMATION
FAUTEUIL
CHAMPAGNE
BOUTEILLE
CLAPOTIS
VAGUE
DEJEUNER
CULTURE
CUBE
PANNEAU
PAPYRUS
DIMENSION
FONCTION
ECLUSE
PISTON
PIRATE
PITON
FOURNAISE
FABULEUX
BOUQUIN
MAGAZINE
MAGASIN
PATINOIRE
AVOCAT
SALADE
LAINE
MINECRAFT
CREEPER
SQUELETTE
GHAST
NETHER
LANTERNE
FACTION
GLOWSTONE
MINECART
CONSTRUCTION
BACTERIE

View file

@ -0,0 +1,323 @@
HOUSE
BLUE
PLANE
JUKEBOX
BEE
BUILDING
AXE
SNOW
ZERO
BROWN
TELEPHONE
COMPUTER
WINDOW
SUN
LINDEN
TINTAMARRE
PROLIFIC
CLOCK
CHURCH
OFFICE
APRICOT
PLANISPHERE
WORLD MAP
FISHING
CASE
SADDLE
BAG
ROOM
PUDDING
BANANA
MANGO
KIWI
HUMMINGBIRD
BEDSIDE
ALARM
NEW
LAUNDRY
OPERATION
PRINCESS
GARDEN
DEMON
DENT
CASH
VILLAGE
ESTATE
YAK
RIVER
ISLAND
ENTRY
PALISSADE
ARBALETTE
CANDY
TAPESTRY
PAQUEBOT
PAQUERETTE
SUNFLOWER
CALENDAR
HIGHWAY
KNIFE
TORNADO
CREEK
HUNG
BROCCOLI
ARTICHOKE
MAGMA
LICHEN
CALCULATOR
DICTIONARY
SUPERETTE
PULLEY
GEAR
RAFT
BAG
SECATEUR
TIMER
HOURGLASS
SPIRIT
DRAWER
ORE
INGOT
BADGE
PILLOW
COVER
BASKET
MAIL
FRESCO
LIBRARY
TABLE
CHAIR
TILE
TOWEL
AREA
CHEST
PLUSH
TEMPLATE
PONTOON
ALMOST
WICK
PEEL
NERD
TRACTOR
AGRICULTURE
DOOR
CERF
SOURCE
FONTAINE
BOAR
DOVE
PHARAOH
ELECTRIC
NEW
PAJAMA
NEON
PEACOCK
FAWN
ACTIVITY
ENCYCLOPEDIA
MESSENGER
MICROSCOPE
TELESCOPE
TELEPHERIQUE
LOCATION
TERRIER
BOWL
PAINTING
WATERCOLOR
GROVE
GRAVEL
CANDLE
CANDLESTICK
DESTINATION
VEHICLE
EPERVIER
DART
SOFA
NARRATOR
REWARD
VICTORY
BATTLE
Brasier
COAL
EMBER
VACHERIE
BARN
TIGRE
MATOU
DEFORESTATION
ELEPHANT
RADIATOR
TREASURE
GUM
TRIANGLE
PENTAGRAM
SPIRAL
BLAZON
ABACUS
SHIELD
STOOL
PUZZLE
LABYRINTH
SPACE
POSTER
CINEMA
ANTICIPATION
ASTRE
PLANET
UNIVERSE
CURIOSITY
GUIDE
VALLEY
SUMMIT
WALL
MONUMENT
PIGEON
PIANO
GUITAR
VIOLIN
VIOLET
CLARION
TRUMPET
CLAIRIERE
BUSH
FOLIAGE
ARCH
FERN
CALENDAR
THERMOMETER
PAN
CASSOULET
LADYBUG
PUCERON
ANT
DRAGONFLY
BUTTERFLY
VIEWPOINT
ERUPTION
RUDDER
SAIL
CATAMARAN
SCREEN
LIGHTNING
CLOSING
PHILOSOPHER
STAMP
ENVELOPE
POETRY
CRAFTS
TWIN
FOAL
MARE
BUCKET
WATERING
ROSIER
GARDENER
FOREST
GENDARME
DREAM
DREAM
STAR
CORAL
FAN
GOODS
LIFT
ELEVATOR
STAIRS
BALLOON
LIGHT
LAMP
PACHYDERME
WATERMELON
MELON
CEREAL
POPPY
DANDELION
GRAZING
BOOT
BATH
BANKRUPTCY
BOUQUET
SWEATER
NAIN
CUMULONIMBUS
YELLOW
WIND
ECLAT
FLASH
DIAMOND
CRYSTAL
ROCK
CAPITAL
INVOICE
PAPER
JOURNAL
SCREEN
WAGON
LOCOMOTIVE
TIMER
CLOWN
SCREWDRIVER
BOWLS
PANCARTE
SHELF
WAND
DODGE
TUB
HUGE
DUNGEON
BANQUET
BOOK
BOILER
TRAIL
STABLES
WHIMSICAL
TAPAGE
PENCIL
CANYON
SAVATE
SAVANNAH
AIRPORT
QUESTION
GARLAND
INFORMATION
ARMCHAIR
CHAMPAGNE
BOTTLE
CLAPOTIS
WAVE
LUNCH
CULTURE
CUBE
PANEL
PAPYRUS
DIMENSION
FUNCTION
ECLUSE
PISTON
PIRATE
Piton
FURNACE
FABULOUS
BOUQUIN
MAGAZINE
STORE
RINK
LAWYER
SALAD
WOOL
MINECRAFT
CREEPER
SKELETON
GHAST
NETHER
TORCH
LANTERN
FACTION
GLOWSTONE
MINECART
CONSTRUCTION
BACTERIA
ACHIEVEMENT
HEROBRINE
NOTCH
BOW

View file

@ -0,0 +1,4 @@
Connection has been lost
Server is restarting
Server is full
Too Many people

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB