Перейти к публикации
Форум - ComputerCraft
Syabro

[CC] GoogleGlass Chat

Рекомендованные сообщения

Привет!


Как многие знают на новом сервере 1.6.4 , относительно новом, добавили такие моды как ComputerCraft и аддон к этому моду - OpenPeripheral. В моде OpenPeripheral есть очень хорошая вещь! TerminelGlasses у нас на сервере их называют "GoogleGlass" и не зря ведь они могут создавать объекты такие как: text, gradientBox и просто box и вот используя эти 3 объекта, а точнее 2 (text и box) я написал "локальный" чат! Вот так он выглядит:
Изображение
Что бы написать сообщение вам нужно ввести "$$" и затем сообщение например: $$Hello World!
Также как вы уже заметили на скриншоте чат поддерживает русские символы.
Имеются команды настройки такие как: set text_coordX, set text_coordY, set text_color, set bg_show, set bg_color, set bg_opacity, set max_height. Например работа команд:
$$set text_coordX
$$10
$$set text_coordY
$$10
$$set text_color
$$0xFF0000
Изображение
Остальные команды означают:
set bg_show - скрывать или нет фон, стандарт: true. Пример: true, false
set bg_color - задает цвет фона, стандарт: 0x0101FF. Пример: 0xFF0000
set bg_opacity - задает прозрачность фона от 0 до 1, стандарт: 0.5. Пример: 0.3
set max_height - задает максимальное количество строк чата, стандарт: 10. Пример: 15

Pastebin коды для файла "glass.lua" и самого чата соответственно: DiYrqfti и xDfjKViH
Что бы вводить команды вам нужна админка, просто введи свой ник вместо Syabro на 8-ой строке!
Загрузка и сохранение настроек будет доступна попозже. Функция бана пока не работает.
Забыл написать! Вам понадобится Terminal Glasses Bridge, программа сама определит с какой стороны он стоит. Что бы подключить к нему очки нужно кликнуть ими по блоку ПКМ(правой кнопкой мыши)

Большое спасибо Fenixrus!!!

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ОБНОВЛЯЙТЕ! Программу чата нужно загрузить по новой. Добавлено сохранение настроек!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Также добавил возможность рестарта чата! Нужно например для очистки или изменения количества строк чата. Что бы перезагрузить сервер нужно написать:

$$reboot

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что же это за файл "glass.lua"?

В этом файле содержится функця для принта таблици которая используется в моём чате. Она выглядит так:

printGlassText(prox, text, x, y, text_color, bg_show, bg_color, opacity, user)

prox - сюда передается объект peripheral.wrap()

text - соответственно таблица с индексом от 1-го до конца...

x, y - координаты верхнего левого угла текста

text_color - цвет текста

bg_show - показывать или нет фон (true, false)

bg_color - цвет фона

opacity - прозрачность фона

user - ф-ция не доступна

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не до конца разобрался с механизмом обмена сообщениями. Вот, что удалось понять, поправь если не так

1. Чат построен на основе одного единственного компьютера, к которому прикручена фиговина "openperipheral_glassesbridge"

2. Каждый участник чата должен иметь на носу супер очки, связанные с этой фиговиной при помощи ПКМ

3. Для отсылки сообщения в GoogleGlass Chat необходимо в обычный чат послать сообщение, начинающееся с $$. После чего, каждый у кого очки, это сообщение увидит. Причем в обычный чат сообщение не попадет.

4. Расстояние от пользователя до компьютера значения не имеет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не до конца разобрался с механизмом обмена сообщениями. Вот, что удалось понять, поправь если не так

1. Чат построен на основе одного единственного компьютера, к которому прикручена фиговина "openperipheral_glassesbridge"

2. Каждый участник чата должен иметь на носу супер очки, связанные с этой фиговиной при помощи ПКМ

3. Для отсылки сообщения в GoogleGlass Chat необходимо в обычный чат послать сообщение, начинающееся с $$. После чего, каждый у кого очки, это сообщение увидит. Причем в обычный чат сообщение не попадет.

4. Расстояние от пользователя до компьютера значения не имеет

Все правильно понял!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Опять добавлены команды:

set adm_nick - изменяет ник админа

del msg - удаляет определенное сообщение

 

Также о системе команд. Есть команды такие как reboot они пишутся "$$reboot" и все а есть команды типа "set adm_nick" после которых нужно вводить значение. Например:

$$set adm_nick

$$Fenixrus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что бы вводить команды вам нужна админка, просто введи свой ник вместо Syabro на 8-ой строке!

 

Теперь нужно заменить Syabro на свой ник на 3-ей строке в таблице

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

"Опять обновление?!"


Исправлены баги! Вот код программы-чата что бы вы не искали... xDfjKViH

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Александр, ты не указал главной фичи блока - это то, что он перехватывает чат с тегом $$ и в pullEvent возвращает ник и сообщение. А функцию бан разбан легко и нужно обязательно реализовать через запись в файл banlist по команде $$ban nick и $$unban nick и обрабатывать файл, в котором построчно лежат ники. То есть дописывать или удалять из файла игрока, а при срабатывании пуливента смотреть из таблицы tmpban, есть ли игрок в ней или нет и соответственно принтить его смс или нет. Таблицу tempban обновлять после каждой операции добавления/удаления игрока из бана и при старте сервера. Сложнее с $$mute nick delay. Нужно генерировать на "заткнутого" игрока переменную таймера и отдельным пуливентом на срабатывание таймеров чистить игроков из таблицы table_temp_mute.

 

Сделай обработку строки целиком, если там есть команда и аргументы. Zero целую энциклопедию уже написал для этого :) тут!

 

А вот если еще систему уровней доступа сделаешь (суперадмин, админ, модер и юзер) которым будут доступны только определенные команды (а так же префиксы будешь выводить) - цены программке не будет!;)

 

П.С. За работу над программойLike выдаю стак иридия и иридиевую дрил 3 уровня.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не до конца разобрался с механизмом обмена сообщениями. Вот, что удалось понять, поправь если не так

1. Чат построен на основе одного единственного компьютера, к которому прикручена фиговина "openperipheral_glassesbridge"

2. Каждый участник чата должен иметь на носу супер очки, связанные с этой фиговиной при помощи ПКМ

3. Для отсылки сообщения в GoogleGlass Chat необходимо в обычный чат послать сообщение, начинающееся с $$. После чего, каждый у кого очки, это сообщение увидит. Причем в обычный чат сообщение не попадет.

4. Расстояние от пользователя до компьютера значения не имеет

от расстояния полностью не зависит, даже от мира

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Александр, ты не указал главной фичи блока - это то, что он перехватывает чат с тегом $$ и в pullEvent возвращает ник и сообщение. А функцию бан разбан легко и нужно обязательно реализовать через запись в файл banlist по команде $$ban nick и $$unban nick и обрабатывать файл, в котором построчно лежат ники. То есть дописывать или удалять из файла игрока, а при срабатывании пуливента смотреть из таблицы tmpban, есть ли игрок в ней или нет и соответственно принтить его смс или нет. Таблицу tempban обновлять после каждой операции добавления/удаления игрока из бана и при старте сервера. Сложнее с $$mute nick delay. Нужно генерировать на "заткнутого" игрока переменную таймера и отдельным пуливентом на срабатывание таймеров чистить игроков из таблицы table_temp_mute.

 

Сделай обработку строки целиком, если там есть команда и аргументы. Zero целую энциклопедию уже написал для этого :) тут!

 

А вот если еще систему уровней доступа сделаешь (суперадмин, админ, модер и юзер) которым будут доступны только определенные команды (а так же префиксы будешь выводить) - цены программке не будет!;)

 

П.С. За работу над программойLike выдаю стак иридия и иридиевую дрил 3 уровня.

ИРИДИЙ :eek: :D

 

На счет бана! Там суть не в самой системе бана, а в выводе сообщения "You are banned!" одному игроку... там что-то с glass.getUserSurface(nick) она не работает...

Фичу я указал... С мутом и разделением на группы тоже можно разобраться... достаточно не сложно...

А за ссылочку Спасибо! :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ты хочешь блокировать забаненного юзера, чтобы он вообще не видел чат? Или в аддоне есть возможность показа сообщения только одному игроку. Я бы согласился на то, что просто юзер увидел смс, мол, "Nick_name has been banned" , и больше не мог писать в чат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно ли при помощи этой штуки организовать связь между двумя компьютерами?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно ли при помощи этой штуки организовать связь между двумя компьютерами?

По сути это удаленная служба доступа (если написать расширенный интерфейс) к компьютеру и ко всем его возможностям через глобальный игровой чат, но только в одностороннем порядке. Можно управлять любыми программами и схемами удаленно с любого расстояния с помощью чата майна и надетых прилинкованных очках. Но обратная связь только в виде отображения информации в очках. Можно через чат майна управлять хоть черепахами, хоть своими ядерными реакторами. Сам комп не управляет чатом майна и это печально, хотя и правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Т.е. компьютер может читать чат, но сам писать туда не может?

post-6-14160784011853_thumb.gif

Жаль. А то можно было бы глобальную сеть между мирами организовать.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Т.е. компьютер может читать чат, но сам писать туда не может?...

Абсолютно верно. Схемка именно так работает!

П.С. Дмитрий, я поражаюсь Вашей штабной культуре у умению качественно и грамотно оформлять материал.

 

Примечание: штабная культура (воен. термин)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновление!


  • Добавлены команды "ban" и "unban"
  • Вывод команд админа в ощий чат убран.
  • конечно же сохранение забаненых игроков в файл

Команда "del msg" не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас программа не доступна... надо еще один файл для тестов...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Логов крашей нет, станно. Он просто рестартился что ли.

На чем работает программа, ОС?

на том же на чем и до этого вчера все норм было, ничего не менялось

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на том же на чем и до этого вчера все

я похож на экстрасенса?

ничего не менялось

поменялась версия мода OC и версия openOS с 1.1 на 1.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зашел только что, чат Сябро работает, ничего не перезагружает, странно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зашел только что, чат Сябро работает, ничего не перезагружает, странно.

легион отрубил перезагруз при краше

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Alex, Ты админ на сервера! Ты обязан быть экстрасенсом сервера! Ты не знаешь что чат на CC?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Alex, Ты админ на сервера! Ты обязан быть экстрасенсом сервера! Ты не знаешь что чат на CC?!

Пока что я Вангую на сервере 1.6.4, и вся эта история появилась из-за попытки сделать работу сервера более стабильной. Но, к сожалению, с такими экперементами как эти очки, поднять автоматизацию сервера нельзя, надеюсь что пока что.

 

Для этого мы по сути и поддерживаем несколько серверов, один для чистой игры без неожидонастей, второй для программерских и т.п. эксперементов и поддержки развивающихся проэктов. То что не допустимо на первом сервере вполне может быть разрешено на втором.

Так же планирую поднять третий сервер в режиме unstable с самыми последними модификациями майна и модов, кто получит доступ к нему еще незнаю, но это будет оччень ограниченый круг людей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По голосованию, новый функционал добавлять конечно нужно, но это не отменяет работы над текущими проблемами, то что данный чат вызывает ерроры пока что не критично, но необходимо найти решение этой проблемы перед приминением его на общем сервере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для этого мы по сути и поддерживаем несколько серверов, один для чистой игры без неожидонастей, второй для программерских и т.п. эксперементов и поддержки развивающихся проэктов

Это какой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это какой?

Сейчас 1.5.2 это основной сервет (скоро будет апнут до 1.6.4), 1.6.4 серв для програминга и развития проэктов.

Тревога!!! Зайдя сегодня на севрер решил проверить чат написа "$$lol" сервер рестартнулся! Думал совподение! После нескольких тестов все стало ясно! Очки каким-то образом крашат сервер с ошибкой:

Console[: 2014-07-16 11:50:54 [WARNING] Can calculate font size
Console[: java.lang.IllegalArgumentException: input == null!
Error[: Minecraft server error. Server will be restarted.
Console[: [at javax.imageio.ImageIO.read(Unknown Source)
Console[: [at openmods.utils.render.FontSizeChecker.readFontTexture(FontSizeChecker.java:31)
Console[: [at openmods.utils.render.FontSizeChecker.<init>(FontSizeChecker.java:25)
Console[: [at openmods.utils.render.FontSizeChecker.getInstance(FontSizeChecker.java:19)
Console[: [at openperipheral.addons.glasses.GlassesRenderingUtils.getStringWidth(GlassesRenderingUtils.java:32)
Console[: [at openperipheral.addons.glasses.TileEntityGlassesBridge.getStringWidth(TileEntityGlassesBridge.java:189)
Console[: [at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Console[: [at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
Console[: [at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
Console[: [at java.lang.reflect.Method.invoke(Unknown Source)
Console[: [at openperipheral.adapter.method.MethodDeclaration$CallWrap.call(MethodDeclaration.java:259)
Console[: [at openperipheral.adapter.method.MethodDeclaration$CallWrap.call(MethodDeclaration.java:213)
Console[: [at openperipheral.adapter.peripheral.ExecutionStrategy$1.execute(ExecutionStrategy.java:132)
Console[: [at openperipheral.adapter.peripheral.PeripheralAdapterWrapper$PeripheralMethodExecutor.execute(PeripheralAdapterWrapper.java:71)
Console[: [at openperipheral.adapter.peripheral.HostedPeripheralBase.callMethod(HostedPeripheralBase.java:52)
Console[: [at dan200.computer.core.apis.PeripheralAPI$PeripheralWrapper.call(PeripheralAPI.java:122)
Console[: [at dan200.computer.core.apis.PeripheralAPI.callMethod(PeripheralAPI.java:484)
Console[: [at dan200.computer.core.LuaJLuaMachine$2.invoke(LuaJLuaMachine.java:304)
Console[: [at org.luaj.vm2.lib.VarArgFunction.onInvoke(Unknown Source)
Console[: [at org.luaj.vm2.TailcallVarargs.eval(Unknown Source)
Console[: [at org.luaj.vm2.TailcallVarargs.arg1(Unknown Source)
Console[: [at org.luaj.vm2.LuaClosure.call(Unknown Source)
Console[: [at org.luaj.vm2.LuaClosure.execute(Unknown Source)
Console[: [at org.luaj.vm2.LuaClosure.onInvoke(Unknown Source)
Console[: [at org.luaj.vm2.LuaClosure.invoke(Unknown Source)
Console[: [at org.luaj.vm2.LuaClosure.execute(Unknown Source)
Console[: [at org.luaj.vm2.LuaClosure.onInvoke(Unknown Source)
Console[: [at org.luaj.vm2.LuaClosure.invoke(Unknown Source)
Console[: [at org.luaj.vm2.LuaThread$State.run(Unknown Source)
Console[: [at java.lang.Thread.run(Unknown Source)
Console[: 2014-07-16 11:50:54 [INFO] [Server] Server is restart

По этой ошибке отписывайся сюда, скорее всего это бага мода

https://github.com/OpenMods/OpenPeripheral/issues

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно ли сделать сервер с WhiteList где будут разрешены черепахи? то есть как раз для программинга, развития проектов и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×