package polly.core; import java.util.Calendar; import java.util.Date; import commands.AddUserCommand; import commands.AmazonCommand; import commands.AnyficationCommand; import commands.AuthCommand; import commands.CalendarCommand; import commands.ClumBombCommand; import commands.DefineCommand; import commands.DeleteUserCommand; import commands.DictCommand; import commands.DitoCommand; import commands.ExportAttributesCommand; import commands.FooCommand; import commands.GetAttributeCommand; import commands.GhostCommand; import commands.GooglePicsCommand; import commands.GreetingCommand; import commands.HopCommand; import commands.InfoCommand; import commands.IsDownCommand; import commands.JoinCommand; import commands.KickCommand; import commands.ListAttributesCommand; import commands.LmgtfyCommand; import commands.PartCommand; import commands.QuitCommand; import commands.RawIrcCommand; import commands.ReAuthCommand; import commands.RegisterCommand; import commands.RestartCommand; import commands.SetAttributeCommand; import commands.SetMyPasswordCommand; import commands.SetPasswordCommand; import commands.ShowCommandsCommand; import commands.SignOffCommand; import commands.TalkCommand; import commands.UptimeCommand; import commands.UsersCommand; import commands.VarCommand; import commands.VersionCommand; import commands.WebInterfaceCommand; import commands.WikiCommand; import commands.roles.AssignPermissionCommand; import commands.roles.AssignRoleCommand; import commands.roles.CreateRoleCommand; import commands.roles.DeleteRoleCommand; import commands.roles.ListPermissionsCommand; import commands.roles.ListRolesCommand; import commands.roles.RemovePermissionCommand; import commands.roles.RemoveRoleCommand; import core.GreetDeliverer; import core.JoinTimeCollector; import de.skuzzle.polly.sdk.MyPolly; import de.skuzzle.polly.sdk.PollyPlugin; import de.skuzzle.polly.sdk.Types; import de.skuzzle.polly.sdk.exceptions.DatabaseException; import de.skuzzle.polly.sdk.exceptions.DisposingException; import de.skuzzle.polly.sdk.exceptions.DuplicatedSignatureException; import de.skuzzle.polly.sdk.exceptions.IncompatiblePluginException; import de.skuzzle.polly.sdk.exceptions.RoleException; import de.skuzzle.polly.sdk.roles.RoleManager; import de.skuzzle.polly.sdk.time.DateUtils; import entities.TopicEntity; /** * * @author Simon * @version 27.07.2011 3851c1b */ public class MyPlugin extends PollyPlugin { public final static String CASPER = "polly.roles.CASPER"; //$NON-NLS-1$ public final static String ADD_USER_PERMISSION = "polly.permission.ADD_USER"; //$NON-NLS-1$ public final static String ALIAS_PERMISSION = "polly.permission.ALIAS"; //$NON-NLS-1$ public final static String ANYFICATION_PERMISSION = "polly.permission.ANYFICATION"; //$NON-NLS-1$ public final static String CLUMBOMB_PERMISSION = "polly.permission.CLUMBOMB"; //$NON-NLS-1$ public final static String DEFINE_PERMISSION = "polly.permission.DEFINE"; //$NON-NLS-1$ public final static String DELETE_USER_PERMISSION = "polly.permission.DELETE_USER"; //$NON-NLS-1$ public final static String DICT_PERMISSION = "polly.permission.DICT"; //$NON-NLS-1$ public final static String DITO_PERMISSION = "polly.permission.DITO"; //$NON-NLS-1$ public final static String EXPORT_ATTRIBUTES_PERMISSION = "polly.permission.EXPORT_ATTRIBUTES"; //$NON-NLS-1$ public final static String EXPORT_USER_ATTRIBUTES_PERMISSION = "polly.permission.EXPORT_USER_ATTRIBUTES"; //$NON-NLS-1$ public final static String GET_ATTRIBUTE_PERMISSION = "polly.permission.GET_ATTRIBUTE"; //$NON-NLS-1$ public final static String GET_USER_ATTRIBUTE_PERMISSION = "polly.permission.GET_USER_ATTRIBUTE"; //$NON-NLS-1$ public final static String HOP_PERMISSION = "polly.permission.HOP"; //$NON-NLS-1$ public final static String INFO_PERMISSION = "polly.permission.INFO"; //$NON-NLS-1$ public final static String ISDOWN_PERMISSION = "polly.permission.ISDOWN"; //$NON-NLS-1$ public final static String JOIN_PERMISSION = "polly.permission.JOIN"; //$NON-NLS-1$ public final static String KICK_PERMISSION = "polly.permission.KICK"; //$NON-NLS-1$ public final static String LIST_ATTRIBUTES_PERMISSION = "polly.permission.LIST_ATTRIBUTES"; //$NON-NLS-1$ public final static String PART_PERMISSION = "polly.permission.PART"; //$NON-NLS-1$ public final static String QUIT_PERMISSION = "polly.permission.QUIT"; //$NON-NLS-1$ public final static String RAW_IRC_PERMISSION = "polly.permission.RAW_IRC"; //$NON-NLS-1$ public final static String RESTART_PERMISSION = "polly.permission.RESTART"; //$NON-NLS-1$ public final static String SET_ATTRIBUTE_PERMISSION = "polly.permission.SET_ATTRIBUTE"; //$NON-NLS-1$ public final static String SET_USER_ATTRIBUTE_PERMISSION = "polly.permission.SET_USER_ATTRIBUTE"; //$NON-NLS-1$ public final static String SET_PASSWORD_PERMISSION = "polly.permission.SET_PASSWORD"; //$NON-NLS-1$ public final static String TALK_PERMISSION = "polly.permission.TALK"; //$NON-NLS-1$ public final static String UPTIME_PERMISSION = "polly.permission.UPTIME"; //$NON-NLS-1$ public final static String LIST_USERS_PERMISSION = "polly.permission.LIST_USERS"; //$NON-NLS-1$ public final static String LIST_VARS_PERMISSION = "polly.permission.LIST_VARS"; //$NON-NLS-1$ public final static String ASSIGN_PERMISSION_PERMISSION = "polly.permission.ASSIGN_PERMISSION"; //$NON-NLS-1$ public final static String ASSIGN_ROLE_PERMISSION = "polly.permission.ASSIGN_ROLE"; //$NON-NLS-1$ public final static String CREATE_ROLE_PERMISSION = "polly.permission.CREATE_ROLE"; //$NON-NLS-1$ public final static String DELETE_ROLE_PERMISSION = "polly.permission.DELETE_ROLE"; //$NON-NLS-1$ public final static String LIST_PERMISSIONS_PERMISSION = "polly.permission.LIST_PERMISSIONS"; //$NON-NLS-1$ public final static String LIST_ROLES_PERMISSION = "polly.permission.LIST_ROLES"; //$NON-NLS-1$ public final static String REMOVE_PERMISSION_PERMISSION = "polly.permission.REMOVE_PERMISSION"; //$NON-NLS-1$ public final static String REMOVE_ROLE_PERMISSION = "polly.permission.REMOVE_ROLE"; //$NON-NLS-1$ public final static String SET_AND_IDENTIFY_PERMISSION = "polly.permission.SET_AND_IDENTIFY"; //$NON-NLS-1$ public final static String GREETING = "GREETING"; //$NON-NLS-1$ private final GreetDeliverer greetDeliverer; private final JoinTimeCollector joinTimeCollector; @Override public void assignPermissions(RoleManager roleManager) throws RoleException, DatabaseException { super.assignPermissions(roleManager); roleManager.assignPermission(RoleManager.ADMIN_ROLE, ADD_USER_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, DELETE_USER_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, TALK_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, ALIAS_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, EXPORT_USER_ATTRIBUTES_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, SET_USER_ATTRIBUTE_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, GET_USER_ATTRIBUTE_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, SET_PASSWORD_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, PART_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, QUIT_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, KICK_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, JOIN_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, RAW_IRC_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, RESTART_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, ASSIGN_PERMISSION_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, ASSIGN_ROLE_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, CREATE_ROLE_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, DELETE_ROLE_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, LIST_PERMISSIONS_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, LIST_ROLES_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, REMOVE_PERMISSION_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, REMOVE_ROLE_PERMISSION); roleManager.assignPermission(RoleManager.ADMIN_ROLE, SET_AND_IDENTIFY_PERMISSION); roleManager.createRole(CASPER); roleManager.assignPermission(CASPER, CLUMBOMB_PERMISSION); roleManager.assignPermission(CASPER, ANYFICATION_PERMISSION); roleManager.assignPermission(RoleManager.DEFAULT_ROLE, DEFINE_PERMISSION); roleManager.assignPermission(RoleManager.DEFAULT_ROLE, DICT_PERMISSION); roleManager.assignPermission(RoleManager.DEFAULT_ROLE, DITO_PERMISSION); roleManager.assignPermission(RoleManager.DEFAULT_ROLE, GET_ATTRIBUTE_PERMISSION); roleManager.assignPermission(RoleManager.DEFAULT_ROLE, LIST_ATTRIBUTES_PERMISSION); roleManager.assignPermission(RoleManager.DEFAULT_ROLE, SET_ATTRIBUTE_PERMISSION); roleManager.assignPermission(RoleManager.DEFAULT_ROLE, ISDOWN_PERMISSION); roleManager.assignPermission(RoleManager.DEFAULT_ROLE, EXPORT_ATTRIBUTES_PERMISSION); } public MyPlugin(MyPolly myPolly) throws IncompatiblePluginException, DuplicatedSignatureException { super(myPolly); // New YeaR! Date newYear = DateUtils.dateFor(31, Calendar.DECEMBER, 2014); newYear = DateUtils.timeFor(newYear, 24, 0, 0); new NewYearCountdown(newYear, myPolly.irc()); addCommand(new AnyficationCommand(myPolly)); // HACK: better leave this here for compatibility getMyPolly().persistence().registerEntity(TopicEntity.class); this.greetDeliverer = new GreetDeliverer(myPolly); getMyPolly().users().addUserListener(this.greetDeliverer); addCommand(new GreetingCommand(myPolly)); addCommand(new InfoCommand(myPolly)); addCommand(new QuitCommand(myPolly)); addCommand(new JoinCommand(myPolly)); addCommand(new PartCommand(myPolly)); addCommand(new HopCommand(myPolly)); addCommand(new KickCommand(myPolly)); addCommand(new ClumBombCommand(myPolly)); addCommand(new TalkCommand(myPolly)); addCommand(new VersionCommand(myPolly)); addCommand(new ShowCommandsCommand(myPolly)); addCommand(new CalendarCommand(myPolly)); addCommand(new WikiCommand(myPolly)); addCommand(new DefineCommand(myPolly)); addCommand(new LmgtfyCommand(myPolly)); addCommand(new AmazonCommand(myPolly)); addCommand(new DictCommand(myPolly)); addCommand(new GooglePicsCommand(myPolly)); addCommand(new IsDownCommand(myPolly)); addCommand(new WebInterfaceCommand(myPolly)); addCommand(new UsersCommand(myPolly)); addCommand(new AuthCommand(myPolly)); addCommand(new ReAuthCommand(myPolly)); addCommand(new SignOffCommand(myPolly)); addCommand(new GhostCommand(myPolly)); addCommand(new AddUserCommand(myPolly)); addCommand(new DeleteUserCommand(myPolly)); addCommand(new SetMyPasswordCommand(myPolly)); addCommand(new SetPasswordCommand(myPolly)); addCommand(new RegisterCommand(myPolly)); addCommand(new RawIrcCommand(myPolly)); addCommand(new SetAttributeCommand(myPolly)); addCommand(new ListAttributesCommand(myPolly)); addCommand(new GetAttributeCommand(myPolly)); addCommand(new ExportAttributesCommand(myPolly)); addCommand(new AssignRoleCommand(myPolly)); addCommand(new RemoveRoleCommand(myPolly)); addCommand(new CreateRoleCommand(myPolly)); addCommand(new DeleteRoleCommand(myPolly)); addCommand(new ListRolesCommand(myPolly)); addCommand(new AssignPermissionCommand(myPolly)); addCommand(new RemovePermissionCommand(myPolly)); addCommand(new ListPermissionsCommand(myPolly)); this.joinTimeCollector = new JoinTimeCollector(); this.joinTimeCollector.addTo(myPolly.irc()); addCommand(new UptimeCommand(myPolly, this.joinTimeCollector)); addCommand(new FooCommand(myPolly)); addCommand(new VarCommand(myPolly)); //this.addCommand(new AddTopicCommand(myPolly, this.topicManager)); addCommand(new RestartCommand(myPolly)); addCommand(new DitoCommand(myPolly)); } @Override public void onLoad() { try { getMyPolly().users().addAttribute(GREETING, Types.STRING, MSG.attributeGreetingDescription, "Core"); //$NON-NLS-1$ } catch (Exception ignore) { ignore.printStackTrace(); } } @Override protected void actualDispose() throws DisposingException { super.actualDispose(); //this.topicManager.dispose(); getMyPolly().users().removeUserListener(this.greetDeliverer); this.joinTimeCollector.remove(getMyPolly().irc()); } }